在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 相关文章推荐
总结用Pdb库调试Python的方式及常用的命令
Aug 18 Python
学习Python3 Dlib19.7进行人脸面部识别
Jan 24 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
Oct 11 Python
Python 获取主机ip与hostname的方法
Dec 17 Python
Python lambda表达式用法实例分析
Dec 25 Python
scikit-learn线性回归,多元回归,多项式回归的实现
Aug 29 Python
pandas和spark dataframe互相转换实例详解
Feb 18 Python
Python基于yield遍历多个可迭代对象
Mar 12 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
Mar 30 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
关于Python3爬虫利器Appium的安装步骤
Jul 29 Python
Python 实现键盘鼠标按键模拟
Nov 18 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
php实现12306余票查询、价格查询示例
2014/04/17 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
JavaScript自学笔记(必看篇)
2016/06/23 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
详解ECMAScript typeof用法
2018/07/25 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
vue 实现边输入边搜索功能的实例讲解
2018/09/16 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
Vue中key的作用示例代码详解
2020/06/10 Javascript
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
[02:03]完美世界DOTA2联赛10月30日赛事集锦
2020/10/31 DOTA
python开发的小球完全弹性碰撞游戏代码
2013/10/15 Python
深入解析Python设计模式编程中建造者模式的使用
2016/03/02 Python
python文本数据相似度的度量
2018/03/12 Python
浅谈DataFrame和SparkSql取值误区
2018/06/09 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
拓展培训心得体会
2014/01/04 职场文书
机关单位人员学雷锋心得体会
2014/03/10 职场文书
工商管理自荐书
2014/07/06 职场文书
客户答谢会活动方案
2014/08/31 职场文书
给老婆的道歉信
2015/01/20 职场文书
回复函范文
2015/07/14 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
python开发实时可视化仪表盘的示例
2021/05/07 Python