【问题标题】:Is a CSRF token needed for "AJAX"-only "application/json"-only POSTs?仅“AJAX”-仅“应用程序/json”-仅 POST 是否需要 CSRF 令牌?
【发布时间】:2013-07-21 16:04:42
【问题描述】:

如果我理解正确,如果您只允许来自“AJAX”(对于 JSON 的真正意义上的 AJAJ)表单中的 JSON 作为 application/json,则不需要 CSRF 令牌,对吗?

如果有人尝试使用一些漂亮的 POST-to-iFrame hack 从另一个页面发布到表单,它将是 application/x-www-form-urlencoded,您可以立即将其丢弃。

如果有人尝试使用 AJAJ 发布到表单,只有在 OPTIONS 具有允许的 CORS 标头时才会成功。

结论:除非您使用 CORS,否则您可以避免 CSRF,因为您使用 application/json 而不是 application/x-www-form-urlencoded

我没有考虑任何矛盾?

【问题讨论】:

    标签: ajax forms security xmlhttprequest csrf


    【解决方案1】:

    看看这个Sec.SE question and answer。简而言之:您是正确的(目前),但依赖这种行为可能不是一个好主意,所以无论如何都要使用令牌。

    【讨论】:

      猜你喜欢
      • 2018-04-23
      • 2017-10-29
      • 2019-07-01
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-09
      • 1970-01-01
      相关资源
      最近更新 更多