Spring Security - CSRF - 如何重置 CSRF 令牌并记录潜在的 CSRF 攻击(OWASP 推荐)
Posted
技术标签:
【中文标题】Spring Security - CSRF - 如何重置 CSRF 令牌并记录潜在的 CSRF 攻击(OWASP 推荐)【英文标题】:Spring Security - CSRF - How to reset CSRF token and log a potential CSRF attack (OWASP recommendation) 【发布时间】:2014-07-02 10:30:54 【问题描述】:我们在我们的应用程序中使用 Spring Security 框架,特别是为了防止它受到 CSRF 攻击。
在OWASP document about CSRF attacks prevention cheat sheet 中,他们谈到了同步器令牌模式。因此,当提供了错误的 CSRF 令牌时,他们建议:
-
中止请求
重置 CSRF 令牌
将事件记录为正在进行的潜在 CSRF 攻击
我做了一个测试,提供了错误的 CSRF 并得到以下结果:
-
请求中止,响应状态设置为 403 (= Forbiden)
令牌未重置
简单的调试日志由 Spring CSRFFilter 完成:“为 REQUESTED_URL 找到无效的 CSRF 令牌”
所以,我的问题是:
Q1:是否可以要求 Spring Security 重置 CSRF 令牌? Q2:是否可以要求 Spring Security 记录有关正在进行的潜在 CSRF 攻击的 WARN 消息而不是 DEBUG 消息?谢谢。
【问题讨论】:
【参考方案1】:你并不孤单。我仍在弄清楚如何重置令牌。
要回答您的 q2,您可以指定自定义 AccessDeniedHandler,它允许您以您喜欢的方式处理 InvalidCsrfTokenException。详情请见here。
【讨论】:
以上是关于Spring Security - CSRF - 如何重置 CSRF 令牌并记录潜在的 CSRF 攻击(OWASP 推荐)的主要内容,如果未能解决你的问题,请参考以下文章
在 Spring Security 中启用 CSRF 时,访问被拒绝 403