ASP.NET Cookie:不是问题的问题
创始人
2024-04-25 22:50:57
0次

ASP.NET Cookie:习以为常的会话状态

我们对会话状态这一概念是如此习以为常,以至于我们忘记了会话状态是在 1997 年用 Active Server Pages (ASP) 引入的一个手段。会话状态使开发人员能够在用户与应用程序交互这段时间内持久保存有关该用户的一块信息。特定于用户的信息通常会保留 20 分钟长的时段,而每当用户返回该站点时,该时段都将重新开始计时。

当用户首次连接到站点时,将以内存块的形式创建一个全新的会话状态以存放数据,同时,还会创建一个 ID 以便将其与当前用户唯一地联系起来。当下一次发出请求时,该用户将被要求提交该会话 ID,以便检索并正确地还原会话状态。会话 ID 是 ASP 和 ASP.NET 完全自主生成的字母数字字符串。用户如何管理它并确保用每个后续请求来包装它呢?

ASP.NET Cookie:由来和好处

HTTP 协议的性质是无状态的,并且没有任何人试图更改这一事实。差不多二十年以前,当 Netscape Corporation 开发它的第一个浏览器时,它“发明”了一种通过 HTTP 工作的持久性机制。它将其称为 HTTP Cookie。有趣的是,计算机科学行话中的术语“Cookie”仅仅表示一块由应用程序持有的不透明数据,它会影响用户但永远不会由用户直接管理。

因此,Cookie 存储会话的 ID,而浏览器则在 Web 服务器和本地用户的计算机之间来回移动它们的内容。当启用了 Cookie 的浏览器收到响应数据包时,它将寻找附加的 Cookie,并将它们的内容存储到本地 Windows 目录中特定文件夹的某个文本文件中。Cookie 还包含有关该源站点的信息。接下来,当浏览器向该站点发送请求时,它会在 Cookie 文件夹中查找源自该域的 Cookie。如果找到,则该 Cookie 自动附加到传出的数据包中。该 Cookie 将命中服务器应用程序,并在此被检测、提取和处理。

最终,Cookie 使 Web 站点更加易于导航,因为它们在用户体验之上提供了必然跨越多个请求的连续性错觉。

ASP.NET Cookie:危险的程序?

多年以来,Cookie 只被视为一种技术功能,并且在很大程度上被忽略了。几年以前,针对 Web 安全的世界范围的浪潮将人们的注意力集中于 Cookie 身上。Cookie 被断定包含危险的程序,它们甚至能够超出计算机的物理边界来窃取有价值的信息。

不言而喻,Cookie 不是程序,因而无法自行收集任何信息 — 更不用说有关用户的任何个人信息。更加清楚的是,Cookie 是 Web 站点可以放置在用户的计算机中以便以后检索和重用的一段文本。所存储的信息是由无害的名称-值对组成的。

要点在于,Cookie 不是标准 HTTP 规范的一部分,因此它们意味着浏览器和 Web 站点之间的一种协作。并非所有浏览器都支持 Cookie,而且更为重要的是,并非所有用户都在他们自己的浏览器副本中启用 Cookie 支持。

在历史上,有一些 Web 站点功能是如此紧密地与 Cookie 相联系,以至于很难区分究竟是哪个功能最先出现。一方面,用 Cookie 对会话状态管理和用户身份验证进行编码要容易得多。另一方面,如果您观察一下站点与用于访问页的浏览器有关的统计信息,那么您可能会惊讶地发现,相当一部分用户在连接时禁用了 Cookie。这一点会对开发人员有所启示。

总而言之,Cookie 本身并不是问题,但它们的使用无疑给予一些服务器代码在客户端计算机中存储一段数据的能力。这预示着一些潜在的安全风险和一种不够理想的总体状况。(在某些情况以及某些国家/地区中,应用程序要求 Cookie 工作甚至是非法的。)

【编辑推荐】

  1. ASP.NET表单的Session和Cookie
  2. ASP.NET中的cookieless属性
  3. 在ASP.NET中确定浏览器是否接受Cookie
  4. ASP.NET中的cookie读写方法介绍
  5. ASP.NET cookie操作心得一览

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...