1.CSRF介绍

跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
这里推荐一篇文章,个人感觉写的不错:Python中csrf攻击与防御

2.解决csrf的问题/csrf豁免

csrf豁免有三种方式,如下:
创建子路由:

url(r'^testCsrf/',views.testCsrf),

生成视图函数:

def testCsrf(request):return HttpResponse('testCsrf')

使用postman,进行操作

(1)注释中间件
在settings中找到MIDDLEWARE,注释掉:‘django.middleware.csrf.CsrfViewMiddleware’,即可成功

注意:如果注释,所有的csrf都避过了post请求

(2)在方法上添加 @csrf_exempt

@csrf_exempt
def testCsrf(request):return HttpResponse('testCsrf')

运行结果:

(3)在表单中添加{%csrf_token%}

def testCsrf(request):if request.method == 'GET':return render(request,'testCsrf.html')elif request.method == 'POST':return HttpResponse('testCsrf')

创建testCsrf.html模板:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><form action="/sess/testCsrf/" method="post">{% csrf_token %}<button>提交</button></form>
</body>
</html>

运行结果:
点击前:

点击后:

实现机制:
  页面中存在{% csrf_token %}时
  在渲染的时候,会向Response中添加 csrftoken的Cookie
  在提交的时候,会被添加到请求体中, 会被验证有效性

Django的csrf豁免:解决CSRF验证失败,请求被中断问题相关推荐

  1. Django CSRF验证失败. 请求被中断.

    项目场景: Python版本:3.7 Django版本:3.1.7 问题描述: 出现了CSRF验证失败. 请求被中断. 原因分析:   在Django中有个设定,防止跨域来请求.比如有爬虫,爬虫不是从 ...

  2. python_django(禁止访问 (403) CSRF验证失败. 请求被中断)

    禁止访问 403 错误 原因 解决方法: 错误 Forbidden (403) CSRF verification failed. Request aborted.禁止访问 (403) CSRF验证失 ...

  3. CSRF验证失败. 请求被中断.

    CSRF验证失败. 请求被中断. 当出现这个bug的时候 一般情况下是使用<form>并用post传递的原因 只需要在<form>标签下一行加上{% csrf_token %} ...

  4. python_django_禁止访问 _CSRF验证失败. 请求被中断_更多信息请设置选项DEBUG=True。

    问题描述: 访问一个url时,回有一个注册页面的响应,输入对应的信息后,单击注册按钮进行提交进行页面跳转,显示禁止访问 _CSRF验证失败. 请求被中断_更多信息请设置选项DEBUG=True. 解决 ...

  5. 访问django后台,提示CSRF验证失败. 请求被中断.Referer checking failed - **** does not match any trust

    1.非debug模式看到的报错 2.settings打开debug模式,才能把报错信息看的详细 3.去settings.py中,找到CsrfViewMiddleware 中间件,点击进入 4.搜索匹配 ...

  6. 禁止访问 (403)CSRF验证失败. 请求被中断.

    出现这个问题是因为django在收到表单提交过来的信息时,会检查提交过来的信息中是否有token,并会对token进行校验,如果校验通过,那就继续执行,反之就会认定这次的数据有伪造的风险. 解决方案: ...

  7. 禁止访问 (403) CSRF验证失败. 请求被中断.————错误处理(测试接口时遇到的问题)

    问题描述 解决措施 在Header参数中添加Content-Type和X-CSRFToken信息,这样就不会报错了. 运行结果

  8. CSRF验证失败请求中止在Django上

    如何解决CSRF验证失败请求中止在Django上? 你需要将{% csrf_token %}模板标记添加为formDjango模板中元素的子代. 这样,模板将呈现一个隐藏元素,其值设置为CSRF令牌. ...

  9. Django项目出现: 禁止访问(403),CSRF验证失败,相应中断

    CSRF验证失败,相应中断  错误信息为: 查看错误信息,不难发现,我们在上面问题中有一个{% csrf_token %},这是一个网络漏洞,在所有表单提交中,都需要添加并且必须放在format的后面 ...

  10. 禁止(403)CSRF验证失败请求中止即使使用{%csrf_token%}

    如何解决禁止(403)CSRF验证失败请求中止即使使用{%csrf_token%}? 要使csrf保护起作用,需要做一些事情(请查看docs): 你的浏览器必须接受服务器中的Cookie 确保已将' ...

最新文章

  1. 3D目标检测深度学习方法之voxel-represetnation内容综述(二)
  2. 查看python安装的包
  3. 关于输入输出流的心得
  4. 上传代码到gitee操作
  5. 远程桌面连接数超过最大限制解决方法
  6. 开源项目Hopsan代码梳理、流程分析
  7. 飞鸽传书CSDN的搜索结果
  8. 2019 编程语言终极排行榜:Java 稳坐榜首!
  9. 多级队列调度算法可视化界面_进程调度功能由操作系统内核的进程调度程序完成...
  10. worldwind java 教程_科学网—用worldwind java SDK开发应用程序 - 谢安涛的博文
  11. 关闭计算机主机还亮着,Win10系统电脑关机后主机电源灯依然亮着的解决方法
  12. WIN10彻底禁用UAC(用户账户控制)
  13. OA流程 工作流设计
  14. 经典贪吃蛇大战逆向_游戏内购
  15. 奇点云数据中台技术汇(九)| 如何建设数据安全体系?
  16. 无需更改注册表 实现CHM文件从共享文件中直接打开
  17. h5案例分享:王中军个人画展:藝術東西,玄如藝術
  18. 【web前端基础 | H5】HTML简介
  19. python通过指定网卡发包_Python选择网卡发包及接收数据包
  20. HTTP协议Response

热门文章

  1. 微信8.0安卓内测版来了!!!
  2. pyinstall加密打包
  3. Python aiohttp异步请求
  4. 手机170号段银行不识别 运营商称正努力解决
  5. 心识宇宙实习面经(一面二面三面)(寄)
  6. 教你如何用iPhone远程控制电脑
  7. 未来计算机代替设计师,计算机技术真的能代替室内设计师进行设计吗?
  8. 【巴比伦周报】2019第13周
  9. 华为机试真题 C++ 实现【猴子爬山】
  10. ChatGPT三个关键技术