一、在django后台处理

1、将django的setting中的加入django.contrib.messages.middleware.MessageMiddleware,一般新建的django项目中会自带的。

MIDDLEWARE_CLASSES = [    'django.middleware.security.SecurityMiddleware',    'django.contrib.sessions.middleware.SessionMiddleware',    'django.middleware.common.CommonMiddleware',    'django.middleware.csrf.CsrfViewMiddleware',    'django.contrib.auth.middleware.AuthenticationMiddleware',    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',     'django.contrib.messages.middleware.MessageMiddleware',  ] 这里中建间的顺序可以调整

2、在templete的html页的from中添加{% csrf %},后台重定向语法如下:

return render_to_response(xxx.html', context_instance=RequestContext(request))

二、前端处理

对所有的ajax请求加上以下语句:

$(function () {    $.ajaxSetup({        data: {csrfmiddlewaretoken: '{{ csrf_token }}'},    });})

这样向后台的请求都会带django生成的那个csrf_token值。中间件csrf模块会截取判断csrf_token值是否一致,如果一致则请求合法。

三、对于ajax的复杂对象,例如[{"id":"001","name":"小明"},{"id":"002","name":"小军"}].,后台post的处理

必须将这种对象转化为json格式传到后台,后台在反序列化即可。(不要用ajax的其他序列化格式,其深度序列化后,django后台解析比较困难)

contentType不需要指定utf-8,否则post解析出错

四、csrf攻击与预防

csrf利用session和cookie的时效性进行攻击。他会获取请求的cookie,在session时效内进行请求。因此对于重要信息,重要功能进行单次请求处理。即请求一次失效。

例如:请求头中加入验证token信息,用完即失效。django的中间件csrf_token就是此原理防止的。

五、django中间件

这里简单说一下django的中间件

我们从浏览器发出一个请求 Request,得到一个响应后的内容 HttpResponse ,这个请求传递到 Django的过程如下:

也就是说,每一个请求都是先通过中间件中的 process_request 函数,这个函数返回 None 或者 HttpResponse 对象,如果返回前者,继续处理其它中间件,如果返回一个 HttpResponse,就处理中止,返回到网页上。

我们可以据此做很多关于网络攻击的安全防护。比如:拦截器,过滤器,防止xss攻击 等等。

django中间件参考https://code.ziqiangxuetang.com/django/django-middleware.html

转载于:https://www.cnblogs.com/lovenethui/p/9760382.html

利用django中间件CsrfViewMiddleware防止csrf攻击相关推荐

  1. python middleware模块_详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击...

    一.在django后台处理 1.将django的setting中的加入django.contrib.messages.middleware.MessageMiddleware,一般新建的django项 ...

  2. csrf跨站请求伪造,CBV添加装饰器,auth认证模块,基于django中间件设计项目功能

    文章目录 csrf跨站请求伪造 csrf的定义 csrf的分类 csrf的攻击过程 csrf的攻击条件 举例说明 Django提供的解决策略 csrf相关装饰器 FBV CBV 方法一(直接在类中的某 ...

  3. Django CSRF(什么是CSRF?)\Django前后端分离csrf token获取方式

    文章目录 Django CSRF 什么是CSRF? Django CSRF Django CSRF 中间件 Django,Ajax提交csrf_token处理 Django 设置 cookie 中的 ...

  4. Django中如何防范CSRF跨站点请求伪造攻击

    CSRF概念 CSRF跨站点请求伪造(Cross-Site Request Forgery). 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望 ...

  5. Django从理论到实战(part53)--CSRF攻击

    学习笔记,仅供参考,有错必纠 摘自:某网课笔记 文章目录 CSRF攻击 CSRF攻击概述 CSRF攻击原理 防御CSRF攻击 CSRF攻击 CSRF攻击概述 CSRF(Cross Site Reque ...

  6. django view返回form error_Django(解决被钓鱼CSRF、Django中间件、反射)

    今日内容概要 django中间件 全局用户身份校验 全局用户权限校验(补充) 全局访问频率校验 ... csrf跨站请求伪造 基于django中间件一个重要的编程思想(反射) https://www. ...

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

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

  8. Django项目--csrf攻击

    1.案例流程图: 2.django防止csrf的方式: 1 ) Django中默认打开csrf中间件.settings.py文件中: MIDDLEWARE_CLASSES = ('django.con ...

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

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

最新文章

  1. 【Ubuntu】Ubuntu下的录频软件SimpleScreenRecorder
  2. 02_记录学生相关数据,输出平均分数
  3. oracle union 类型转换,Oracle 中 union 和union all 的简单使用说明
  4. python全栈_007_Python3格式化输出
  5. hadoop—集群配置历史服务器及访问历史服务器日志
  6. 使用SynchronousQueue实现生产者/消费者
  7. ROS(Robot Operating System)笔记 : 2.创建并配置package
  8. 【连载】如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(2)
  9. python中seaborn_python的seaborn模块
  10. centos6 安装和配置PHP 7.0
  11. BZOJ2933 : [Poi1999]地图
  12. 常用的HTML5和CSS3标签及用法(入门篇)
  13. jscript对URL参数进行编码与解码
  14. 2.jenkins 新建一个任务
  15. 如何完全卸载mysql呢
  16. 计算机编程常用术语英文词汇
  17. 高频电子线路资料强力推荐!
  18. python识别不了self_Graphene Python类无法识别self
  19. Markdown语法图文详解
  20. JavaScript中的常用鼠标事件以及小天使图片拖拽

热门文章

  1. Bit-Z 关于交易隐藏及下线说明
  2. gRPC学习记录(三)--proto3知识
  3. 将一个指针 free 两次之后会发生什么?
  4. 又掌握了一项新技能 - 断点调试 Gradle 插件
  5. 使用web3.js进行开发
  6. 全能HOOK框架 JNI NATIVE JAVA ART DALVIK
  7. Google Apps – Framework, Phonesky, GmsCore w/ AOSP Build.
  8. 服务器和操作系统怎么看,服务器和操作系统怎么看
  9. python列表切片得到的是列表还是字符串_python中列表的切片问题 python arry怎么取列切片...
  10. 设计买什么笔记本电脑_大一设计专业新生,买什么牌子笔记本电脑合适?