CSRF跨站请求伪造
解决方法
- 在cookie 中设置csrf_token字段值为加密token,表单中放入隐藏的表单标签,name=“csrf_token”,value=加密token
- 因为浏览器为同源政策,所以三方平台不能读取到cookie中的数据,所以后端只要验证cookie中的token和表单中隐藏标签的value进行比对就能说明表单是否造假
实现:
# 可以实现自动验证token和cookie
pip install flask-wtf
from flask_wtf import CSRFProtect
CSRFProtect(app)
当然这个扩展也可以生产token,但是现在为前后端分离,所以不由后端生成token了,由前端自己生成
- 1.用此扩展,表单中的标签必须为csrf_token这个名字
- 2.token的生成也可以通过接口来请求后端生成,然后后端将token存入cookie中然后前端根据得到的token渲染在表单页面中