我想知道当前版本的 ASP.NET 中内置了哪些会话 ID 劫持保护。
我最近看到这篇内容非常丰富的文章,它解释了如何通过实现将 IP 地址和用户代理标头编码到会话 ID 中的附加层来增强会话安全性。然后在每个后续请求中验证这些详细信息。
这篇文章似乎是为 ASP.NET 1.1 编写的,所以我想知道现在是否在 ASP.NET 中内置了类似的东西。实现这样一个附加层还有什么好处吗?
谢谢。
我想知道当前版本的 ASP.NET 中内置了哪些会话 ID 劫持保护。
我最近看到这篇内容非常丰富的文章,它解释了如何通过实现将 IP 地址和用户代理标头编码到会话 ID 中的附加层来增强会话安全性。然后在每个后续请求中验证这些详细信息。
这篇文章似乎是为 ASP.NET 1.1 编写的,所以我想知道现在是否在 ASP.NET 中内置了类似的东西。实现这样一个附加层还有什么好处吗?
谢谢。
从 Session Overview 文档中查看这个片段:
System.Web.SessionState.HttpSessionState.SessionID 值以明文形式发送,无论是作为 cookie 还是作为 URL 的一部分。恶意用户可以通过获取 SessionID 值并将其包含在对服务器的请求中来访问另一个用户的会话。如果您在会话状态中存储敏感信息,建议您使用 SSL 加密浏览器和服务器之间包含 SessionID 值的任何通信。
http://msdn.microsoft.com/en-us/library/ms178581.aspx
在我看来,这意味着 Session 中没有安全性,因此您可能不应该将 Session 用作安全措施。相反,我建议依靠 ASP.NET 安全性(身份验证、授权)。
这是 Patterns & Practices 组关于 ASP.NET 的一般安全建议的文章。
嘿,我也一直在寻找降低会话ID劫持风险的方法。我也阅读了Jeff Prosise 的文章,我认为它可能很有用;但是,就像您一样,我正在寻找相同的方法是否适用于现代版本的框架(他的电子邮件 wicked@microsoft.com 顺便说一句不起作用)
jkohlhepp,我不同意你的帖子(或者我不明白):
您可能不应该使用 Session 作为安全措施。相反,我建议依靠 ASP.NET 安全性(身份验证、授权)
就我而言,asp.net 身份验证依赖于会话 ID(cookieless 除外,这似乎更糟:参见 Dino Esposito 的意见)
所以,这几乎把我们放在了我们开始的地方。