python middleware模块_详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击...
一、在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攻击...相关推荐
- python 日历模块_详解Python日历模块的使用
calendar模块的函数都是日历相关的,提供了对日期的一些操作方法,和生成日历的方法. calendar模块中提供了三大类: 一.calendar.Calendar(firstweekday=0) ...
- python——pickle模块的详解
python--pickle模块的详解 介绍 pickle模块实现了用于序列化和反序列化Python对象结构的二进制协议 "Pickling"是将Python对象层次结构转换为字节 ...
- Python re模块用法详解
Python re模块用法详解 在 Python 爬虫过程中,实现网页元素解析的方法有很多,正则解析只是其中之一,常见的还有 BeautifulSoup 和 lxml,它们都支持网页 HTML 元素的 ...
- python时间模块time详解
python时间模块time详解 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块 ...
- python3 json模块_详解python 3.6 安装json 模块(simplejson)
JSON 相关概念: 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON,XML等.反序列化就是从存储区域(JSON,XML)读取反 ...
- python zxing 识别条码_详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强...
前言 这周和大家分享如何用python识别图像里的条码.用到的库可以是zbar.希望西瓜6辛苦码的代码不要被盗了.(zxing的话,我一直没有装好,等装好之后再写一篇) 具体步骤 前期准备 用open ...
- python pychart三维_详解python模块pychartdir安装及导入问题
在迁移别人写好的脚本时,发现pychartdir没有导入,脚本执行报错.以下是报错内容: [modps@LGJF-ZYC5-MMSC-WEB02 ~]$ python /opt/aspire/prod ...
- python操作ppt的模块_详解 Python 操作 PPT 的各种骚操作!
1.python-pptx模块简介 使用python操作PPT,需要使用的模块就是python-pptx,下面来对该模块做一个简单的介绍. 这里提前做一个说明:python操作PPT,最好是我们提前设 ...
- python处理ppt 哪个模块_详解 Python 操作 PPT 的各种骚操作!
1.python-pptx模块简介 使用python操作PPT,需要使用的模块就是python-pptx,下面来对该模块做一个简单的介绍. 这里提前做一个说明:python操作PPT,最好是我们提前设 ...
最新文章
- ggplot2 图形排版:patchwork 包复杂排版
- Batch Normalization的TensorFlow实现
- 网页无法显示验证码的方法
- 作为一名 ABAP 资深顾问,下一步可以选择哪一门 SAP 技术作为主攻方向?
- C++vector相关学习,我的理解
- LeetCode MySQL 1149. 文章浏览 II
- java getparametermap_重写getParameterMap后,报错 ,
- SQL Server2008数据库的维护 (第四部分)
- SDOI2017R2PKUSC2017
- 源码分析Dubbo服务提供者启动流程-上篇
- Android窗口系统第二篇---Window的添加过程
- matlab的基本使用
- m3u8格式转换器android,m3u8转换格式mp4软件下载-m3u8转换格式 安卓版v2.7.0-PC6安卓网...
- SPOJ 28270 BIPCSMR16 - Team Building(水~)
- pat乙级1083C语言
- 合肥工业大学计算机与信息学院导师介绍,合肥工业大学计算机与信息学院导师介绍:方宝富...
- 中兴路由器查看端口详情命令
- 【笔记】H.265/HEVC 视频编码(四)——预测编码
- Java 下载 Excel文件打不开
- 必刷|2022年贵州最新八大员之(安全员)模拟题库及答案
热门文章
- JS 获取元素下指定的子元素
- B02 - 049、查看Kafka集群的方式①:ZooInspector
- 魔兽8.0最新服务器人口普查,魔兽世界8.0到底有多火_人口普查数据告诉你到底有多少玩家_3DM网游...
- vue.js毕业设计,基于vue.js前后端分离图书购物商城小程序系统设计与实现
- php construct 返回值,php – 在类__construct()中间返回是否可以接受
- nRF52832蓝牙BLE学习(1)基本了解(环境、目录结构等)
- Android自动化测试第二季(提高篇)-金阳光-专题视频课程
- C语言数据类型的定义
- 征服C指针---1.如何理解C指针的值和地址
- 计算机网络考试复习的错题整理