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 ...
随机推荐
- 如何在MySQL中导入大容量SQL文件
在实际工作中,有时需要导入大容量sql文件到MySQL,通常有以下三种方法: (1)通过phpmyadmin,不推荐,有内存等的限制: (2)通过Navicat Premium工具运行sql,不推荐, ...
- Repeater的使用及其鼠标特效,行链接的使用
原文发布时间为:2009-04-22 -- 来源于本人的百度文章 [由搬家工具导入] <asp:Repeater ID="rpt" runat="server&qu ...
- 先将Excel导入到gridview再添加进数据库【Excel批量添加】
原文发布时间为:2008-10-27 -- 来源于本人的百度文章 [由搬家工具导入] 前台: <%@ Page Language="C#" AutoEventWireup=& ...
- [Json] 1 - 数据格式(转)
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易 ...
- nginx报404的可能错误
1.转移地址写错,如root E:software_setup\ftpfile,而你实际的目录地址(比如test.jpg)在ftpfile文件夹里面的img文件夹下,如果直接找ftpfile\test ...
- 关于 gstreamer 和 webrtc 的结合,有点小突破
今天让我找到了 gstreamer 的一个牛叉的杀手锏,脑海中马上想到了一个大致的框架和方案计划,用 gst-inspector 先进行对象自省属性探测,然后祭出 gst-launcher 大刀进行管 ...
- qemu相关命令使用
qemu-ga qemu-guest-agent-2.5.0-3.el7.x86_64 qemu-img qemu-img-1.5.3-105.el7_2.4.x86_64 qemu-io qemu- ...
- 内存 : CL设置
CL(CAS Latency):为CAS的延迟时间,这是纵向地址脉冲的反应时间,也是在一定频率下衡量支持不同规范的内存的重要标志之一. 内存负责向CPU提供运算所需的原始数据,而目前CPU运行速度超过 ...
- viewpager+fragment出现TransactionTooLargeException的大坑!!!
最近apk包发给部分测试用户,反馈出现很多崩溃,异常是android.os.TransactionTooLargeException,看表面意思就是传送的数据太大,可是检查代码并没有传输很大的数据啊. ...
- nfc是什么?nfc功能是什么?
http://android.tgbus.com/lab/software/201208/447420.shtml nfc是什么?nfc功能是什么?出现在我们手机上的nfc功能怎么用?下面请看今天小编 ...