flask如何从会话cookie中获取值?

时间:2015-07-10 12:56:23

标签: python cookies hash flask

我正在查看通过烧瓶中的会话对象设置的cookie,它只是一个哈希(或者看起来它只是一个哈希)。我为cookie设置的值无处可寻,但烧瓶可以恢复价值。

我认为你必须将值与哈希值一起存储在cookie中(然后在你的应用程序中有一个SECRET与哈希值混合),否则我不知道你如何得到你的价值

我想也许他们会对秘密和值进行哈希处理,然后对其进行编码以进行额外的混淆或类似的事情。

1 个答案:

答案 0 :(得分:2)

Cookie值包含压缩和序列化数据

Flask对存储在cookie中的数据执行此操作:

  • 使用(自定义形式的)JSON序列化Python数据。
  • 序列化经过加密签名以确保完整性
  • 签名加序列化被压缩(除非压缩数据大于比未压缩版本)和base64编码。

在阅读Cookie时,Flask只需要:

  • 解压缩数据
  • 重新计算签名并根据附带的签名
  • 对其进行验证
  • 将序列化数据加载回Python对象。

大部分内容由itsdangerous处理。 JSON编码和解码由Flask session module处理。

直到最近,pickle被用来进行序列化,但如果服务器端的秘密被盗,则存在安全风险。请参阅Better Client-side sessions