1.Django CSRF的原理

CSRF(Cross Site Request Forgery)也就是跨站请求伪造,实现的原理是CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击页面,利用目标网站对用户的信任,以用户身份在攻击页面对目标网站发起伪造用户操作的请求,达到攻击目的;

2.CSRF认证

  • 在项目的settings文件中有一个配置项MIDDLEWARE,表示默认Django启用csrf认证;
'django.middleware.csrf.CsrfViewMiddleware'
  • 当页面为form表单提交时,一般都需要在form标签中加上{% csrf_token %},如果第一次表单提交的时候带上了csrf_token ,服务器端就会认为这个是可信任的用户,所以如果第二次提交时form表单去掉csrf_token,但是浏览器请求时会带上之前表单第一次提交时中的csrf_token ,服务器端默认信任这个csrf_token ;

{# #} {% csrf_token %}

  • 如果在settings文件中将csrf的中间件注释,那么form表单提交,将不再需要csrf token认证;

3.CSRF局部禁用

  • 为了避免没有csrf token而产生的403的forbidden错误问题,通常使用django.views.decorators.csrf.csrf_exempt装饰器来修饰这个处理POST请求的View, 这种方式是CSRF局部禁用;
from django.views.generic import Viewfrom django.utils.decorators import method_decoratorfrom django.views.decorators.csrf import csrf_exemptclass CSRFTestView(View): @method_decorator(csrf_exempt) def dispatch(self, request, *args, **kwargs): return super().dispatch(request, *args, **kwargs) def post(self, request): pass
  • 局部启用可以使用csrf_protect,需要先在settings文件注释CsrfViewMiddleware;
from django.views.generic import Viewfrom django.utils.decorators import method_decoratorfrom django.views.decorators.csrf import csrf_protectclass CSRFTestView(View): @method_decorator(csrf_protect) def dispatch(self, request, *args, **kwargs): return super().dispatch(request, *args, **kwargs) def post(self, request): pass
  • 如果需要禁用Django CSRF功能项目都是启用全局的CSRF中间件,针对局部的View进行禁用;

4.Postman

Postman是一种网页调试与发送网页http请求的chrome插件,可以用来很方便的模拟get、post、put、patch、delete、copy等多种方式的请求来调试接口;

postman可用作macOS,Windows和Linux操作系统的本机应用程序。Windows系统下安装postman只需要下载安装文件,然后运行安装程序就可以了;

Postman

Postman的下载地址:https://www.getpostman.com/downloads/

参考:https://www.9xkd.com/user/plan-view.html?id=1091380484

配置csrf_Django 启用和禁用CSRF功能相关推荐

  1. 使用DISM启用或禁用Windows功能

    部署映像服务和管理(DISM)工具是用于修改Windows®映像的命令行工具.您可以直接从命令提示符下使用DISM启用或禁用Windows功能,也可以将应答文件应用于图像.您可以在WIM或VHD文件上 ...

  2. 怎样在Mac上启用或禁用FaceTime 功能?

    有不少用户希望能停用Mac 电脑上的FaceTime 功能,因为很少使用,或根本就不曾经使用过,今天就分享一下如何在Mac上启用或禁用FaceTime 功能? FaceTime 是什么? FaceTi ...

  3. win10上如何启用或禁用Windows功能

    Windows10上提供了很多的功能,比如打印服务.传真服务.媒体服务等,怎样启用或禁用某些Windows功能呢? 工具/原料 windows10 方法/步骤 点击左下角的Windows图标,然后再点 ...

  4. 禁用传统支持和启用安全引导_如何为Windows 10启用或禁用安全登录

    禁用传统支持和启用安全引导 Windows is the most targeted operating system on the planet. That means you should for ...

  5. 微软sql服务器可以禁用,启用或禁用可用性组功能 - SQL Server Always On | Microsoft Docs...

    启用或禁用 AlwaysOn 可用性组功能 08/30/2017 本文内容 适用于: SQL Server(所有支持的版本) 启用 Always On 可用性组 是服务器实例使用可用性组的先决条件. ...

  6. Android 9.0 系统管控Wifi的启用和禁用功能实现

    目录 1.概述 2.系统管控Wifi的启用和禁用功能实现的核心类

  7. DHCP服务器禁用NetBios功能后引发WPAD失效解决方法

    今天的这篇博文呢,只是想把最近遇到在DHCP服务器上禁用NetBios选项后导致的Windows XP SP3版本无法正常应用WPAD值的问题. 关于禁用客户端的Netbios选项功能的方法,微软官方 ...

  8. linux barrier,如何决定何时启用Linux文件系统barrier功能?

    大多数当前流行的Linux文件系统,包括EXT3和EXT4,都将文件系统barrier作为一个增强的安全特性.它保护数据不被写入日记.但是,在许多情况下,我们并不清楚这些barrier是否有用.本文就 ...

  9. 如何启用×××服务器端的IPsec功能

    如何启用×××服务器端的IPsec功能 测试版安装完成之后,PacketiX ×××的IPsec功能尚未启用,请参照以下方法将其启用. 设置方法: 请参照以下方法配置×××服务器 ×××服务器管理器的 ...

最新文章

  1. android 锁屏画面开发,android 锁屏应用开发
  2. ajax post 表单和 json 字符串
  3. JVM调优总结(八)-典型配置举例2
  4. PPT 2010实现使用自定义主题付下载
  5. 天津科技大学计算机学院复试分数线,2021天津科技大学研究生复试分数线
  6. 用sqoop把hdfs数据存储到mysql报错,Job job_1566707990804_0002 failed with state FAILED due to: Tas k failed
  7. 5G大幕已启 将如何改变社会?
  8. 利用反射判断初始化后的对象所有属性是否为空判断对象指定属性是否为空
  9. Project Euler Problem 92 Square digit chains
  10. Contiki源码+原理+功能+编程+移植+驱动+网络(转)
  11. Http协议中常用字段总结(不定时完善中)
  12. 安卓第十三天笔记-服务(Service)
  13. Maven实战 PDF 许晓斌
  14. 财会法规与职业道德【6】
  15. Kubesphere应用商店
  16. 如何修改报表平台中数据决策系统登陆地址
  17. /etc/security/limits.conf 控制文件描述符,进程数,栈大小等
  18. 【干货】怎么将阿里云ECS的数据下载到本地
  19. Python数据分析案例06——现代人的婚育意愿调查分析(基于逻辑回归模型和问卷数据)
  20. 家用洗地机哪个牌子质量最好?高性价比家用洗地机推荐

热门文章

  1. matlab2c使用c++实现matlab函数系列教程-unifstat函数
  2. matlab2c使用c++实现matlab函数系列教程-rand函数
  3. (Electronic WorkBench)EWB仿真JK触发器
  4. matlab分析矩阵与线性变换
  5. 19年全国数学建模比赛A题代码(简单的迭代思想)
  6. Crackme008
  7. 第五章 列表、元组和字符串[DDT书本学习 小甲鱼]【8】
  8. tomcat8.5配置优化
  9. WPF ViewModel与多个View绑定后如何解决的问题
  10. C# Redis的操作