使用flask wtf 的 csrf時的bug問題

2021-09-12 07:12:15 字數 585 閱讀 9976

之前接收乙個老專案,版本迭代的時候,發現了乙個問題,使用者在登出的時候,再次登入時,報400錯誤,

the csrf session token is migging.
查了查**,才發現問題。

這個flask專案是用flask_wtf的csrf 建立的csrf_token的時候,

#建立乙個csrf_token值

csrf_token=csrf.generate_csrf()

自動會在session中存放乙個值,專案的session存放在redis中,則redis中存在該值。

在cookie中,前開發工程師也把csrf_token存放了乙份在cookie中,

# 設定cookie值

resp.set_cookie("csrf_token", csrf_token)

csrf_token=session.get('csrf_token')

session.clear()

session['csrf_token']=csrf_token

Flask WTF中的csrf保護

這部分文件介紹了 csrf 保護。例如,由 ajax 傳送的 post 請求,然而它背後並沒有表單。在 flask wtf 0.9.0 以前的版本你無法獲得 csrf 令牌。這是為什麼我們要實現 csrf。為了能夠讓所有的檢視函式受到 csrf 保護,你需要開啟csrfprotect模組 from ...

初窺CSRF攻擊方式以及Flask WTF

csrf cross site request forgery 中文名稱 跨站請求偽造,也被稱為 one click attack session riding,縮寫為 csrf xsrf。從上圖可以看出,要完成一次csrf攻擊,受害者必須依次完成兩個步驟 登入受信任 a,並在本地生成cookie。...

使用Flask WTF來處理表單

在flask中,為了處理web表單,一般使用flask wtf擴充套件,它封裝了wtfforms,並且有驗證表單資料的功能。可以使用flash訊息閃回把訊息傳給模板 from flask import flask,render template,request,flash cwtnice 目的,實現...