将 csrf 令牌存储在元标记中是一种好习惯吗?
Is it a good practice to store the csrf token in meta tag?
如果我在不使用表单的情况下发出 POST 请求并希望防止 CSRF 攻击,我可以做的是在元标记中设置 csrf-token 并将其放回 header 当请求被触发时。这是一个好习惯吗?
<meta name="csrf-token" content="xxx">
通过 header 放回令牌,例如使用 JQuery:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
是的,如果您使用 AJAX,这是一个很好的做法。你也可以把令牌放在表单里面(如果提交整个表单会更方便),但是如果你使用AJAX,它只需要去某个地方抓住它。
隐藏字段或元标记内都是很好的选择。
如果我在不使用表单的情况下发出 POST 请求并希望防止 CSRF 攻击,我可以做的是在元标记中设置 csrf-token 并将其放回 header 当请求被触发时。这是一个好习惯吗?
<meta name="csrf-token" content="xxx">
通过 header 放回令牌,例如使用 JQuery:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
是的,如果您使用 AJAX,这是一个很好的做法。你也可以把令牌放在表单里面(如果提交整个表单会更方便),但是如果你使用AJAX,它只需要去某个地方抓住它。
隐藏字段或元标记内都是很好的选择。