
使用flask提示The CSRF token is missing
发布日期:2021-05-14 01:21:51
浏览次数:17
分类:精选文章
本文共 637 字,大约阅读时间需要 2 分钟。
在Flask编写的Web程序中,若在提交表单时出现以下错误(通常类似截图所示),可能是由于CSRF保护机制未正确配置导致。
现象
尝试提交表单时,可能会看到如下的错误提示:
![此处应放置示例截图]
原因
沟通过Flask-WTF模块的默认设置,所有视图都会启用CSRF保护。如果模板中包含表单,但没有正确添加CSRF令牌,系统将判定请求为跨站请求伪造攻击,阻止数据提交。
解决办法
方法1:在模板中添加CSRF令牌
在使用表单的模板中,局部放置以下标记:
{{ csrf_token() }}
这样可以为每个表单生成独特的CSRF令牌,确保数据提交安全性。
方法2:通过exempt装饰器分配保护
对于不需CSRF保护的路由或函数,可以使用csrf.exempt
装饰器:
from flask_wtf.csrf import CSRFProtect protect = CSRFProtect() @protect.exempt def my_function(): pass
仅适用于不处理敏感操作的非表单视图。
方法3:禁用默认CSRF保护
设置WTF_CSRF_CHECK_DEFAULT
为False
,即:
WTF_CSRF_CHECK_DEFAULT = False
此方法会影响所有表单,适用于已全面控制CSRF的应用程序。
注意事项
- 确保所有修改在正确位置进行,避免因配置错误导致CSRF验证失效。
- 在开发初期,尽量开启CSRF保护以保障安全。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月09日 14时11分15秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Windows2016 FTP用户隔离
2019-03-09
吴恩达机器学习课程笔记(英文授课) Lv.1 新手村(回归)
2019-03-09
pair的用法
2019-03-09
SQL基本操作命令
2019-03-09
C# WinForm程序退出的方法
2019-03-09
Flex 布局的自适应子项内容过长导致其被撑大问题
2019-03-09
PL/SQL 动态Sql拼接where条件
2019-03-09
Lua-table 一种更少访问的安全取值方式
2019-03-09
虚函数
2019-03-09
斐波那契数列两种算法的时间复杂度
2019-03-09
【自学Flutter】4.1 Material Design字体图标的使用(icon)
2019-03-09
【换行符】什么时候用cin.get()吃掉输入流中的换行符
2019-03-09
【二叉树】已知后序与中序求先序
2019-03-09
解决Nginx 404 not found问题
2019-03-09
广东外语外贸大学第三届网络安全大赛Writeup
2019-03-09
VS中 fatal error LNK1123: 转换到 COFF 期间失败 的解决方法
2019-03-09
Course Schedule II
2019-03-10
C#中文转换成拼音
2019-03-10
SpringBoot使用RedisTemplate简单操作Redis的五种数据类型
2019-03-10