Django中CSRF攻击原理及其防御方式

本文介绍了CSRF攻击原理,即针对POST请求,用户登录正常网站后,若访问恶意网站并点击特定按钮,数据可能被修改。同时阐述了Django防御CSRF的方式,默认启动防护,可在settings.py中关闭,表单提交需加{% csrf_token %}标签,还说明了其防御原理是通过比较隐藏域和cookie信息进行验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CSRF攻击原理(只正对POST请求方式):

  1. 登入正常网站之后,你的浏览器会保存sessionid,如果你没有退出
  2. 你不小心访问了另一个恶意网站,这个网站是模拟正常网站中修改密码的网站,且隐藏那些修改信息,可能只显示一张图片或者是一个按钮,你不小心点击这个按钮,那个这个按钮的action就是去访问正常网站的修改用户的界面的url并附带有修改密码的post表单,那么你的数据就会被修改。
     

Django防御csrf的方式:

  1. Django默认启动了csrf防护,在settins.py文件中MIDDLEWARE_CLASSES中的"django.middleware.csrf.CsrfViewMiddleware", 如果注释这行,表示关闭防御CSRF攻击,注意点: CSRF攻击只针正对post提交
    在这里插入图片描述
  2. 表单提交数据时加上{% csrf_token %}标签

 
Django防御原理:

  1. 开启Django中CSRF防御,且在表单中添加{% csrf_token %}, 那么在渲染模板文件时在页面生成一个名字叫做csrfmiddlewaretoken的隐藏域。
    在这里插入图片描述在这里插入图片描述
  2. 服务器交给浏览器保存一个名字为csrftoken的cookie信息
    在这里插入图片描述
  3. 提交表单时,俩个值都会发给服务器,服务器进行比较,如果一样,则csrf验证通过,否则失败
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值