我现在正在Ring Anti Forgery工作,以防止该网站遭受CSRF攻击 . 现在我怀疑我是否应该将标记作为头字段或AJAX请求上的 post
值传递,因为它们似乎都有效 .
在文档上它说:
中间件还在X-CSRF-Token和X-XSRF-Token头字段中查找令牌,这些字段通常用于AJAX请求 .
将它设置为我的 Headers 字段的缺点是我必须将每个Jquery $.post
更改为一个简单的 $.ajax
,以便我可以设置 Headers .
例如
$.ajax({
url: "url",
type: "post",
data: {
username: username,
sender: sender
},
headers: {
"X-CSRF-Token": X_CSRF_Token,
}
});
与
$.post( "url", { username: username, sender: sender, '__anti-forgery-token': X_CSRF_Token})
.done(function( data ) {
// done
});
是否需要将每个jQuery $.post
更改为 $.ajax
所以我可以将防伪标记设置为 Headers 字段?
1 回答
您可以使用$.ajaxSetup在每次ajax调用时设置CSRF令牌:https://gist.github.com/alanhamlett/6316427