1.介绍

我们之前从前端给后端发送数据的时候,一直都是把setting中中间件里的的csrftoken这条给注释掉,其实这个主要起了一个对保护作用,以免恶意性数据的攻击。但是这样直接注释掉并不是理智型的选择,这里我们介绍以下几种方式来解决这个问题。

csrf原理:先发送get请求,在用户浏览器上藏一段随机字符串,发送post请求时,浏览器自动携带该字符串来进行识别

2.方式一

在前端中添加{% csrf_token %},前端ajax发送的data数据中加上:

csrfmiddlewaretoken: $("[name='csrfmiddlewaretoken']").val()

3.方式二

在ajax中添加X-CSRFToken的请求头,必须从cookie中取csrftoken的值

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''$('#login').click(function () {$.ajax({url:{% url 'login' %},type: 'post',headers:{ "X-CSRFToken":$.cookie('csrftoken') },data: {user: $('[name="user"]').val(),pwd: $('[name="pwd"]').val()},success: function (data) {data = JSON.parse(data);if (data.status) {window.location = data.url}else {alert('登陆错误')}}})})

4.方式三
使用$.ajaxSetup()给全局的ajax添加默认参数

$.ajaxSetup({headers: {"X-CSRFToken": $.cookie('csrftoken')},});

5.方式四
在需要设置cookie的视图上加装饰器 ensure_csrf_cookie()

from django.views.decorators.csrf import ensure_csrf_cookie@ensure_csrf_cookie
def server(request):return render(request, 'server.html')

django中csrftoken跨站请求伪造的几种方式相关推荐

  1. Django框架之跨站请求伪造

    跨站请求伪造(英语:Cross-site request forgery),也被称为one-click attack或者session riding,通常缩写为CSRF或者XSRF, 是一种挟制用户在 ...

  2. django CBV装饰器 自定义django中间件 csrf跨站请求伪造 auth认证模块

    CBV加装饰器 第一种 @method_decorator(装饰器) 加在get上 第二种 @method_decorator(login_auth,name='get') 加在类上 第三种 @met ...

  3. 在 Asp.Net Core WebAPI 中防御跨站请求伪造攻击

    什么是跨站请求伪造 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或 ...

  4. Django之CSRF跨站请求伪造(老掉牙的钓鱼网站模拟)

    首先这是一个测试的代码 请先在setting页面进行下面操作 注释完成后,开始模拟钓鱼网站的跨站请求伪造操作: 前端代码: <!DOCTYPE html> <html lang=&q ...

  5. Web框架之Django_09 重要组件(Django中间件、csrf跨站请求伪造)

    摘要 Django中间件 csrf跨站请求伪造 一.Django中间件: 什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于 ...

  6. WordPress qTranslate插件跨站请求伪造漏洞

    漏洞名称: WordPress qTranslate插件跨站请求伪造漏洞 CNNVD编号: CNNVD-201306-058 发布时间: 2013-06-07 更新时间: 2013-06-07 危害等 ...

  7. .NET Core实战项目之CMS 第十四章 开发篇-防止跨站请求伪造(XSRF/CSRF)攻击处理...

    通过 ASP.NET Core,开发者可轻松配置和管理其应用的安全性. ASP.NET Core 中包含管理身份验证.授权.数据保护.SSL 强制.应用机密.请求防伪保护及 CORS 管理等等安全方面 ...

  8. WordPress Citizen Space插件跨站请求伪造漏洞

    漏洞名称: WordPress Citizen Space插件跨站请求伪造漏洞 CNNVD编号: CNNVD-201307-463 发布时间: 2013-07-23 更新时间: 2013-07-23 ...

  9. WordPress WP cleanfix插件‘eval()’函数跨站请求伪造漏洞

    漏洞名称: WordPress WP cleanfix插件'eval()'函数跨站请求伪造漏洞 CNNVD编号: CNNVD-201305-381 发布时间: 2013-05-20 更新时间: 201 ...

最新文章

  1. linux查找项目中的问题,教你如何快速定位项目中慢查询[项目管理]
  2. ASP.NET Web Forms - 网站导航(Sitemap 文件)
  3. Microbiome:人类肠道和病原菌的可移动抗性组驱动环境中抗生素抗性增长
  4. ANTLR 4的C#实例
  5. 第一章 docker 镜像,容器,仓库基本命令(二)
  6. java中文乱码解决之道(五)—–java是如何编码解码的
  7. rl滤波器原理_滤波器基本原理.ppt
  8. 《统计学习方法》代码全解析——第二部分 感知机
  9. 程序员如何备战全国计算机二级(Python)考试?
  10. V8 JavaScript 引擎 6.6 发布,异步性能大幅提升
  11. 什么叫侧面指纹识别_正面背面侧面 你手机的指纹识别长在哪?
  12. 状态压缩dp(状压dp)
  13. Python 数据分析微专业课程--项目实战09 房价影响因素挖掘
  14. python安装后不能画图_Python实现画图软件功能,windows的画图功能不能实现
  15. 异常java.lang.IllegalArgumentException: Validation failed for query for method public abstract
  16. 性是指用户可以与计算机进行人机对话操作,2016年计算机二级单选题训练题库...
  17. linux redis查看密码,Redis集群设置密码和查看密码方法
  18. 特征选择降维聚类变换集群变换KL变换模式识别
  19. 使用动态规划算法实现文献查重(C/C++实现)
  20. 全志哪吒D1-H Tina Linux Ubuntu 22.04入门踩坑日记

热门文章

  1. html5 XMLHttpRequest 图片异步上传
  2. PHP将json或对象转成数组
  3. 学习知识[置顶] C++学习方式方法
  4. HyperLink 鼠标经过时候显示全部文字
  5. libsvm 数据预处理 模块化程序
  6. linux下arp***的解决方案[转]
  7. 【MM模块】Invoice Verification in the Background 后台发票校验
  8. 【MM模块】Split Valuation 分割评估
  9. 修改SAPSR3密码
  10. redis的hGetAll函数的性能问题