我還沒有找到任何關于燒瓶如何在服務器端清理它的會話的明確資訊。我讀過“默認情況下,只要您的瀏覽器打開,會話就會持續”,但據我所知,這只是意味著瀏覽器在關閉時會洗掉 cookie。如果我理解正確,這意味著服務器仍然在其快取中維護會話。在燒瓶中,我可以通過使會話永久化并設定 Permanent_session_lifetime 變數來設定超時,但是如果我不這樣做會發生什么?我很難相信會話會永遠存在,但這里的會話檔案沒有描述默認行為。
uj5u.com熱心網友回復:
所以我想我明白了這一點,我對 Flask 默認 cookie 的作業方式有誤解。通過查看 Flask 的代碼,我沒有看到任何型別的服務器端快取 cookie。經過多讀一點后,似乎默認的 Flask cookie 完全是客戶端。Flask 使用的 SecureCookieSessionInterface 對所有資訊進行編碼和簽名,并將其發送到瀏覽器進行存盤。這意味著一旦瀏覽器洗掉它,它就永遠消失了。永久屬性和永久會話生命周期不管理任何型別的服務器端快取;他們只是確定回應是否會告訴瀏覽器保留 cookie,如果是,應該保留多長時間。這使得默認的燒瓶 cookie 遠沒有我想象的那么安全。對于服務器端會話 cookie,看起來我可以使用燒瓶會話
Flask cookie 實作的另一個有趣的方面似乎是 Permanent_cookie_lifetime 仍然用于使 cookie 過期,即使它沒有設定為永久。cookie 使用隨其發送的到期日期進行簽名,默認為 31 天。如果您打開標簽/瀏覽器超過 31 天,cookie 仍將過期。我對最后一點只有大約 80% 的把握,所以如果有人知道更好,請隨時糾正我。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/520057.html
