在Django中预防CSRF攻击的操作

 更新时间:2020年03月13日 17:16:33   作者:代序春秋  
这篇文章主要介绍了在Django中预防CSRF攻击的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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/。

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

相关文章

  • Python学习之字典的创建和使用

    Python学习之字典的创建和使用

    这篇文章主要为大家介绍了Python中的字典的创建与使用,包括使用字典(添加、删除、修改等操作),感兴趣的小伙伴可以跟随小编一起学习一下
    2022-06-06
  • Django实现组合搜索的方法示例

    Django实现组合搜索的方法示例

    本篇文章主要介绍了Django实现组合搜索的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Python3.5面向对象程序设计之类的继承和多态详解

    Python3.5面向对象程序设计之类的继承和多态详解

    这篇文章主要介绍了Python3.5面向对象程序设计之类的继承和多态,结合实例形式详细分析了Python3.5面向对象程序设计中类的继承与多态常见用法及相关注意事项,需要的朋友可以参考下
    2019-04-04
  • Python中的简写操作(for、if简写、匿名函数)

    Python中的简写操作(for、if简写、匿名函数)

    这篇文章主要介绍了Python中的简写操作(for、if简写、匿名函数),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • win10下python3.8的PIL库安装过程

    win10下python3.8的PIL库安装过程

    这篇文章主要介绍了win10下python3.8的PIL库安装方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Cython处理C字符串的示例详解

    Cython处理C字符串的示例详解

    如果你在使用 Cython 加速 Python 时遇到了瓶颈,但还希望更进一步,那么可以考虑将数据的类型替换成 C 的类型,所以本文为大家介绍了Cython处理C字符串的方法,希望对大家有所帮助
    2023-01-01
  • Selenium及python实现滚动操作多种方法

    Selenium及python实现滚动操作多种方法

    这篇文章主要介绍了Selenium及python实现滚动操作多种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 对python dataframe逻辑取值的方法详解

    对python dataframe逻辑取值的方法详解

    今天小编就为大家分享一篇对python dataframe逻辑取值的方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Pytorch实现LSTM案例总结学习

    Pytorch实现LSTM案例总结学习

    这篇文章主要介绍了Pytorch实现LSTM案例总结学习,文章通过构建网络层、前向传播forward()展开主题介绍,需要的小伙吧可以参考一下
    2022-07-07
  • python 实现视频 图像帧提取

    python 实现视频 图像帧提取

    今天小编就为大家分享一篇python 实现视频 图像帧提取,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12

最新评论