码迷,mamicode.com
首页 > 其他好文 > 详细

django中跨站请求伪造与中间件

时间:2016-04-15 02:17:17      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

跨站请求伪造的作用:

  • 跨站请求伪造是为了防止非法post数据
  • 浏览器第一次访问服务端,服务端会分配一个token
  • 如果浏览器要post数据到服务端,需要带上服务端分配的token
  • 该token存放在客户端cookie中
  • 跨站请求伪造可以绕过
  • 请注意通过form和ajax提交数据,他们是怎么带上token的

绕站跨站请求伪造的方法:

在settings.py中注释掉‘django.middleware.csrf.CsrfViewMiddleware‘,如下:

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‘,
    ‘django.middleware.clickjacking.XFrameOptionsMiddleware‘,
]

绕站跨站请求伪造和中间件的关系

  • 跨站请求为找是一种中间件

什么是中间件

  • 中间件相当于连接客户端和服务端的管道
  • 从浏览器来的所有请求都需要经过中间件(比如可以记录访问日志)
  • 从服务端出去的所有返回都需要经过中间件
  • 从客户端到服务端,中间件的执行是从上到下,从服务端返回数据到客户端,中间件的执行顺序是从下到上
  • 可以自定义中间件类
  • 自定义中间件类中需要遵循有如下两个函数和参数
  • class Mymiddleware(object):
    
        def process_request(self, request):
            pass
    
        def process_response(self, request, response):
            pass

     

 

django中跨站请求伪造与中间件

标签:

原文地址:http://www.cnblogs.com/leeronggui/p/5393813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!