在Django中预防CSRF攻击的操作
作者:代序春秋 时间:2023-11-11 15:55:13
CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造。
CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求。
( 包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…)
造成的问题:个人隐私泄露以及财产安全。
CSRF攻击示意图
客户端访问服务器时没有同服务器做安全验证
防止 CSRF 攻击
步骤:
1. 在客户端向后端请求界面数据的时候,后端会往响应中的 cookie 中设置 csrf_token 的值
2. 在 Form 表单中添加一个隐藏的的字段,值也是 csrf_token
3. 在用户点击提交的时候,会带上这两个值向后台发起请求
4. 后端接受到请求,会做以下几件事件:
4.1 从 cookie中取出 csrf_token
4.2 从 表单数据中取出来隐藏的 csrf_token 的值
4.3 进行对比
5. 如果比较两个值(经过算法运算得出的结果)是一样,那么代表是正常的请求,如果没取到或者比较不一样,代表不是正常的请求,不执行下一步操作
CSRF_TOKEN的设置过程
创建视图类
添加路由
添加表单
在form里添加语句
<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实现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/。
来源:https://blog.csdn.net/geek64581/article/details/102759624
标签:Django,CSRF,攻击
0
投稿
猜你喜欢
JS数组方法汇总
2009-08-03 14:06:00
MySQL存储过程savepoint rollback to
2008-12-03 16:02:00
vue2.0开发实践总结之疑难篇
2024-05-02 16:33:28
学点简单的Django之第一个Django程序的实现
2021-03-23 05:10:59
父节点获取子节点的字符串示例代码
2024-02-27 05:07:02
在PyCharm下使用 ipython 交互式编程的方法
2021-05-06 11:12:01
Python+pyftpdlib实现局域网文件互传
2022-01-10 04:09:30
Pandas 合并多个Dataframe(merge,concat)的方法
2021-07-14 07:26:58
java代码实现mysql分表操作(用户行为记录)
2024-01-17 22:57:09
Python数据分析Pandas Dataframe排序操作
2022-06-28 07:44:11
详解opencv中画圆circle函数和椭圆ellipse函数
2023-08-10 22:11:40
python利用smtplib实现QQ邮箱发送邮件
2023-07-15 18:47:12
如何利用数据库内容建立一个下拉式列表?
2010-01-01 15:46:00
Bootstrap 表单验证formValidation 实现表单动态验证功能
2024-04-22 12:51:36
Python如何匹配文本并在其上一行追加文本
2022-10-19 13:16:43
python使用rsa非对称加密过程解析
2021-06-15 00:14:51
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2022-04-22 01:39:50
Oracle重建控制文件的实例教程
2024-01-25 11:02:16
微软建议的ASP性能优化28条守则(1)
2008-02-22 16:54:00
Python使用百度API上传文件到百度网盘代码分享
2023-08-05 02:38:52