我正在努力防止对使用默认身份的asp.net核心应用程序的有效身份验证cookie重播攻击。
我试过一些东西,但似乎都不起作用。一旦用户从会话注销,我可以看到我仍然可以使用旧的cookie再次重播经过身份验证的请求。
有办法防止这种情况发生吗?
感谢
ASP.NET Core不是跟踪服务器端会话。所有会话信息都包含在cookie本身中(请参阅本期(。
如果你想防止重放攻击,你需要自己跟踪会话。一种方便的方法是实现ITicketStore
(请参阅SessionStore(。提示:如果您不希望用户经历注销,请确保您的存储在IIS重新启动后仍然有效。
在这样做之前,你当然需要评估重播攻击对你的设置是一个真正的危险。引用这篇文章:
如果您确保您的网站只通过HTTPS提供服务,并且您的cookie设置为";"安全""相同站点";,以及";"仅HTTP";,则攻击者将无法获得cookie值,除非他们已经设法执行中间人(MitM(攻击。如果他们这样做了,你会遇到更大的问题。
和:
另一个问题是他们的计算机或浏览器是否被恶意代码破坏。但同样,如果发生这种情况,他们还有更大的问题需要担心。