删除 cookie
删除 cookie(即把该 cookie 从用户的硬盘上物理删除)是修改 cookie 的一种形式。由于 cookie 位于用户的计算机中,所以您无法直接将其删除。但是,您可以让浏览器为您删除 cookie。修改 cookie 的方法前面已经介绍过(即用相同的名称创建一个新的 cookie),不同的是将其有效期设置为过去的某个日期。当浏览器检查 cookie 的有效期时,就会删除这个已过期的 cookie。
所以,删除 cookie 的方法与创建该 cookie 的方法是相同的,只不过要把其有效期设置为过去的某个日期。以下示例比删除单个 cookie 要稍微有趣一些,它使用的方法可以删除当前域的所有 cookie:
dim i as integer
dim cookiename as string
dim limit as integer = request.cookies.count - 1
for i = 0 to limit
acookie = request.cookies(i)
acookie.expires = datetime.now.adddays(-1)
response.cookies.add(acookie)
next
修改或删除子键
修改单个子键的方法与最初创建它的方法相同:
response.cookies("userinfo")("lastvisit") = datetime.now.tostring
response.cookies("userinfo").expires = datetime.now.adddays(1)
比较复杂的问题是如何删除单个子键。您不能只是简单地重新设置 cookie 的过期日期,因为这样只能删除整个 cookie 而不能删除单个子键。实际的解决方案是对包含子键的 cookie 的 values 集合进行操作。首先,通过从 request.cookies 对象中获取 cookie 来重新创建 cookie。然后,您就可以调用 values 集合的 remove 方法,将要删除的子键名称传递到 remove 方法。接下来,您通常可以将修改后的 cookie 添加到 response.cookies 集合,以便将修改后的 cookie 发送回浏览器。
以下代码显示了如何删除子键。在示例中,要删除的子键的名称在变量中指定。
dim subkeyname as string
subkeyname = "username"
dim acookie as httpcookie = request.cookies("userinfo")
acookie.values.remove(subkeyname)
acookie.expires = datetime.now.adddays(1)
response.cookies.add(acookie)
cookie 与安全性
在使用 cookie 时,您必须意识到其固有的安全弱点。我所指的安全性并不是隐私问题,正如我在前面的什么是 cookie?中所述,隐私在更大程度上是某些用户面对的问题:这些用户很关心 cookie 中的信息是如何被使用的。而 cookie 的安全性问题与从客户机获取数据的安全性问题类似。对于初学者,就应用程序而言,cookie 是用户输入的另一种形式,因而很容易被他人非法获取和利用。由于 cookie 保存在用户自己的计算机上,所以用户至少可以看到您保存在 cookie 中的信息。如果用户愿意,还能在浏览器向您发送 cookie 之前修改该 cookie。
所以,您千万不要在 cookie 中保存保密信息 - 用户名、密码、信用卡号等等。在 cookie 中不要保存不应该由用户掌握的内容,也不要保存可能被其他窃取 cookie
的人控制的内容。
同样,要对从 cookie 中得到的任何信息都持怀疑态度。不要认为得到的数据就是您当初设想的信息。处理 cookie 值时采用的安全措施应该与处理 web 页面中用户键入的数据时采用的安全措施相同。例如,在页面中显示值之前,我会对 cookie 中的内容进行 html 编码。这是一种标准的方法,可以在显示之前净化从用户处得到的信息,
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 注册表 操作系统 服务器 应用服务器