在登錄注冊發起的 POST 請求時可以進行 csrf_token 校驗,
根據 csrf_token 校驗原理:
后端生成 csrf_token 的值,在前端請求登錄或者注冊界面的時候將值傳給前端,傳給前端的方式可能有以下兩種:
- 在模板中的 From 表單中添加隱藏字段
- 將 csrf_token 使用 cookie 的方式傳給前端
而在 Flask 中,CSRFProtect 這個類專門只對指定 app 進行 csrf_token 校驗操作,所以開發者需要做以下幾件事情:
- 生成 csrf_token 的值
- 將 csrf_token 的值傳給前端瀏覽器
- 在前端請求時帶上 csrf_token 值
# 導入生成 csrf_token 值的函數 from flask_wtf.csrf import generate_csrf
@app.after_request def after_request(response): # 調用函數生成 csrf_token csrf_token = generate_csrf() # 通過 cookie 將值傳給前端 response.set_cookie("csrf_token", csrf_token) return response
在前端請求時帶上 csrf_token 值 headers: { "X-CSRFToken": getCookie("csrf_token") },
