使用令牌的CSRF防御

时间:2017-09-13 00:49:26

标签: javascript grails csrf csrf-protection grails-2.4

我在Grails 2.4.5应用程序中设计CSRF防御。

我想使用Synchronizer Tokens模式,这是我想要的设计,简化:

  1. 使用新会话,在服务器上生成一个长唯一的csrf令牌。
  2. 将csrf令牌存储在会话中。
  3. 将csrf标记添加到响应标头
  4. 在服务器上,对于每个可能会更改应用程序状态的传入请求(发布,更新,删除...),验证引用/来源与目标相同
  5. 在服务器上,对于每个可能会更改应用程序状态的传入请求(发布,更新,删除...),检查标头中csrf令牌的存在和有效性。
    在grails应用程序中,我想象这发生在Spring Security过滤链中。
  6. 如果令牌不存在或不匹配,则返回错误并记录潜在的CSRF攻击,否则允许请求继续。
  7. 这听起来不错吗?

    我担心的是,这还不够。正式地,同步器令牌被添加到每个表单以及每个帖子,放置或删除URL。然而,应用程序并没有使用表单标签,因此将它添加到应用程序中每个JavaScript生成的表单似乎是繁重的,更不用说需要进行大量测试以确保没有现有功能被破坏。

    谢谢!

0 个答案:

没有答案