形成身份validation安全风险

我使用的是VSTS 2008 + C#+。Net 3.5 + IIS 7.0 + ASP.Net。 在我对Forms身份validation的理解中,会话变量(用于身份validation标识符 – 即,当用户通过身份validation时,用户将拥有此类会话变量,并且会话变量被实现为cookie)将为经过身份validation的用户建立。

我对此模式的关注是,每次用户访问网站中的页面时,会话变量都将传输到服务器端。 它可能被黑客窃取,黑客可以使用这样的会话变量假装成最终用户? 这是安全隐患吗?

如果存在安全风险,那么我们必须始终使用https进行Forms身份validation吗?

乔治,提前谢谢

我对我们的合作伙伴的请求也有类似的担忧…(详见此处: https : //stackoverflow.com/questions/1367574/rewriting-urls-using-reverse-proxy )

事实certificate,这个“合法”的过程实际上是使用一种称为“中间人”的黑客攻击方法。 它在技术上假装是用户,在处理服务器时保持cookie ID在自己的会话上下文中,并为客户端计算机保留一个sparate。

因此,从理论上讲,它可以完成而且是一种威胁。 如果数据以任何方式敏感,使用SSL是我认为的正确方法。


有趣的是,在这篇Microsoft支持文章http://support.microsoft.com/kb/910443中,这句话让你相信每个请求实际上是相同的……

表单身份validationcookie只是表单身份validation票证的容器。 故障单作为每个请求的表单身份validationcookie的值传递,并由服务器上的表单身份validation使用,以标识经过身份validation的用户。

可以使用3DES加密对cookie进行加密。 可以通过将protection属性设置为web.config文件的身份validation部分的validation来启用此function。 使用此设置,服务器将validation每个事务的cookie上的数据。 这虽然增加了一点开销……

用户的会话ID 不用作身份validationcookie的一部分 – 身份validationcookie,会话cookie是独立的。 因此,如果您的网站部分需要身份validation,那么会话ID就不足以进入。

话虽如此,如果黑客嗅探流量,那么他们也会看到身份validationcookie,因此可以重新创建两者。

您可以参考此问题以获取更多信息。 这是一个潜在的安全风险,并且要提供真正安全的连接,您必须使用HTTPS。

是的,通过嗅探流量可以窃取会话ID,因此使用会话进行识别存在安全风险。 它通常被认为对非关键站点足够安全,但如果你有一个安全性至关重要的站点(banking,et.c),你需要使用SSL足够安全。

是! 只需确保在web.config表单标记上添加:requireSSL =“true”

   

然后,您还可以使用一些重写来确保在需要身份validation的页面或目录上使用https。 在MVC上,您可以使用[RequireHttps]filter属性。