flask-wtf 集成

原理通过将token数据储存在session中,再取出与传递过来的token数据进行匹配(两者并不完全匹配,需要转换)

GET|HEAD|OPTIONS|TRACE 这些请求方法是不需要csrf的

示例

from flask_wtf import CSRFProtect

app = Flask(__name__)
app.config.from_object(config)
db.init_app(app)

CSRFProtect(app)  # 这样就可以了


#  csrf_token = session.get('csrf_token') token是可以通过session取出


# html中需要手动添加
# <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">

 

Ajax

可以直接设置在ajax的body中,或者放在请求头中也可以头名称为:X-CSRFToken或X-CSRF-Token