默认情况下,Flask-WTF能保护所有的表单免受跨站请求伪造(Cross-Site Request Forgery, CSRF)的攻击。恶意网站把请求发送到被攻击者已经登陆的其他网站时就会引发
CSRF攻击。
Flask-WTF实现CSRF保护:需要程序设置一个密钥,Flask-WTF使用这个密钥生成加密令牌,再用令牌验证请求中表单数据的真伪。
app.config字典可以用来存储框架、扩展和程序本身的配置变量,这个文件还提供了可以从文件或者环境中导入配置值的方法。
SECRET_KEY配置变量是通用变量,可在Flask和第三方扩展中使用,加密的强度取决于变量值的机密程度。不同的程序要使用不同的密钥。
为了增强安全性,密钥不应该直接写入代码,而要保存在环境变量中。
设置密钥方法:hello.py
from flask import Flask app = Flask(__name__) app.config['SECRET_KEY'] = 'hard to guess string'