Asp.net会话固定(ASP.NET_sessionid)

时间:2016-06-30 16:43:03

标签: c# asp.net session

Asp.net_SessionId由系统生成。只要将此值从一个浏览器复制到另一个用户,就会自动访问登录凭据中的页面。

案例:首先我在一个浏览器(chrome)中使用我的凭据登录。现在我以私人模式打开相同的浏览器(再次镀铬)。现在,我将登录的浏览器会话值复制到私有模式,并尝试访问仪表板,配置文件,设置等页面。因此,只需复制会话值,我就可以访问所有需要登录的页面。 / p>

如何防止这种情况?请给我一些建议。

我可以在跨浏览器中阻止此操作,但我无法在同一浏览器中阻止它。

我尝试了什么:

我实施了这里描述的技术,但它不适用于我的情况。是的,它使用两个不同的浏览器,但不使用单个浏览器。

http://www.codeproject.com/Articles/859579/Hack-proof-your-asp-net-applications-from-Session

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

  

每当此值从一个浏览器复制到另一个用户时   自动访问登录凭据中的页面。

这取决于您对用户进行身份验证的方式。如果您只使用会话状态来跟踪用户身份验证,如经典ASP天,那就是这样。

如今,我们通过SSL使用ASP.Net Identity或表单身份验证(成员资格提供程序),其中令牌已加密,并在任何地方注销功能。因此,在SSL中破解身份验证Cookie并不容易(我不是说不可能)。

在ASP.Net MVC中,我们不需要像在ASP.Net Web Form和Classic ASP中那样使用Session State。此外,使用Session State直接成为ASP.Net MVC中的一个不好的做法。

最重要的是,如果你通过SSL使用ASP.Net Identity或Form Authentication,我甚至不用担心它。如果你还没有使用它们,你肯定想考虑使用它。