将csrf标记存储在元标记中是一种好习惯吗?

时间:2015-04-16 16:12:54

标签: jquery csrf meta-tags

如果我在不使用表单的情况下发出POST请求并希望阻止CSRF攻击,我可以做的是在元标记中设置csrf-token,并在触发请求时将其放回标题。这是一个好习惯吗?

<meta name="csrf-token" content="xxx">

使用JQuery将标记放回标题,例如:

$.ajaxSetup({
   headers: {
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
   }
});

1 个答案:

答案 0 :(得分:6)

是的,这是一种很好的做法。如果您使用的是ajax,我认为这是最干净的解决方案。

您也可以将令牌放在表单中(如果提交整个表单会更方便),但如果您使用的是ajax,则只需要去某个可以抓取它的地方。

在隐藏字段或元标记中都是非常好的选择。