Django框架的CSRF跨站请求伪造个人理解


前言

分享Python学习过程中个人知识点的理解。

一、CSRF跨站请求伪造是什么?

含义:攻击者盗用了你的身份,以你的名义发送恶意请求。

理解:正常网站发送POST请求时会把网站自身相关cookie数据一并发送,攻击者正是通过获取该网站的cookie数据,伪造用户身份发送恶意请求。

图例:

在这里插入图片描述

二、如何解决CSRF跨站请求伪造?

        在前端表单增加隐藏的csrf_token字段,该字段的数据来源view.py文件"from django.middleware.csrf import get_token"里get_token生成的数据,生成的数据同时也写入cookie,在接收请求POST时,判断表单的csrf_token与cookie里的csrf_token是否一致,如果一致则视为正常的请求;如果不一致,代表的是跨站请求伪造。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

三、重点注意

当模版引擎为Django时,可在前端HTML模版中使用{% csrf_token %} 或者 <input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
当模版引擎为Jinja2时,只能使用 <input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值