超简单方法! sub cookie{ if($env{'http_cookie'}) { @cookies = split(/; /,$env{'http_cookie'}); foreach(@cookies) { ($name,$value) = split(/=/,$_); $cookie{$name} = $value; } } print "set-cookie: $cook=$env{'remote_addr'}$form{'number'};rn"; } # sub read_cookie{ if($env{'http_cookie'}) { @cookies = split(/; /,$env{'h...
cgi简明教程 目录 第一章:基础的基础 1.1 为什么使用cgi? 1.2 cgi是什么? 1.3 选择你熟悉的编程语言 1.4 安全 第二章:一些html基础 一些html基础 第三章:传送方式 3.1 get 3.2 post 第四章:基本调试环境的建立 4.1 windows & win nt的server 4.2 perl for win 4.3 vb 4.4 c&c++ 4.5 安装 4.6 测试 第五章:第一个程序--环境变量 5.1 和服务器有关环境变量 5.2 和客户机有关的环境变量 5.3 和请求有关的环境变量 第六章: 调查表 6.1 调查表 6.2 程序 第七章:上传文件 7.1 windowns-cgi编程要点 7.2 程序 第八章:form to mail 8.1 unix下的form to mail 8.2 windows的form to ma...
guest-book在网页设计中占有相当重要的地位,以至于可以和记数器相提并论。留言本可以用许多编程语言来设计,当然使用最多的还是perl和vb两种。本次cgi教程我们将谈谈在编写guest-book中最应该注意的问题,并将给出一个不算很完整的程序代码。 同时提供一个c语言的win-cgi程序供大家下载。 就现在的情况来看,一个标准的guest-book程序一般包括三个文件。提交表单文件(form.html)、cgi处理文件(guest-book.cgi)和最后的输出文件(book.html)。有些vb程序以access数据库为后台存储格式,以方便用户查找留言。下图给出了guest-book的工作流程。 form.html首先我们来看看form.html的文件内容:<html> <title>guest-book.html</title> <h1&...
组成cgi程序的是两部分,一部分是html页面,就是用户看到的东西。另一部分则是运 行在服务器上的程序。一般来说,我们先写html页面,再写程序。所以我们的学习页是这样, 先看看表单的写法,再去学习cgi程序。 对于html的表单,有比较复杂和详细的规定。但由于它们是属于html标准里的东西,所 以我不打算详细讲解。最好是你自己找本书看看。 html表单 <form></form>标记把输入域组合起来,并且说明了表单提交的方式和地点。form标签有许 多属性,比如name等等。具体的属性,将在使用的时候说明。 在form里还有许多不同的标签,正是它们组成了表单的各种成分。 <input [type=text] name="text-id" [size=nn] [maxlength=nn] [value='default text']> 该语句在h...
当你向系统shell发送一个命令行时,shell创建一个进程来执行这个命令。这个新进程成为shell的子进程,它的执行不依赖于shell但又与shell相互协调。 同样,perl程序也能启动新进程。 使用system()和exec() 生成新进程的最简单的方法就是用system操作符。如: system("date"); 若要将输出送至now_day文件,则可以: system("date>now_day") die "不能建立now_day文件"; 使用单引号 产生进程的另一方法是将shell命令置于两个单引号之间。如: $nowday="现在时间:".'date' $nowday的值为“现在时间:”和date命令的结果的连接。即:"现在时间:fri feb 18 23:49:23 pdt 1998" 综合范例 举一个综合例子...
-- 指令:# 说明:注解符号remark宣告 范例:#本程序是一个示范注解说明 -- 指令:print 语法一:print filehandle list 说明:这个filehandle可把它看作在i(input)/o(output)间的一个桥梁,可以利用filehandle来做出数据读入写出的动作。stdin是代表从哪边输入数据,例如从电脑的键盘输入,stdout是代表从哪边输出数据;例如从电脑的屏幕输出;stderr是代表从哪边输出错误的数据,例如从电脑的屏幕输出。而在perl语言中有三个标准的filehandle: (一)stdin(标准输入):是代表stdin的filehandle (二)stdout(标准输出):是代表stdout的filehandle (三)stderr(标准错误输出):是代表stderr的filehandle 如果要使用其...
cgi在现在的互联网应用越来越广泛,cgi编程的安全问题也得到越来越多的重视。perl作为cgi编程的主要语言之一,其安全性也受到很大的关注。在 w3c组织的 "www security faq" 之 "cgi scripts"一章中,perl安全编程就整整占了一节。由此可见 perl cgi 安全编程的重要性。 这里我不会重复 "www security faq" 的内容,而是根据一直以来对 perl免费/商业程序包的源代码的研究,得出一些较易被忽略的编程漏洞,在此将几个最常见的(主要是变量字符过滤方面)写出来,供广大程序员作为参考。 如果你对本文的内容有不同意见或任何建议,请告诉我。如果你发现了其它perl cgi 编程漏洞,也请告诉我。如果你也发表了关于这方面的文章,当然也请告诉我。:-) 1、“有毒”的null字符 如果我说:"root"=="root",相...
#!/usr/bin/perl #open stdout, ">", "/tmp/env.txt"; print qq{content-type: text/htmlnn<html><head><title>cgi environment</title></head><body>n}; print qq $env{$_} => `$env{$_}' n for sort keys %env; print qq{stdin: `}; print <stdin> print qq{'}; print qq{<p><a href="env.cgi?some%20stuff">circular link</a>}; print qq{<form method=post><input type=text name=text><in...
2.6一切看起来都正常,不过… 现在已经知道了用户能给cgi脚本提供非预期的数据的几种方式以及如何对付它们了,余下的更大问题是如何验证用户提交的合法数据。 大部分情况下,正确但聪明地编写的表单提交会导致比越界数据更多的问题。忽略无意义的输入很容易,但确定合法的、正确格式的输入会不会导致问题就要困难得多。因为cgi脚本非常灵活,几乎可做计算机能做的任何事情,所以安全方面的一个很小失误往往能被无限制地加以利用——而这正是最危险的地方。 2.7 处理文件名 文件名是提交给cgi脚本的简单数据,但如果不小心的话,却能导致许多麻烦。如果用户输入的名字中包含路径因素,如目录斜杠和双点,尽管期望的是输入一个简单的文件名--例如file.txt--但结果却可能是/file.txt或../../../file.txt。根据web服务器的安装以及对提交的文件名做什么操作,系统中的所有文件就有可能都暴露给了一个...
基本调试环境的建立: 我想不是每个阅读教程的朋友有机会接触到服务器之类的东西的。所以在接下去的阅 读过程中没有调试环境的朋友将会非常吃力。为了解决这个问题,我特别介绍一种在 win95或nt上建立web site的方法,以便各位能很好的阅读程序。不过本方法内使用的软 件都比较大,如果你不是一个真正的网络发烧友,或许你会放弃这个教程。这个我也没 有办法,要知道喜欢一样东西总是要付出代价的。 1.win95&winnt的server软件: 首先我要各位弄清楚一个概念,所谓sever只是指在一台电脑上安装了一个特别的软件。 该软件可以提供internet web site服务。这台电脑不一定要是什么特别好的机器,只要它 能够很好的运行server软件就可以了。比如我们的个人电脑就可以承担这个任务。 在 windows95下运行的server软件不是很多,而且是属于“业余”的。就是说离真正...
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器