每个响应中的 CSRF Token

Posted

技术标签:

【中文标题】每个响应中的 CSRF Token【英文标题】:CSRF Token in every response 【发布时间】:2016-09-25 11:15:57 【问题描述】:

我正在研究基于弹簧的项目的安全性,我发现了这个过滤器:spring-security-csrf-filter

它承诺在每个响应中添加 csrf 令牌,我问你,它安全吗?

我找不到任何关于何时归还令牌的最佳做法。

我用这个过滤器做了一些测试,结果是即使我请求一个不存在的端点,spring也会返回令牌。

【问题讨论】:

是的,CSRF 令牌应该在每次响应时刷新。 所以,在客户端,我应该有一些东西可以从每个响应中提取令牌,而不仅仅是第一次,对吗? 是的,没错。 @1615903 不正确。基于会话的 CSRF 很好 【参考方案1】:

    当 Spring 内置了一个随机过滤器时,为什么还要使用一些随机过滤器?

    什么安全?您的威胁模型是什么?

在每个响应中都返回 CSRF 令牌很好,即使您不使用它。同源策略阻止其他站点读取响应。

【讨论】:

过滤器和内置版本的区别写在我在问题中链接的github页面中。我是安全方法的新手,所以我不完全了解同源策略如何阻止其他站点读取响应,因此,令牌

以上是关于每个响应中的 CSRF Token的主要内容,如果未能解决你的问题,请参考以下文章

预检响应中不允许 Laravel 前端到 Django 后端 x-csrf-token

将它们分开时将 Django 的 csrf_token 放入 Vuejs

Spring 未在响应时发送 CSRF 令牌

在 laravel+vuejs 项目中允许 X-CSRF-TOKEN 吗?

JavaScript:set-cookie 和响应处理原子操作吗?

Forbidden (CSRF token missing or incorrect.):