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