【问题标题】:CSRF-Prevention for XHR-Requests针对 XHR 请求的 CSRF 预防
【发布时间】:2015-03-25 16:54:35
【问题描述】:

我刚刚了解了 CSRF 预防的细节。在我们的应用程序中,所有“写入”请求都是使用 XHR 完成的。整个页面实际上并没有提交一个表单,一切都是通过 XHR 完成的。

对于这种情况,维基百科建议Cookie-to-Header Token。在那里,一些随机值在登录期间(或在其他某个时间点)存储在 cookie 中。在发出 XHR 请求时,该值会被复制到自定义 http-header(例如“X-csrf-token=”),然后由服务器检查。

现在我想知道,在这种情况下,随机值是否真的必要。我认为只设置一个像“X-anti-csrf = true”这样的自定义标题就足够了。似乎比拖动随机值稳定得多。但这会引发任何安全问题吗?

【问题讨论】:

  • 但是攻击者可以连接到您的网站以获取非随机标头并将其重用于恶意请求。

标签: javascript ajax cookies xmlhttprequest csrf


【解决方案1】:

这取决于您要做出多少有风险的假设。

  1. 您已正确配置 CORS 标头,
  2. 并且用户的浏览器尊重它们,
  3. 因此恶意网站无法向您的域发送 XHR,
  4. 这是通过请求发送自定义标头的唯一方法

如果您相信这一切,那么固定的自定义标头肯定会起作用。 如果您删除任何假设,那么您的方法将失败。

如果您使标题无法猜测,那么您不需要做出这些假设。您仍然依赖于该标头的值不能被第三方截获和复制的假设(有 TLS)。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-08-18
  • 2013-04-11
  • 1970-01-01
  • 2011-07-29
  • 2014-11-28
  • 1970-01-01
  • 2014-05-06
相关资源
最近更新 更多