Python基础教程连载地址:大家点击阅读原文链接也可学习哈。
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg3MjU2NzkyMA==&action=getalbum&album_id=1776320890310295553#wechat_redirect
web表单是允许用户和web应用交互的基本元素,FLask自己是不会处理表单的,
但是Flask-WTF扩展允许用户在flask应用中使用著名的WTForms包
这个包使得定义表单和处理表单变得简单
首先我们使用如下命令进行安装
pip install flask-wtf
安装成功显示如下:
CSRF的保护和验证
CSRF跨站请求伪造,源于WEB的隐式身份验证机制
WEB的身份验证机制虽然可以抱着一个请求时来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的。
例如,用户登录受信任的网址A,在本地生成了Cookie,在Cookie没有失效的情况下去访问了危险网站B
B可能会盗用你的身份,以你的名义去发送恶意请求,邮件,盗取你的账号,设置购买商品,造成你个人隐私泄露,已经财产安全。
更多信息可以参考官文文档:
http://www.pythondoc.com/flask-wtf/csrf.html
实际上,WTForms在渲染没一个表单都会生成一个独一无二的token
这个token将在POST请求的时候随着表单一起提交进行验证
默认情况下Flask-WTF能保护所有表单免受跨域请求伪造的攻击,恶意网站把请求发送到被攻击者已经登陆的网站就会引发CSRF攻击
为了实现CSRF保护,Flask-WTF需要程序设置加密令牌,再用加密令牌来验证表单数据的真伪。
app = Flask(__name__)
app.config['SECRET_KEY'] = 'abcd123'
app.config字典可以存储框架、扩展和程序本身的配置变量。使用标准的字典语法把配置值添加到app.config对象中
SECRET_KEY配置变量是通用密钥,可在Flask和多个扩展中使用
表单类