使用CSRF保护与WTForms-Alchemy

时间:2015-11-04 21:48:48

标签: python flask flask-sqlalchemy flask-wtforms

我有一个包含3个表单的Web应用程序。 2继承自于flask_wtf.form.Form,它本身来自WTForms SecureForm。这意味着这些表单具有自动CSRF保护。

第3种形式从模型对象继承其属性,因此继承自wtforms_alchemy.ModelForm,它本身继承自wtforms.Form。

如何将CSRF保护添加到最后一种形式?

2 个答案:

答案 0 :(得分:3)

对我有用的是从flask_wtf包中混合Form。

from flask_wtf import Form

class YourForm(ModelForm, Form):

结果还有一个有效的隐藏CSRF令牌。

答案 1 :(得分:0)

对我来说有用的是在flask_wtf包中配置flask_wtf.csrf。

吡啶

from flask_wtf.csrf import CSRFProtect
....
csrf = CSRFProtect(app)

class UserForm(ModelForm):
    class Meta:
       model = User
....

userform = UserForm()

HTML

<form method="post">
  {{ userform.csrf_token }}
  {{ userform.userform }}
  <input type="submit" name="submit">   
</form>

结果还有一个有效的隐藏CSRF令牌。