一、在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.middleware.csrf.CsrfViewMiddleware防止csrf攻击

本文地址: http://www.cppcns.com/jiaoben/python/241246.html

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

  1. python 日历模块_详解Python日历模块的使用

    calendar模块的函数都是日历相关的,提供了对日期的一些操作方法,和生成日历的方法. calendar模块中提供了三大类: 一.calendar.Calendar(firstweekday=0) ...

  2. python——pickle模块的详解

    python--pickle模块的详解 介绍 pickle模块实现了用于序列化和反序列化Python对象结构的二进制协议 "Pickling"是将Python对象层次结构转换为字节 ...

  3. Python re模块用法详解

    Python re模块用法详解 在 Python 爬虫过程中,实现网页元素解析的方法有很多,正则解析只是其中之一,常见的还有 BeautifulSoup 和 lxml,它们都支持网页 HTML 元素的 ...

  4. python时间模块time详解

    python时间模块time详解 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块 ...

  5. python3 json模块_详解python 3.6 安装json 模块(simplejson)

    JSON 相关概念: 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON,XML等.反序列化就是从存储区域(JSON,XML)读取反 ...

  6. python zxing 识别条码_详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强...

    前言 这周和大家分享如何用python识别图像里的条码.用到的库可以是zbar.希望西瓜6辛苦码的代码不要被盗了.(zxing的话,我一直没有装好,等装好之后再写一篇) 具体步骤 前期准备 用open ...

  7. python pychart三维_详解python模块pychartdir安装及导入问题

    在迁移别人写好的脚本时,发现pychartdir没有导入,脚本执行报错.以下是报错内容: [modps@LGJF-ZYC5-MMSC-WEB02 ~]$ python /opt/aspire/prod ...

  8. python操作ppt的模块_详解 Python 操作 PPT 的各种骚操作!

    1.python-pptx模块简介 使用python操作PPT,需要使用的模块就是python-pptx,下面来对该模块做一个简单的介绍. 这里提前做一个说明:python操作PPT,最好是我们提前设 ...

  9. python处理ppt 哪个模块_详解 Python 操作 PPT 的各种骚操作!

    1.python-pptx模块简介 使用python操作PPT,需要使用的模块就是python-pptx,下面来对该模块做一个简单的介绍. 这里提前做一个说明:python操作PPT,最好是我们提前设 ...

最新文章

  1. ggplot2 图形排版:patchwork 包复杂排版
  2. Batch Normalization的TensorFlow实现
  3. 网页无法显示验证码的方法
  4. 作为一名 ABAP 资深顾问,下一步可以选择哪一门 SAP 技术作为主攻方向?
  5. C++vector相关学习,我的理解
  6. LeetCode MySQL 1149. 文章浏览 II
  7. java getparametermap_重写getParameterMap后,报错 ,
  8. SQL Server2008数据库的维护 (第四部分)
  9. SDOI2017R2PKUSC2017
  10. 源码分析Dubbo服务提供者启动流程-上篇
  11. Android窗口系统第二篇---Window的添加过程
  12. matlab的基本使用
  13. m3u8格式转换器android,m3u8转换格式mp4软件下载-m3u8转换格式 安卓版v2.7.0-PC6安卓网...
  14. SPOJ 28270 BIPCSMR16 - Team Building(水~)
  15. pat乙级1083C语言
  16. 合肥工业大学计算机与信息学院导师介绍,合肥工业大学计算机与信息学院导师介绍:方宝富...
  17. 中兴路由器查看端口详情命令
  18. 【笔记】H.265/HEVC 视频编码(四)——预测编码
  19. Java 下载 Excel文件打不开
  20. 必刷|2022年贵州最新八大员之(安全员)模拟题库及答案

热门文章

  1. JS 获取元素下指定的子元素
  2. B02 - 049、查看Kafka集群的方式①:ZooInspector
  3. 魔兽8.0最新服务器人口普查,魔兽世界8.0到底有多火_人口普查数据告诉你到底有多少玩家_3DM网游...
  4. vue.js毕业设计,基于vue.js前后端分离图书购物商城小程序系统设计与实现
  5. php construct 返回值,php – 在类__construct()中间返回是否可以接受
  6. nRF52832蓝牙BLE学习(1)基本了解(环境、目录结构等)
  7. Android自动化测试第二季(提高篇)-金阳光-专题视频课程
  8. C语言数据类型的定义
  9. 征服C指针---1.如何理解C指针的值和地址
  10. 计算机网络考试复习的错题整理