PHP前端开发

Django 如何防御 CSRF 攻击?

百变鹏仔 5天前 #Python
文章标签 Django

Django CSRF 的原理

跨站点请求伪造(CSRF)是一种攻击,攻击者诱骗受害者访问带有恶意脚本的网站。脚本将利用受害者已登录的会话令牌向受信任的网站(如银行)提交欺诈请求。

Django 的 CSRF 防护原理

为了防止 CSRF 攻击,Django 使用以下两种令牌:

这些令牌由服务器生成,并在请求和响应之间共享。

验证过程

防范跨域攻击

HTTP 中的同源策略本身就可以防止跨域请求。也就是说,浏览器不会向不同域名的网站发送请求。

但是,Django 的 CSRF 保护是多余的,因为即使攻击者能够获得csrftoken,他们也无法跨域提交 POST 请求。

浏览器不允许跨域请求

浏览器不允许跨域请求,因为出于安全考虑,防止网站未经用户许可访问其他网站的数据。