我试图防止asp.net core应用程序中默认使用的身份验证cookie被重放攻击。
我尝试过一些方法,但似乎都没有起作用。一旦用户从会话中注销,我仍然可以使用旧cookie重新播放经过身份验证的请求。
有没有办法防止这种情况发生?
谢谢
我试图防止asp.net core应用程序中默认使用的身份验证cookie被重放攻击。
我尝试过一些方法,但似乎都没有起作用。一旦用户从会话中注销,我仍然可以使用旧cookie重新播放经过身份验证的请求。
有没有办法防止这种情况发生?
谢谢
ASP.NET Core不会在服务器端跟踪会话。所有会话信息都包含在cookie本身中(请参见this issue)。
如果您想要防止重放攻击,您需要自己跟踪会话。一种方便的方法是实现一个ITicketStore
(请参见SessionStore)。提示:如果您不希望用户体验到注销,则确保您的存储在IIS重新启动后仍然存在。
在这样做之前,当然您需要评估重放攻击是否对您的设置构成真正的威胁。引用this article的话:
如果您确保您的网站仅通过HTTPS提供服务,并且您的Cookie设置为"安全"、"同站点"和"仅限HTTP",那么攻击者将无法获取Cookie值,除非他们成功执行了中间人(MitM)攻击。如果他们这样做了,你就有更大的问题了。