2015-07-10 46 views
1

我正在通過燒瓶中的會話對象查看cookie集,它只是一個散列(或者它看起來像只是一個散列)。我爲cookie設置的值無處可查,但燒瓶可能會返回值。燒瓶如何從會話cookie中獲取價值?

我以爲你必須將值存儲在cookie旁邊的散列(然後在你的應用程序中有一個SECRET與散列的值混合),否則我不知道你如何得到你的價值背部。

我想也許他們哈哈的祕密和價值,然後編碼它額外的混淆或沿着這些線。

回答

2

該cookie值包含壓縮和序列化數據

燒瓶這樣做是爲了存儲在cookie中的數據:

  • Python數據是使用JSON(的定製形式)序列化。
  • 序列化的加密簽名以確保完整性
  • 簽名加系列化被壓縮(除非壓縮數據將比未壓縮的版本)和base64編碼。

在讀取cookie的瓶只需:

  • 解壓縮數據
  • 重新計算簽名和驗證其對包括簽名
  • 裝入串行數據傳回Python對象。

大部分情況由itsdangerous負責。 JSON編碼和解碼由Flask session module處理。

直到最近,pickle被用來進行序列化,但是如果服務器端的密鑰被盜,那麼它就存在安全風險。請參閱Better Client-side sessions