防伪标记作为头字段或AJAX上的Post值?

时间:2015-10-21 12:21:08

标签: jquery ajax post csrf

我现在正在Ring Anti Forgery工作,以防止该网站遭受CSRF攻击。现在我怀疑是否应该将标记作为标题字段或AJAX请求的post值传递,因为它们似乎都有效。

在文档上说:

  

中间件还在X-CSRF-Token中查找令牌   X-XSRF-Token头字段,通常用于AJAX请求。

将它设置为我的标题字段的缺点是我必须将每个Jquery $.post更改为简单的$.ajax,以便我可以设置标题。

e.g。

$.ajax({
  url: "url",
  type: "post",
  data: {
    username: username, 
    sender: sender
  },
  headers: {
    "X-CSRF-Token": X_CSRF_Token,   
  }
});

VS

$.post( "url", { username: username, sender: sender, '__anti-forgery-token': X_CSRF_Token})
  .done(function( data ) {
  // done
});

是否需要将每个jQuery $.post更改为$.ajax,以便将防伪令牌设置为标题字段?

1 个答案:

答案 0 :(得分:4)

您可以使用$.ajaxSetup在每次ajax调用时设置CSRF令牌:https://gist.github.com/alanhamlett/6316427