有人问我关于 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 分钟的时间来打破预防措施并成功登录