文章标题关闭所有内容预览 | 展开所有内容预览
-
CGI教程(1)
[内容预览]
1017 | 2005-06-21 16:22:47
CGI是一个连接外部应用程序到信息服务器(比如HTTP或者网络服务器)的标准。一个简单的HTML文档是无交互后台程序,它是静态的,也就是说它处于一个不可变的状态,即文本文件不可以变化。相反地,CGI程序是可以实时执行地,它可以输出动态的信息。举个例子吧,如果你想把Unix数据库”挂到”万维网上,并允许世界各地的人可以访...
[阅读全文]
-
CGI教程(2)
[内容预览]
885 | 2005-06-21 16:22:44
怎样从服务器获得信息 每次客户端需要URL来对应CGI程序,服务器将实时执行它。程序将直接输出到客户端。关于CGI的公用的误解是你可以发送命令行选项和参数给你的程序,比如:command%myprog-qablorf CGI为其它目的使用命令行,这样是不可能。相反,CGI使用环境变量来发送给程序它的参数。两个重要的...
[阅读全文]
-
CGI教程(3)
[内容预览]
591 | 2005-06-21 16:22:42
怎样发回文档给客户端对于CGI的初学者,一个公共的错误是没有正确格式化输出,这样服务器不能解释它。CGI程序可以返回各种文件类型。它们可以返回给客户端一张图片、HTML文档、明文文档或者可能是一个音频夹。它们同样可能返回其它文档给引用。客户端必须知道哪种类型的文档你要发送,这样它就可以相应地将它显示出来。为了让客户端知...
[阅读全文]
-
CGI教程(4)
[内容预览]
952 | 2005-06-21 16:22:41
HTML表单FORM(表单)标签表单的标签在HTML文档中指定了一个表单。在一个文档中可以有多个表单,但是一点必须注意表单不能嵌套。<FORMACTION="url">...</FORM>具体属性如下:ACTION是将要提交的表单中查询服务器的URL,如果这个属性是空的,那么当前的文档URL将被使用。METHOD是HT...
[阅读全文]
-
CGI教程(6)
[内容预览]
746 | 2005-06-21 16:22:38
SELECT(选择框)标签在<FORM>...</FORM>里面有多少个SELECT标签都是允许的,它可以混合其它HTML元素(包括INPUT和TEXTAREA元素)和文本,但是不能包括FORMS。.不象INPUT,SELECT有和关闭标签。在SELECT里面,只有一系列的OPTION标签,每一个OPTION标签之后跟...
[阅读全文]
-
CGI教程(7)
[内容预览]
561 | 2005-06-21 16:22:37
TEXTAREA(文本域)标签TEXTAREA标签被用来放置一个多行的文本输入区域。它有以下的属性:NAME是文本域的名字。ROWS是文本域的行数。COLS是文本域的列数(即字符的水平宽度)。TEXTAREA域自动有滚动条。不论多少的文本都可以件入到里面。TEXTAREA元素需要一个打开和关闭的标签即<TEXTAREA...
[阅读全文]
-
CGI教程(8)
[内容预览]
249 | 2005-06-21 16:22:35
表单的提交下面先讲讲Method=GET:当提交按钮被按下,表单的内容将被汇编到查询URL中,如下所示:action?name=value&name=value&name=value"action"由FORM标签设置的ACTION指定的URL,或者如果没有ACTION属性没有被指定的时候,是当前的文档U...
[阅读全文]
-
CGI教程(5)
[内容预览]
884 | 2005-06-21 16:22:34
利用CGI解码FORM 上节教程我们讲述了表单以及如何编写,从中可以看出这节的内容很简单。但是本节要利用CGI来对它们进行解码就不那么容易啦!哪里我们可以获得表单数据 你现在已经知道了有两种方法可以用来访问表单:GET和POST。根据你采用哪种方法,你用不同的方法接受表单的编码结果。如果利用GET方法,如果在你的F...
[阅读全文]
-
CGI教学:第一章 cgilib例
[内容预览]
720 | 2005-06-21 16:22:32
一个简单的读取并处理表格请求数据的cgilib.pl例子:#!/usr/bin/perlsubreadGetData{#指定局部变量queryString用以保存和传递函数的参数local(*queryString)=@_if@_;#读取环境变量QUERY_STRING的值赋给变量$queryString$queryS...
[阅读全文]
-
CGI教学:第二章 动态创建图像
[内容预览]
694 | 2005-06-21 16:22:31
“动态文档”不仅指文本,CGI程序可以创建图象、声音等各种媒体。你只须输出相应的MIME头、一行空行及原始数据即可。下例的image.cgi将装载一个GIF图像文件并送到浏览器显示:#!/usr/bin/perl$file='/usr/local/etc/httpd/htdocshttp://edu.chinaz.co...
[阅读全文]
-
CGI教学:第三章 计数器的编写方法
[内容预览]
425 | 2005-06-21 16:22:29
一、记录(log)文件1、grep2、page-stats3、wusage二、创建自己的计数器1、使用DBM文件2、文本文件3、文件锁定4、输出计数结果5、wwwHomepageAccessCounter6、使用GD图形库计数器(AccessCounter)可以记录网页被访问的次数,在万维网上的使用十分普遍,其编写方法...
[阅读全文]
-
CGI教学:第四章 设置Web Server以运行CGI
[内容预览]
242 | 2005-06-21 16:22:28
一、NCSAServer二、CERNhttpd三、NetscapeServer四、IIS一、设置NCSAServer或ApacheServer以使用CGINCSAServer的CGI1.1只允许用下列两种方式激活用户服务器上的脚本:scriptAlias指令和AddType指令。这两条指令都放在srm.con...
[阅读全文]
-
CGI教学:CGI安全问题(一)
[内容预览]
601 | 2005-06-21 16:22:27
在计算机领域——尤其在Internet上——尽管大部分Web服务器所编的程序都尽可能保护自己的内容不受侵害,但只要CGI脚本中有一点安全方面的失误--口令文件、私有数据、以及任何东西,就能使入侵者能访问计算机。遵循一些简单的规则并保持警惕能使自己的CGI脚本免受侵害,从而可以保护自己的权益。1.脚本和程序 在开始决...
[阅读全文]
-
CGI教学:CGI安全问题(二)
[内容预览]
855 | 2005-06-21 16:22:25
2.谁也不信几乎所有的CGI安全问题都来自与用户的交互。接收来自外部数据源的输入之后一个简单的、可预见的CGI程序突然向多方向伸展,每个方面都可能有最小的缝隙使得“黑客”可以溜进来。正是与用户的这种交互——通过表单或文件路径——才给予了CGI脚本这种能力,但同时也使得它们成了运行在Web服务器上的最潜在的危险部分。编写...
[阅读全文]
-
CGI教学:CGI安全问题(三)
[内容预览]
391 | 2005-06-21 16:22:24
2.4拒绝不合要求的表单数据CGI脚本可以有几种方式拒绝接收提交给它的非预期的输入。编写CGI时应该使用其中一些技巧或所有这些技巧。首先,CGI脚本应设置接收多少数据的限制,不仅限制整个提交,也限制提交中的每个NAME/VALUE对。例如,CGI脚本读取POSTMETHOD,检查CONTENT-LENGTH环境变量的大...
[阅读全文]
-
CGI教学:CGI安全问题(四)
[内容预览]
709 | 2005-06-21 16:22:22
2.5不要相信路径数据用户能修改的另一类型数据是PATH_INTO的服务器环境变量。该变量由CGIURL中紧跟在脚本文件名之后的任何路径信息填充的。例如,如果foobar.sh是一个CGlshell脚本,那么当foobar.sh运行时,URLhttp://www.server.com/cgi-bin/foobar.sh...
[阅读全文]
-
CGI教学:CGI安全问题(五)
[内容预览]
259 | 2005-06-21 16:22:21
2.7处理文件名文件名是提交给CGI脚本的简单数据,但如果不小心的话,却能导致许多麻烦。如果用户输入的名字中包含路径因素,如目录斜杠和双点,尽管期望的是输入一个简单的文件名--例如file.txt--但结果却可能是/file.txt或../../../file.txt。根据Web服务器的安装以及对提交的文件名做什么操作...
[阅读全文]
-
CGI教学:CGI安全问题(六)
[内容预览]
173 | 2005-06-21 16:22:19
2.10处理外部进程 最后,CGI脚本如何与带有外部过程的用户输入打交道是应该警惕的另一区域。因为执行一个位于自己的CGI脚本之外的程序意味着无法控制它做什么,必须尽最大努力在执行开始前验证发送给它的输入。 例如,shell脚本经常错误地将一个命令行程序和表单输入合在一起执行。如果用户输入符合要求,一切都挺正常,但是...
[阅读全文]
-
CGI教学:CGI安全问题(七)
[内容预览]
663 | 2005-06-21 16:22:18
3内部伤害到目前为止,仅仅考虑了通过Web例览站点的人——从几千里之外——可能带来的潜在的安全危险。但实际上还存在另一种离得更近的危险因素。在CGI安全问题上常犯的一种错误是忘记了本地用户。尽管通过Web浏览站点的人不影响本地安全,如文件保护和所有者,但Web服务器的本地用户却能这样,必须做出更多努力防止这些入侵。大部...
[阅读全文]
-
CGI教学:CGI安全问题(八)
[内容预览]
550 | 2005-06-21 16:22:17
4使用他人CGI脚本时的注意事项关于CGI,可以从很多地方获得信息——从Internet上,从学校图书馆中,从像本书这样的书中,UseNet组中以及朋友和同事中。从这些地方不仅可以获得信息,还可以得到实际的程序和库。有些程序和库如果已经有人做过了为什么自己还要从头再做一遍呢?但就像不能盲目听从别人的意见一样,关于如何理...
[阅读全文]
-
CGI教程(6)调用CGI脚本文件的例子之一
[内容预览]
466 | 2005-06-21 16:22:14
调用CGI脚本文件的例子你可以使用以下的语句来执行服务器中的CGI脚本dynamic_page:<AHREF="http://www.mc.com/cgi-bin/dynamic_page">Dynamicpage</A>当网络服务器处理一个请求来取文件的时候,如果这个请求的文件在服务器的cgi-bin目录中,那么只要...
[阅读全文]
-
CGI教程(6)调用CGI脚本文件的例子之二
[内容预览]
391 | 2005-06-21 16:22:13
调用CGI脚本文件的例子当CGI脚本被执行的时候,可以被它访问的主要环境变量有:环境变量内容QUERY_STRING数据通过它的调用者发送给CGI脚本。这可能是来自表单或者其它动态或者静态产生数据的输出。REMOTE_ADDR产生请求的主机的Internet地址以下的一个C++程序可以实现当它运行的时候,打印出CGI脚...
[阅读全文]
-
CGI教程(6)调用CGI脚本文件的例子之三
[内容预览]
881 | 2005-06-21 16:22:12
调用CGI脚本文件的例子上面的程序当然还需要两个文件,即t99_type.h和mas_cvo.cpp。具体代码请看下一页。如下://以下是t99_type.h文件#ifndefMAS_TYPE#defineMAS_TYPE#ifndef__TURBOC__#define__TURBOC__0x0000#endif#de...
[阅读全文]
-
CGI教程(6)调用CGI脚本文件的例子之四
[内容预览]
799 | 2005-06-21 16:22:10
调用CGI脚本文件的例子//以下是mas_cvo.cpp文件#include"t99_type.h"#include#includeinlinevoidhtml(charstr[]){cout<<str<<"\n";}inlinevoidhtml_(charstr[]){cout<<str;}inlinevoidhtm...
[阅读全文]
-
CGI教程(7)解码数据发送给CGI脚本之一
[内容预览]
864 | 2005-06-21 16:22:09
解码数据发送给CGI脚本 当使用表单的时候,收集在表单的信息给发送给CGI脚本用于处理。这个信息被放置在环境变量QUERY_STRING中。 为了清除地将信息传递给环境变量QUERY_STRING,被修改锚标签的表单将被使用。在这个被修改的锚标签中,传递给环境变量QUERY_STRING的数据是在指示CGI脚本的U...
[阅读全文]
-
CGI教程(7)解码数据发送给CGI脚本之二
[内容预览]
612 | 2005-06-21 16:22:08
解码数据发送给CGI脚本这个类的成员函数有:方法任务Parse设置将要解析的字符串set设置一个要解析的不同字符串get_item返回字符串有关的关键字作为参数传递,如果没有数据就返回NULLget_item_n返回字符串有关的关键字作为参数传递,如果没有数据就返回空字符串当使用成员函数get_item和get_ite...
[阅读全文]
-
CGI教程(7)解码数据发送给CGI脚本之三
[内容预览]
705 | 2005-06-21 16:22:06
解码数据发送给CGI脚本下面举个例字,如果QUERY_STRING包含以下内容:tag=one&name=mike&action=%2B10%25&tag=two&log=~mas/log&tag=three那么以下的程序将被编译和运行:enumbool{false,true};...
[阅读全文]
-
CGI教程(8)记录用户记录脚本之一
[内容预览]
1063 | 2005-06-21 16:22:05
记录用户记录脚本 在<IMG>标签使用一个指定CGI脚本的URL,可以在图象被传递之前进行额外处理。额外的处理记录了有关网页当前用户的详细信息。这个额外信息将发送给CGI脚本来指定Action的正确的详细数据。比如:格式化的文本HTML.<IMGSRC="http://edu.chinaz.com/cgi-bin/m...
[阅读全文]
-
CGI教程(8)记录用户记录脚本之二
[内容预览]
738 | 2005-06-21 16:22:04
记录用户记录脚本//以下是mas_res程序#include"t99_type.h"#include#include#include#include#include#include#include#include"parse.h"#include"parse.cpp"#include"mas_cvo.cpp"voidw...
[阅读全文]
-
CGI教程(10)CGI 规范之一
[内容预览]
490 | 2005-06-21 16:22:01
CGI规范 本节教程是CGI/1.1的规范,更高版本的协议是向下兼容的,也就是说CGI/1.1的规范同样使用于更高版本的规范。 服务器于CGI脚本有四种主要的方法进行通讯:环境变量、命令行、标准输入和标准输出。CGI环境变量的规范 为了传递关于从服务器到脚本的信息请求的数据,服务器使用了命令行参数比如环境变量。这...
[阅读全文]

