Django 带有CSRF 保护中间件,它生成一个唯一的每个会话令牌以在表单中使用。它扫描所有传入POST
请求以获取正确的令牌,如果令牌丢失或无效,则拒绝请求。
我想对一些 POST 请求使用 AJAX,但是说请求没有可用的 CSRF 令牌。这些页面没有<form>
可以挂钩的元素,我宁愿不要混淆将标记作为隐藏值插入的标记。我认为这样做的一个好方法是公开一个 vew 喜欢/get-csrf-token/
返回用户的令牌,依靠浏览器的跨站点脚本规则来防止敌对站点请求它。
这是一个好主意吗?是否有更好的方法来防止 CSRF 攻击,同时仍然允许 AJAX 请求?