django 取消csrf限制的实例


Posted in Python onMarch 13, 2020

# 导入包

from django.views.decorators.csrf import csrf_exempt

# 使用装饰器即可避免csrf限制

@csrf_exempt
def add_bookshelf(request):
  user_id = request.POST.get('user_id')
  print(user_id)
  return HttpResponse('123')

补充知识:Django 前后端分离跨域AJAX获取csrftoken及获取cookie时遇到的问题

获取CSRFTOKEN

Django的中间件'django.middleware.csrf.CsrfViewMiddleware'会将csrftoken的值设置在cookie中。在前后端不分离的项目中,若需要在AJAX使用csrftoken的值则可在js脚本中通过document.cookie直接获取cookie的值(也可以通过其他更快捷的轮子如js-cookie)。

在前后端分离的项目中(已配置django-cors-headers),无法直接使用js从cookie中获取csrfToken的值(浏览器的同源策略),即使已经成功设置了csrfToken的cookie值

django 取消csrf限制的实例

解决方法

在中间件中引入

corsheaders.middleware.CorsPostCsrfMiddleware

'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'corsheaders.middleware.CorsPostCsrfMiddleware',

有些博客中使用该中间件替代django.middleware.csrf.CsrfViewMiddleware是不可行的,因为该中间件并没有期望中csrf校验的功能,下面为该中间件的源代码。

class CorsPostCsrfMiddleware(MiddlewareMixin):

  def _https_referer_replace_reverse(self, request):
    """
    Put the HTTP_REFERER back to its original value and delete the
    temporary storage
    """
    if conf.CORS_REPLACE_HTTPS_REFERER and 'ORIGINAL_HTTP_REFERER' in request.META:
      http_referer = request.META['ORIGINAL_HTTP_REFERER']
      request.META['HTTP_REFERER'] = http_referer
      del request.META['ORIGINAL_HTTP_REFERER']

  def process_request(self, request):
    self._https_referer_replace_reverse(request)
    return None

  def process_view(self, request, callback, callback_args, callback_kwargs):
    self._https_referer_replace_reverse(request)
    return None

以上这篇django 取消csrf限制的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中操作字典之clear()方法的使用
May 21 Python
python 性能提升的几种方法
Jul 15 Python
浅谈python正则的常用方法 覆盖范围70%以上
Mar 14 Python
python与caffe改变通道顺序的方法
Aug 04 Python
对pandas处理json数据的方法详解
Feb 08 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
python实现列表的排序方法分享
Jul 01 Python
Python处理session的方法整理
Aug 29 Python
python实现横向拼接图片
Mar 23 Python
使用npy转image图像并保存的实例
Jul 01 Python
call在Python中改进数列的实例讲解
Dec 09 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 Python
django-csrf使用和禁用方式
Mar 13 #Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
Mar 13 #Python
python爬虫实现获取下一页代码
Mar 13 #Python
Python3 利用face_recognition实现人脸识别的方法
Mar 13 #Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 #Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
Mar 13 #Python
详解用Python进行时间序列预测的7种方法
Mar 13 #Python
You might like
Yii2中cookie用法示例分析
2016/07/18 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
javascript脚本编程解决考试分数统计问题
2008/10/18 Javascript
WordPress JQuery处理沙发头像
2009/06/22 Javascript
深入认识javascript中的eval函数
2009/11/02 Javascript
封装的原生javascript弹出层代码
2010/09/24 Javascript
基于Jquery的动态添加控件并取值的实现代码
2010/09/24 Javascript
jquery获取table中的某行全部td的内容方法
2013/03/08 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
2017/10/09 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
2018/02/08 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
django创建简单的页面响应实例教程
2019/09/06 Python
python输出国际象棋棋盘的实例分享
2020/11/26 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
高中毕业自我鉴定范文
2013/10/02 职场文书
个人查摆剖析材料
2014/02/04 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
团队激励口号
2014/06/06 职场文书
教师个人事迹材料
2014/12/17 职场文书
营销计划书范文
2015/01/17 职场文书