文档章节

flask-wtf扩展中FormField报错:'csrf_token': ['CSRF token missing']

tinyhare
 tinyhare
发布于 2016/09/27 12:19
字数 143
阅读 213
收藏 0

在使用flask_wtf时使用的这个结构FieldList(FormField(SomeForm)) 报错:

'csrf_token': ['CSRF token missing']

因为FormField也是form,flask_wtf中引入的Form默认开启了csrf验证(flask_wtf.Form是 wtforms.ext.csrf.form.SecureForm的子类), 所以如下定义会报错:

from flask_wtf import Form
class SomeForm(Form): 
    pass

解决:

from wtforms import Form as BaseForm
class SomeForm(BaseForm): 
    pass

或(不太优美,不太推荐):

from flask_wtf import Form
class SomeForm(Form):
    def __init__(self, *args, **kwargs):
        kwargs['csrf_enabled'] = False
        Form.__init__(self, *args, **kwargs)
    
    pass

参考:

https://www.reddit.com/r/flask/comments/2s47nz/af_how_to_get_formfield_and_fieldlist_working/

http://stackoverflow.com/questions/15649027/wtforms-csrf-flask-fieldlist/15651474#15651474

© 著作权归作者所有

共有 人打赏支持
tinyhare
粉丝 8
博文 19
码字总数 18515
作品 0
东城
运维
私信 提问
最牛「CSRF防护」,带你进入大虾们的圈子!

简单理解 CSRF 什么是 CSRF? CSRF,通常称为跨站请求伪造,英文名 Cross-site request forgery 缩写 CSRF,是一种对网站的恶意攻击。一个跨站请求伪造攻击迫使登录用户的浏览器将伪造的HTT...

OneAPM蓝海讯通
2016/01/18
36
0
Flask模拟实现CSRF攻击

CSRF 全拼为,译为跨站请求伪造。 指攻击者盗用了你的身份,以你的名义发送恶意请求。 包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账...... 造成的问题:个人...

汪凡
2018/07/13
0
0
Flask入门 表单Flask-wtf form原生与Bootstrap渲染(七)

(1) 原生的表单 模板页面,form表单 在manage.py中 在manage.py中将路由函数合并 (2) Flask-wtf表单 说明 : 是一个用于表单处理,校验并提供csrf验证的功能的扩展库 安装 : 作用: Flask-wtf能保...

善良小郎君
2018/06/02
0
0
如何用CSRF tokens避免CSRF攻击

     CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。攻击者可以使认证用户提交...

嘶吼RoarTalk
2018/08/19
0
0
Flask-WTF 之防止CSRF***学习记录

CSRF 保护 这部分文档介绍了 CSRF 保护。 为什么需要 CSRF? Flask-WTF 表单保护你免受 CSRF 威胁,你不需要有任何担心。尽管如此,如果你有不包含表单的视图,那么它们仍需要保护。 例如,由...

MK先生
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java单例模式学习记录

在项目开发中经常能遇见的设计模式就是单例模式了,而实现的方式最常见的有两种:饿汉和饱汉(懒汉)。由于日常接触较多而研究的不够深入,导致面试的时候被询问到后有点没底,这里记录一下学习...

JerryLin123
昨天
2
0
VSCODE 无法调试

VSCODE 无法调试 可以运行 可能的原因: GCC 的参数忘了加 -g

shzwork
昨天
3
0
理解去中心化 稳定币 DAI

随着摩根大通推出JPM Coin 稳定币,可以预见稳定币将成为区块链落地的一大助推器。 坦白来讲,对于一个程序员的我来讲(不懂一点专业经济和金融),理解DAI的机制,真的有一点复杂。耐心看完...

Tiny熊
昨天
4
0
5.线程实现

用于线程实现的Python模块 Python线程有时称为轻量级进程,因为线程比进程占用的内存少得多。 线程允许一次执行多个任务。 在Python中,以下两个模块在一个程序中实现线程 - _thread 模块 th...

Eappo_Geng
昨天
4
0
ServiceLoader

创建一个接口文件在resources资源目录下创建META-INF/services文件夹在services文件夹中创建文件,以接口全名命名创建接口实现类 内容me.zzp.ar.d.PostgreSQLDialectme.zzp.ar.d.Hype...

Cobbage
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部