1. Cookie简介
当用户登录一个网站时,这个站点可以在用户的计算机上存储少量的文本,这种少量的文本被称为cookie。下次用户登录该网站时,这个cookie文件会被发回服务器,服务器可以利用这些信息认出用户。
一般有4种不同的方式保存数据。两种用到浏览应用程序的内置功能,另一种方法使用客户端cookie文件,最后一种借助具有唯一文件名的服务器端文件。
2. 查询字串
当客户机项服务器发送一个请求时,可以在所有请求的URL后面附加一个查询字串。实际上只有执行get请求时,才会附加这种查询字串,在一个URL的后面加上一个问号(?),问号后面跟着要发送的信息。
< a herf = “ /cgi-bin/fig16_02.pl ? type = normal ” >
这个超级链接将type=normal作为查询字串当成表单作为get的一部分被提交给程序fig16_02.pl。
简单的使用查询字串传递信息牵涉到安全问题。使用查询字串任何人都可以看到被传输的数据,也就可以更改数据。除非查询字串中的信息无关紧要,不需要安全传输。否则,最好不要使用查询字串。
3. 隐藏字段
通过隐藏字段传递数据,而隐藏字段可以成为任何表单的组成部分。使用CGI.pm中的param方法,取得传递到程序中的表单字段值。当程序初次运行时,语句什么也不返回。等到程序再次运行时,这几条语句就可以得到所需的数据。
my $date = param ( “ HIDDEN ”);
my $name = param ( “NAME” );
< input type = “ HIDDEN” name = “ HIDDEN ” value = “ $date ” >
这种维护状态信息的方法也存在安全漏洞,这是由使用CGI.pm引入的。要收集从表单发送来的数据,调用方法param是最简单的。但param方法无法分辨是post方法得到的数据还是get方法得到的数据。重要的是,无论get方法还是post方法发送到服务器的数据都可能是不安全的。
因此,隐藏字段方法通常不适合用于传递重要数据。
4. Cookie
Cookie实质上是一些较小的文本文件,是web服务器发送到用户浏览器上的,然后浏览器再将这些文本文件写入计算机。这样,无论什么时候,浏览器再次向该站点发送请求时,该站点就可以找到先前由服务器写入到客户机的Cookie文件,Cookie文件是作为请求的一部分被发回服务器的。这些信息可以帮助服务器认出拥护。存在一个潜在的问题,就是用户的浏览器必须开启Cookie功能。
Cookie的生存期可以是一个字符串,也可以是一个相对值。例如,+30d表示Cookie的生存期是30天。过期后,浏览器就会删除这些Cookie。
Cookie中包含许多字段,比如,含有要保存的数据的“名-值”对,生存期数据以及URL中包含了许多信息。只有访问该路径的服务器时Cookie才会有效。
在服务器上,Cookie作为客户机所发送请求的一部分,被保存在环境变量“HTTP_Cookie”中。
5. 服务器端文件
维护状态信息的最后一招就是使用服务器端文件。这种方法是最安全的,除非能够访问并修改服务器里的文件。
要想让使用服务器端文件维护状态信息的方法更加安全,必须对文件使用更难以猜测的关键码——使其不宜于访问。还可以采取另一种安全性措施,就是把一个口令发送到用户提供的电子邮箱中。这样做既可以解决安全性的问题,又可以间接的检验用户所提供邮箱地址是否有效。
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>