“AJAX”只需要一个CSRF令牌 - 只有“application / json” - 只有POST吗?

时间:2013-07-22 19:25:01

标签: ajax forms security xmlhttprequest csrf

如果我理解正确的话,如果你只是从“AJAX”(真的是AJAJ for JSON)形式允许JSON为application/json,那么就不需要CSRF令牌了吗?

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

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

结论:除非您使用CORS,否则当您使用application/json代替application/x-www-form-urlencoded时,您将无法使用CSRF。

我不考虑任何矛盾?

1 个答案:

答案 0 :(得分:1)

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