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中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 Python
python smtplib模块发送SSL/TLS安全邮件实例
Apr 08 Python
图文详解WinPE下安装Python
May 17 Python
python实现音乐下载的统计
Jun 20 Python
Python制作动态字符图的实例
Jan 27 Python
使用WingPro 7 设置Python路径的方法
Jul 24 Python
Django url,从一个页面调到另个页面的方法
Aug 21 Python
Python高级编程之继承问题详解(super与mro)
Nov 19 Python
Python多线程threading join和守护线程setDeamon原理详解
Mar 18 Python
python 常见的排序算法实现汇总
Aug 21 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
May 26 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
PHP 数据库树的遍历方法
2009/02/06 PHP
PHP新手NOTICE错误常见解决方法
2011/12/07 PHP
php数组去重的函数代码
2013/02/03 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
angular2使用简单介绍
2016/03/01 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
Python实现excel转sqlite的方法
2017/07/17 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
python的pip安装以及使用教程
2018/09/18 Python
Python 访问限制 private public的详细介绍
2018/10/16 Python
Python 写了个新型冠状病毒疫情传播模拟程序
2020/02/14 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
python是怎么被发明的
2020/06/15 Python
pytorch实现查看当前学习率
2020/06/24 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
python 爬虫请求模块requests详解
2020/12/04 Python
微信小程序canvas实现水平、垂直居中效果
2020/02/05 HTML / CSS
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
致裁判员加油稿
2014/02/08 职场文书
销售职业生涯规划范文
2014/03/14 职场文书
小学三年级学生评语
2014/04/22 职场文书
工会主席事迹材料
2014/06/03 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书