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的更多相关文章

  1. $Django 中间件 csrf

     中间件  -中间件是什么?请求和响应之间的一道屏障  -中间件作用:控制请求和响应  -django中内置几个中间件   process_request(self,request)   proces ...

  2. csrf 跨站请求伪造相关以及django的中间件

    django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware来完成. 1.django中常用的中间件? - proces ...

  3. python 全栈开发,Day87(ajax登录示例,CSRF跨站请求伪造,Django的中间件,自定义分页)

    一.ajax登录示例 新建项目login_ajax 修改urls.py,增加路径 from app01 import views urlpatterns = [ path('admin/', admi ...

  4. django学习之- CSRF及中间件

    CSRF # 表示django全局发送post请求均需要字符串验证功能:防止跨站请求伪造的功能工作原理:客户端访问服务器端,在服务器端正常返回给客户端数据的时候,而外返回给客户端一段字符串,等到客户端 ...

  5. 【Django】中间件,csrf,缓存,信号

    中间件(middleware) 描述:Middlewares 是修改 Django request 或者 response 对象的钩子. 在django中,中间件其实就是一个类,在请求到来和结束后,d ...

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

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

  7. Django对中间件的调用思想、csrf中间件详细介绍、Django settings源码剖析、Django的Auth模块

    目录 使用Django对中间件的调用思想完成自己的功能 功能要求 importlib模块介绍 功能的实现 csrf中间件详细介绍 跨站请求伪造 Django csrf中间件 form表单 ajax c ...

  8. django中间件 csrf auth认证

    django中间件 能做全局访问频率限制,身份校验,黑名单,白名单 用法: 新建一个文件夹,文件夹新建一个py文件,文件中写如下代码 注意点:你写的类必须继续MiddlewareMixin from ...

  9. Django:之中间件、微信接口和单元测试

    Django中间件 我们从浏览器发出一个请求 Request,得到一个响应后的内容 HttpResponse ,这个请求传递到 Django的过程如下: 也就是说,每一个请求都是先通过中间件中的 pr ...

随机推荐

  1. 适配IPhone X的技巧

    #define TabbarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20?83:49) // ...

  2. [SaltStack] Multi-Master配置

    Multi Master配置 从salt 0.16.0版本开始, 管理minions可以使用multi-master特性. 当使用multi-master时, 所有masters均可以正常运行, 任何 ...

  3. javascript 之 className属性

    Javascript 可以通过className 属性灵活的更改一个标签元素的CSS 类选择器来实现样式的变化. 1.用className 属性修改节点的css类别 代码如下: <html> ...

  4. Python学习杂记_5_列表常用操作

    列表操作 列表时用方括号括起来的一组元素值,是可变变量,可通过下表取值,也可以通过下表来修改值,列表中的元素是有序的,可以是不同的基本数据类型,如: names=[1, 2, 3, “abc”, “d ...

  5. hdu 4989(水题)

    Summary Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  6. NYOJ 27.水池数目-DFS求连通块

    水池数目 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地 ...

  7. Codeforces 629 B. Far Relative’s Problem

      B. Far Relative’s Problem   time limit per test 2 seconds memory limit per test 256 megabytes inpu ...

  8. 源码分析——迁移学习Inception V3网络重训练实现图片分类

    1. 前言 近些年来,随着以卷积神经网络(CNN)为代表的深度学习在图像识别领域的突破,越来越多的图像识别算法不断涌现.在去年,我们初步成功尝试了图像识别在测试领域的应用:将网站样式错乱问题.无线领域 ...

  9. BZOJ——3412: [Usaco2009 Dec]Music Notes乐谱

    http://www.lydsy.com/JudgeOnline/problem.php?id=3412 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit:  ...

  10. Difference between a Hard Link and Soft (Symbolic) Link

    Within the Unix/Linux file system, linking lets you create file shortcuts to link one or more files. ...