我被问及有关我的ASP.NET网站表单身份验证的cookie重放攻击.
我遵循了下面的建议,以防止任何攻击,但认为如果有人设法获取cookie(尽管只是很短的时间),该网站仍然是脆弱的.有没有办法在注销时完全销毁表单身份验证会话,这样即使有人偷了cookie,也没有机会恶意使用它
随后的建议是
我们相信,我们已经采取了所有可靠的步骤,以便在ASP.NET的范围内防止这种情况发生.请参阅下面的详细回复.
但是,我们已经实施了Microsoft建议的步骤来防范这种情况(请参阅http://support.microsoft.com/default.aspx?scid=kb;en-us;900111)
·身份验证cookie永远不会写入客户端计算机,因此很难窃取.
·应用程序可通过SSL运行,因此cookie永远不会通过非安全连接发出
·我们使用15分钟的超时强制执行绝对到期,这意味着在该时间限制之后任何问题cookie都无用
·我们使用httpOnly cookie,以便没有人可以通过编程方式拦截或更改此cookie.
因此,即使上述预防措施被打破,我们认为这种预防措施极不可能,恶意用户只需要15分钟的时间来打破预防措施并成功登录
一个简单的想法是生成随机guid并将其存储在cookie的用户数据部分中.然后,当用户注销时,您从用户数据中检索guid并将其写入服务器端存储库,其中包含此"会话"已结束的注释.
然后,有一个http模块,它检查每个请求是否来自cookie的userdata部分的guid不指向已结束的会话.如果是,请终止请求,并显示已重复使用过期cookie的警告.
这需要每次请求额外查找的成本.
归档时间: |
|
查看次数: |
7493 次 |
最近记录: |