Django之中间件-CSRF
CSRF
a.CSRF原理
post提交时需要提交csrf_token ,缺少则不通过
在form表单中加入:
{% csrf_token %}
b.无CSRF时存在隐患
防护其他人通过别的链接post提交
c.Form提交(CSRF)
{% csrf_token %}
d.Ajax提交(CSRF) ----L22-capture-10
CSRF请求头:X-CSRFtoken
在所有ajax请求加入请求头
$(function(){
$.ajanxSetup({
beforeSend:function(xhr,settings){
#xhr:XMLHttpRequst() ajax封装的xhr方法
xhr.setRequestHeader('X-CSRFtoken',$.cookie('csrftoken'))
} })
$('#btn1').click(function(){
$.ajax({
url:'/login/',
type:'POST'
data:{‘user’:123}
success:function(arg){
...
}
})
})
})
局部加上CSRF:
@csrf_exempt 单一的排除
@csrf_protect 单一的加上
中间件(管道,httphandle类)
1.原理
settings中的MIDDLEWARE
对所有请求做统一的处理
2.操作
from django.utils.deprecation import MiddlewareMixin class Row1(MiddlewareMixin):
#请求开始
def process_request(self,request):
print('row1')
if True:
pass
else:
return HttpResponse #url(r'^test/(?p<nid>\d+)$',views.test)
#获取路由系统中的参数,和test函数
def process_view(self,request,view_func,view_func_args,view_func_kwargs):
print('row1_view') #请求返回
def process_response(self,request,response): return response
def process_exception(self,request,exception): #views 中出错就执行
if isinstance(exception,ValueError):
return HttpResponse('valueError') def process_template_response(self,request,response):
#如果views中的函数返回的对象中,具有render方法
print('------')
return response
Django之中间件-CSRF的更多相关文章
- $Django 中间件 csrf
中间件 -中间件是什么?请求和响应之间的一道屏障 -中间件作用:控制请求和响应 -django中内置几个中间件 process_request(self,request) proces ...
- csrf 跨站请求伪造相关以及django的中间件
django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware来完成. 1.django中常用的中间件? - proces ...
- python 全栈开发,Day87(ajax登录示例,CSRF跨站请求伪造,Django的中间件,自定义分页)
一.ajax登录示例 新建项目login_ajax 修改urls.py,增加路径 from app01 import views urlpatterns = [ path('admin/', admi ...
- django学习之- CSRF及中间件
CSRF # 表示django全局发送post请求均需要字符串验证功能:防止跨站请求伪造的功能工作原理:客户端访问服务器端,在服务器端正常返回给客户端数据的时候,而外返回给客户端一段字符串,等到客户端 ...
- 【Django】中间件,csrf,缓存,信号
中间件(middleware) 描述:Middlewares 是修改 Django request 或者 response 对象的钩子. 在django中,中间件其实就是一个类,在请求到来和结束后,d ...
- django CBV装饰器 自定义django中间件 csrf跨站请求伪造 auth认证模块
CBV加装饰器 第一种 @method_decorator(装饰器) 加在get上 第二种 @method_decorator(login_auth,name='get') 加在类上 第三种 @met ...
- Django对中间件的调用思想、csrf中间件详细介绍、Django settings源码剖析、Django的Auth模块
目录 使用Django对中间件的调用思想完成自己的功能 功能要求 importlib模块介绍 功能的实现 csrf中间件详细介绍 跨站请求伪造 Django csrf中间件 form表单 ajax c ...
- django中间件 csrf auth认证
django中间件 能做全局访问频率限制,身份校验,黑名单,白名单 用法: 新建一个文件夹,文件夹新建一个py文件,文件中写如下代码 注意点:你写的类必须继续MiddlewareMixin from ...
- Django:之中间件、微信接口和单元测试
Django中间件 我们从浏览器发出一个请求 Request,得到一个响应后的内容 HttpResponse ,这个请求传递到 Django的过程如下: 也就是说,每一个请求都是先通过中间件中的 pr ...
随机推荐
- 前端知识点总结——CSS
1.CSS的概述 1.什么是CSS? CSS:Cascading Style Sheets层叠样式表,级联样式表(简称:样式表) 2.作用 设置HTML网页元素的样式 3.HTML与CSS的关系 HT ...
- android基本控件学习-----TextView
一.TextView的讲解 <实例一> <?xml version="1.0" encoding="utf-8"?> <Linea ...
- js 验证数字的正则表达式集
<script type="text/javascript"> function validate(){ var reg = new RegExp( ...
- function in Postgres
CREATE or REPLACE FUNCTION fn_attr_category() RETURNS void AS $BODY$ declare v_tmp_rec record; begin ...
- python笔记7:优雅的python
7. 如何让python代码更 Pythonic : 1.变量交换: a, b = b, a 2.带有索引位置的集合遍历: colors = ['red', 'green', 'blue', 'yel ...
- ansible 2.7.1 快速开始
refer to 官方手册 https://docs.ansible.com/ansible/latest/modules/modules_by_category.html refer to 中文手册 ...
- 聚类kmeans算法在yolov3中的应用
yolov3 kmeans yolov3在做boundingbox预测的时候,用到了anchor boxes.这个anchors的含义即最有可能的object的width,height.事先通过聚类得 ...
- mfoc安装编译
系统环境 UBUNTU16.04,要安装好各种基础的编译环境,这就不说了,如果不知道需要什么,那就编译时出错时看到什么安装什么吧 下载源码包libnfc, mfoc, mfcuk,都是github上, ...
- java加载类的方法1.classloader 2.class.forName()
java加载类的方法1.classloader 2.class.forName() 加载一个类后,是在方法去创建这个类的元信息class对象,在方法区立刻创建.在方法区创建.
- Define Custom Data Filter Using Pre-Query Trigger In Oracle Forms
Oracle Forms is having its default records filter, which we can use through Enter Query mode to spec ...