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

ton*_*919 9 jquery csrf meta-tags

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

<meta name="csrf-token" content="xxx">
Run Code Online (Sandbox Code Playgroud)

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

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

ajo*_*jon 7

是的,这是一个好习惯.如果您使用的是ajax,我认为这是最干净的解决方案.

你也可以把令牌放在表单里面(如果提交整个表单会更方便),但是如果你使用ajax,它只需要去你可以抓住的地方.

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