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批量修改文件后缀的方法
Jan 26 Python
在Python中处理字符串之isdecimal()方法的使用
May 20 Python
python实现逻辑回归的方法示例
May 02 Python
python和flask中返回JSON数据的方法
Mar 26 Python
python字符串与url编码的转换实例
May 10 Python
解决python中使用plot画图,图不显示的问题
Jul 04 Python
python获取交互式ssh shell的方法
Feb 14 Python
Series和DataFrame使用简单入门
Nov 13 Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 Python
python DataFrame转dict字典过程详解
Dec 26 Python
你可能不知道的Python 技巧小结
Jan 29 Python
Python+pyaudio实现音频控制示例详解
Jul 23 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
模仿OSO的论坛(二)
2006/10/09 PHP
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
php读取xml实例代码
2010/01/28 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
2012/08/21 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
js宝典学习笔记(上)
2007/01/10 Javascript
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
vue 根据数组中某一项的值进行排序的方法
2018/08/30 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
2018/12/03 Javascript
vue2.0自定义指令示例代码详解
2019/04/25 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
学习python之编写简单简单连接数据库并执行查询操作
2016/02/27 Python
python实现读Excel写入.txt的方法
2018/04/29 Python
python实现简单颜色识别程序
2020/02/19 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
2021/02/04 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
英国领先的品牌珠宝和配件供应商:Acotis Jewellery
2018/03/07 全球购物
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
小学生寒假家长评语
2014/04/16 职场文书
关于热爱祖国的演讲稿
2014/05/04 职场文书
个人授权委托书
2014/09/15 职场文书
街道党工委党的群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书