无 Cookie 会话的主要原因是用户(无论出于什么原因)可能在他们的浏览器中禁用了 Cookie。如果您的应用程序需要会话状态,那么无论您是否喜欢,您都必须面对这种情况。无 Cookie 会话将会话 ID 嵌入到 URL 中,并且得到了双重结果。一方面,它们为 Web 站点提供了一种正确标识发出请求的用户的方式。然而,另一方面,它们使会话 ID 清楚地显现在潜在的攻击者面前,从而使攻击者可以轻松地窃取它并以您的身份进行操作。
要实现无 Cookie 会话,您无需修改自己的编程模型 — 只需在 web.config 文件中进行简单更改,就可以完成相关工作 — 但是,还要强烈建议您重构您的应用程序,以免在会话状态中存储有价值的信息。同时,将会话的生存期缩短至默认的 20 分钟以内有助于保护您的用户和站点的安全。
关于作者
Dino Esposito 是 Wintellect 的讲师和顾问,他居住在意大利。他是 Programming Microsoft ASP.NET 以及更新的 Introducing Microsoft ASP.NET .0(两者都由 Microsoft Press 出版)的作者,他的大多数时间都用来讲授有关 ASP.NET 和 ADO.NET 的课程以及在会议上发表讲演。请在 http://weblogs.asp.net/despos 浏览 Dino 的网络日记。