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解析模块(ConfigParser)使用方法
Dec 10 Python
浅谈Python中用datetime包进行对时间的一些操作
Jun 23 Python
python3 遍历删除特定后缀名文件的方法
Apr 23 Python
Python2.7 实现引入自己写的类方法
Apr 29 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
Python文件常见操作实例分析【读写、遍历】
Dec 10 Python
python TF-IDF算法实现文本关键词提取
May 29 Python
记录Python脚本的运行日志的方法
Jun 05 Python
Python中base64与xml取值结合问题
Dec 22 Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 Python
Python实现冒泡排序算法的完整实例
Nov 04 Python
Python趣味爬虫之用Python实现智慧校园一键评教
May 28 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实现图片简单上传
2006/10/09 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
解析php中的escape函数
2013/06/29 PHP
分享PHP header函数使用教程
2013/09/05 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
jquery+json实现动态商品内容展示的方法
2016/01/14 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
jquery 多个radio的click事件实例
2016/12/03 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
2017/08/04 jQuery
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
Python中for循环控制语句用法实例
2015/06/02 Python
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
Python 常用 PEP8 编码规范详解
2017/01/22 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
css3弹性盒子flex实现三栏布局的实现
2020/11/12 HTML / CSS
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
成品仓管员岗位职责
2013/12/11 职场文书
自荐书模板
2013/12/19 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
2015年共青团工作总结
2015/05/15 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书