在Django中预防CSRF攻击的操作


Posted in Python onMarch 13, 2020

CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造。

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

( 包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…)

造成的问题:个人隐私泄露以及财产安全。

CSRF攻击示意图

客户端访问服务器时没有同服务器做安全验证

在Django中预防CSRF攻击的操作

防止 CSRF 攻击

步骤:

1. 在客户端向后端请求界面数据的时候,后端会往响应中的 cookie 中设置 csrf_token 的值

2. 在 Form 表单中添加一个隐藏的的字段,值也是 csrf_token

3. 在用户点击提交的时候,会带上这两个值向后台发起请求

4. 后端接受到请求,会做以下几件事件:

4.1 从 cookie中取出 csrf_token

4.2 从 表单数据中取出来隐藏的 csrf_token 的值

4.3 进行对比

5. 如果比较两个值(经过算法运算得出的结果)是一样,那么代表是正常的请求,如果没取到或者比较不一样,代表不是正常的请求,不执行下一步操作

在Django中预防CSRF攻击的操作

CSRF_TOKEN的设置过程

创建视图类

在Django中预防CSRF攻击的操作

添加路由

在Django中预防CSRF攻击的操作

添加表单

在form里添加语句

在Django中预防CSRF攻击的操作

<form method="post" action="/tpl/csrf">
  {{ csrf_input }}
<p>
 <label for="fave">Fruit: <input id="fave" name="fave" /></label>
</p>
<p>
 <label for="name">Name: <input id="name" name="name" /></label>
</p>
<button>提交</button>
</form>

在Django中预防CSRF攻击的操作

补充知识:Django实现url跳转(重定向)

编辑urls.py文件如下:

from django.urls import path, include
from django.views.generic import RedirectView
 
urlpatterns = [
  path('polls/', include('polls.urls')),
  path('', RedirectView.as_view(url='polls/')),
 
]

即表示将xxx.com跳转到xxx.com/polls/。

以上这篇在Django中预防CSRF攻击的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 切片和range()用法说明
Mar 24 Python
Python中使用不同编码读写txt文件详解
May 28 Python
python查找指定具有相同内容文件的方法
Jun 28 Python
Python中动态创建类实例的方法
Mar 24 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
Dec 27 Python
Python hashlib常见摘要算法详解
Jan 13 Python
Python字符串split及rsplit方法原理详解
Jun 29 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
Aug 07 Python
PyCharm 2020.2 安装详细教程
Sep 25 Python
python3.8动态人脸识别的实现示例
Sep 21 Python
教你怎么用python实现字符串转日期
May 24 Python
Anaconda+Pycharm环境下的PyTorch配置方法
Mar 13 #Python
Pycharm中切换pytorch的环境和配置的教程详解
Mar 13 #Python
django 取消csrf限制的实例
Mar 13 #Python
django-csrf使用和禁用方式
Mar 13 #Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
Mar 13 #Python
python爬虫实现获取下一页代码
Mar 13 #Python
Python3 利用face_recognition实现人脸识别的方法
Mar 13 #Python
You might like
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
PHPStorm+XDebug进行调试图文教程
2016/06/13 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
JavaScript 完成注册页面表单校验的实例
2017/08/19 Javascript
react redux入门示例
2018/04/19 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
解决vue-loader加载不上的问题
2020/10/21 Javascript
Vue+Spring Boot简单用户登录(附Demo)
2020/11/12 Javascript
python分析nignx访问日志脚本分享
2015/02/26 Python
Python 多线程Threading初学教程
2017/08/22 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
实例讲解CSS3中Transform的perspective属性的用法
2016/04/22 HTML / CSS
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
军训鉴定表自我鉴定
2014/02/13 职场文书
向领导表决心的话
2014/03/11 职场文书
暑假家长评语大全
2014/04/17 职场文书
设备管理实施方案
2014/05/31 职场文书
我是一名护士演讲稿
2014/08/28 职场文书
演讲比赛的活动方案
2014/08/28 职场文书
法制教育演讲稿
2014/09/10 职场文书
导游欢送词
2015/01/31 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL