html 400状态码,http 400 bad request状态码解决

html 400状态码,http 400 bad request状态码解决小伙伴在项目实操的过程中 经常会遇见 400 错误状态码 究竟是哪里出了问题对啦 就是 csrf token 缺失 CSRFCSRF 全拼为 CrossSiteReq 译为跨站请求伪造 CSRF 指攻击者盗用了你的身份 以你的名义发送恶意请求 包括 以你名义发送邮件 发消息 盗取你的账号 甚至于购买商品 虚拟货币转账 造成的问题 个人隐私泄露以及财产安全 防止 CSRF 攻击

小伙伴在项目实操的过程中,经常会遇见400错误状态码,究竟是哪里出了问题

1835b5998da4df660151d4c7f9647ba8.png

对啦,就是csrf_token缺失

CSRF

CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造。

CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求。

包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账……

造成的问题:个人隐私泄露以及财产安全。

ce1459cb369cc2ab9022711c4a44899b.png

防止 CSRF 攻击步骤

在客户端向后端请求界面数据的时候,后端会往响应中的 cookie 中设置 csrf_token 的值

在 Form 表单中添加一个隐藏的的字段,值也是 csrf_token

在用户点击提交的时候,会带上这两个值向后台发起请求

后端接受到请求,以会以下几件事件:

从 cookie中取出 csrf_token

从 表单数据中取出来隐藏的 csrf_token 的值

进行对比

如果比较之后两值一样,那么代表是正常的请求,如果没取到或者比较不一样,代表不是正常的请求,不执行下一步操作

在 Flask 项目中解决 CSRF 攻击

在 Flask 中, Flask-wtf 扩展有一套完善的 csrf 防护体系,对于我们开发者来说,使用起来非常简单

在 FlaskForm 中实现校验

设置应用程序的 secret_key

用于加密生成的 csrf_token 的值

app.secret_key = “#此处可以写随机字符串#”

在模板的表单中添加以下代码

[HTML] 纯文本查看 复制代码

渲染出来的前端页面为:

4709c6f60b9c15c341761e8e1bda2b5f.png

file:///F:/%E5%B9%BF%E5%B7%9E%E5%B0%B1%E4%B8%9A3%E6%9C%9F/%E7%AC%AC%E5%9B%9B%E9%98%B6%E6%AE%B5%EF%BC%88flask%E6%A1%86%E6%9E%B6%EF%BC%89/day02/%E6%95%99%E6%A1%88/assets/flaskwtf_csrftoken.png

设置完毕,cookie 中的 csrf_token 不需要我们关心,会自动帮我们设置

单独使用

设置应用程序的 secret_key

用于加密生成的 csrf_token 的值

app.secret_key = “#此处可以写随机字符串#”

导入 flask_wtf.csrf 中的 CSRFProtect 类,进行初始化,并在初始化的时候关联 app

[Python] 纯文本查看 复制代码

如果模板中有表单,不需要做任何事。与之前一样:

[HTML] 纯文本查看 复制代码

但如果模板中没有表单,你仍需要 CSRF 令牌:

[HTML] 纯文本查看 复制代码

更多技术资讯可关注:gzitcast

原文:https://www.cnblogs.com/heimaguangzhou/p/11717778.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223698.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午1:37
下一篇 2026年3月17日 下午1:37


相关推荐

  • gland激活码【2021.8最新】

    (gland激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~S…

    2022年3月25日
    137
  • 游戏框架概念

    游戏框架概念游戏框架概念 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 游戏中一个系统的搭建很重要 一个模块的创建是否成功 直接影响你后续维护和扩展的成本 要有模块化思想 考虑耦合度 使用方便与否 扩展方便与否 用户体验怎么样 资源模块 nbsp nbsp nbsp nbsp 一个系统首先要有资源 资源分为 UI 和模型 管理资源模块 Facade nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 用于处理资源 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 资源的加载模块 ObjManager nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 创建资源模块 Re

    2026年3月18日
    2
  • 短短数月 两代“矿工”遭遇冰与火的洗礼「建议收藏」

    短短数月 两代“矿工”遭遇冰与火的洗礼「建议收藏」“比特币又跳水了。”  “那还有回暖的机会吗?”  最近这段时间,相信因为数字货币价格集体跳水而感到恐慌的,不止是炒币的投机客,还有大量“矿工”。  在过去一年多时间里,区块链逐渐变为人人热议的亲民话题,“挖矿”也成为很多人热议的火爆职业。甚至有金融界、互联网公司金领不惜放弃高薪,转型成为比特币“矿工”。  在过去的大半年时间里,比特币等数字货币也经历过几次不同程度的震荡。在遭遇价格上的大起大落之…

    2022年5月6日
    38
  • 推荐一个shell语法在线检查网站,也可以学习shell语法

    推荐一个shell语法在线检查网站,也可以学习shell语法https://www.shellcheck.net

    2022年7月13日
    20
  • android音乐播放器ppt,基于Android音乐播放器设计与开发.ppt

    android音乐播放器ppt,基于Android音乐播放器设计与开发.ppt基于Android音乐播放器设计与开发毕业设计基于Android的音乐播放器设计与开发…

    2022年6月26日
    42
  • 点积和叉乘的区别

    点积和叉乘的区别2018 01 17 创建人 Ruo Xiao 邮箱 假设 一 点积 内积 1 A 和 B 的点积公式 其结果是标量 2 几何意义 A 乘以 B 在 A 上的投影 推导过程如下 根据三角形余弦定理 而 C A B 则 所以 二 叉乘 外积 叉积 向量积 假设 1 人为定义的运算 需要

    2026年3月17日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号