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 保护

使用 Spring Security 的 CSRF 保护

在 Spring Security 中启用 CSRF 时,访问被拒绝 403

Spring-Security对CSRF攻击的支持

无法使用 Spring Security 创建 CSRF 令牌

Spring Security 未创建 CSRF 令牌