ajax – 暴露会话的CSRF保护令牌是否安全?

Django自带 CSRF protection middleware,它为表单生成一个唯一的每会话令牌.它扫描所有传入的POST请求以获得正确的令牌,如果令牌丢失或无效,则拒绝该请求.

我想使用AJAX进行一些POST请求,但是所述请求没有可用的CSRF令牌.这些页面没有< form>要插入的元素,我宁可不要把标记插入到一个隐藏的值中.我认为一个很好的方法是,使用/ get-csrf-token /来传递用户的令牌,依靠浏览器的跨站点脚本规则来防止恶意网站的请求.

这是一个好主意吗?是否有更好的方法来保护免受CSRF攻击,同时仍然允许AJAX请求?

如果您知道您将需要AJAX请求的CSRF令牌,您可以随时将其嵌入HTML中;那么你可以通过Javascript通过遍历DOM找到它.这样,您仍然可以访问令牌,但是您不会通过API进行暴露.

换句话说就是通过Django的模板来实现,而不是通过URL调度器.这样更安全.

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...