7

我想知道当前版本的 ASP.NET 中内置了哪些会话 ID 劫持保护。

我最近看到这篇内容非常丰富的文章,它解释了如何通过实现将 IP 地址和用户代理标头编码到会话 ID 中的附加层来增强会话安全性。然后在每个后续请求中验证这些详细信息。

这篇文章似乎是为 ASP.NET 1.1 编写的,所以我想知道现在是否在 ASP.NET 中内置了类似的东西。实现这样一个附加层还有什么好处吗?

谢谢。

4

2 回答 2

6

从 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 的一般安全建议的文章。

http://msdn.microsoft.com/en-us/library/ff649100.aspx

于 2010-05-26T11:05:16.103 回答
2

嘿,我也一直在寻找降低会话ID劫持风险的方法。我也阅读了Jeff Prosise 的文章,我认为它可能很有用;但是,就像您一样,我正在寻找相同的方法是否适用于现代版本的框架(他的电子邮件 wicked@microsoft.com 顺便说一句不起作用)

jkohlhepp,我不同意你的帖子(或者我不明白):

您可能不应该使用 Session 作为安全措施。相反,我建议依靠 ASP.NET 安全性(身份验证、授权)

就我而言,asp.net 身份验证依赖于会话 ID(cookieless 除外,这似乎更糟:参见 Dino Esposito 的意见

所以,这几乎把我们放在了我们开始的地方。

于 2011-02-16T22:30:45.303 回答