Mr.*_*ble 5 asp.net session iis-7 session-state
我有一个在IIS7下运行的ASP.NET MVC应用程序。它使用默认的进程内会话管理,根据我所读的所有内容,应在应用程序池回收后丢失用户的会话。它似乎并没有失去它。即使IIS重置也不会丢失会话。IIS7中是否进行了某些更改以使会话保持活动状态?
小智 3
这是由于 cookie 重放 - 发生的情况是您的浏览器发送带有旧身份验证票证的 cookie,该 cookie 被接受为新会话,因为 Web 服务器不存储有效和过期的身份验证票证以供以后比较。如果恶意用户获得有效的表单身份验证 cookie,这会使您的网站容易受到重播攻击。要提高使用表单身份验证 cookie 时的安全性,请参阅下面的 MSDN 链接:
http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspx
为了提高使用表单身份验证 cookie 时的安全性,您应该执行以下操作:
通过将该属性设置为 false,对表单身份验证 cookie 使用绝对过期
SlidingExpiration。这限制了可以重放被劫持的 cookie 的窗口。仅通过安全套接字层 (SSL) 发出和接受身份验证 cookie,方法是将该
RequireSSL属性设置为 true 并在 SSL 下运行整个网站。将 RequireSSL 属性设置为 true 可确保 ASP.NET 永远不会通过非 SSL 连接向浏览器发送身份验证 cookie;但是,客户端可能不遵守 cookie 上的安全设置。这意味着客户端可能通过非 SSL 连接发送表单身份验证 cookie,从而使其容易被劫持。您可以通过在 SSL 下运行整个网站来阻止客户端以明文形式发送表单身份验证 cookie。使用服务器上的持久存储来记录用户何时注销网站,然后使用应用程序事件(例如
PostAuthenticateRequestevent)来确定当前用户是否通过表单身份验证进行了身份验证。如果用户通过表单身份验证进行身份验证,并且持久存储中的信息表明用户已注销,则立即清除身份验证 cookie 并将浏览器重定向回登录页面。成功登录后,更新存储以反映用户已登录。使用此方法时,您的应用程序必须跟踪用户的登录状态,并且必须强制空闲用户注销。(.NET 框架 1.1、2.0、3.0、3.5、4.0、4.5、4.5.1、4.5.2、4.6、4.6.1、4.6.2、4.7、4.7.1、4.7.2、4.8、4.8.1)
| 归档时间: |
|
| 查看次数: |
2104 次 |
| 最近记录: |