我的登录页面中有一个ASP.Net应用程序,我打电话
FormsAuthentication.SignOut
Session.Abandon()
Session.Clear()
但是,在注销能够重新注入cookie值以获取对受保护页面的访问权限之后,Appscan将获取ASPXAUTH cookie值。
Microsoft已承认存在问题但仅提供建议而不是修复 - http://support.microsoft.com/kb/900111
有人可以举例说明如何解决此问题
答案 0 :(得分:3)
一个选项是拥有一个UserSession表,并在用户登录时将记录插入此表中。当您注销时,删除该条目或将其标记为无效。在安全页面上,验证登录用户是否存在UserSession,如果不存在则重定向到登录页面。
答案 1 :(得分:0)
在登录时设置会话值,在注销时清除它并在每次访问安全页面时检查它。会话值不会发送到客户端,因此客户端/攻击者无法操纵它。
退出时没有清除会话值的演练: 用户访问登录页面 - 生成viewstate 中间人黑客收集视图状态
用户提交登录表单 - 生成身份验证cookie 中间人黑客收集身份验证cookie
用户注销 - 服务器清除用户cookie 中间人黑客继续完全不受阻碍地使用以前的凭证 游戏
退出时清除了演练会话值: 用户访问登录页面 - 生成viewstate 中间人黑客收集视图状态
用户提交登录表单 - 生成身份验证cookie 中间人黑客收集身份验证cookie
用户注销 - 服务器清除用户cookie并将其内部会话标志值设置为null 中间人黑客继续使用以前的凭据,但因为他现在正在使用的会话具有值null服务器重定向到登录页面。 赢了!