ASP.NET Core身份验证Cookie重放攻击

3

我试图防止asp.net core应用程序中默认使用的身份验证cookie被重放攻击。

我尝试过一些方法,但似乎都没有起作用。一旦用户从会话中注销,我仍然可以使用旧cookie重新播放经过身份验证的请求。

有没有办法防止这种情况发生?

谢谢


你能分享一下你正在使用的登出方法吗? - Maaike Brouwer
我使用signoutAsync,但是仍然存在同样的问题,cookie被重放了。 - SSA
1个回答

0

ASP.NET Core不会在服务器端跟踪会话。所有会话信息都包含在cookie本身中(请参见this issue)。

如果您想要防止重放攻击,您需要自己跟踪会话。一种方便的方法是实现一个ITicketStore(请参见SessionStore)。提示:如果您不希望用户体验到注销,则确保您的存储在IIS重新启动后仍然存在。

在这样做之前,当然您需要评估重放攻击是否对您的设置构成真正的威胁。引用this article的话:

如果您确保您的网站仅通过HTTPS提供服务,并且您的Cookie设置为"安全"、"同站点"和"仅限HTTP",那么攻击者将无法获取Cookie值,除非他们成功执行了中间人(MitM)攻击。如果他们这样做了,你就有更大的问题了。
另一个问题是,如果他们的计算机或浏览器受到恶意代码的攻击,也会引起关注。但是,如果发生这种情况,他们需要担心更大的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接