Flask 如何从会话 cookie 中取回值?
how does flask get the value back from session cookies?
我正在查看通过 flask 中的会话对象设置的 cookie,它只是一个哈希(或者它看起来只是一个哈希)。我为cookie设置的值无处可寻,但flask可以取回该值。
我认为你必须将值与哈希一起存储在 cookie 中(然后在你的应用程序中有一个秘密与哈希值混合),否则我不知道你如何得到你的价值回归。
我想也许他们会散列秘密和值,然后对其进行编码以进行额外的混淆或类似的东西。
cookie 值包含压缩和序列化数据。
Flask 对存储在 cookie 中的数据执行此操作:
- Python 数据使用(自定义形式)JSON.
进行序列化
- 序列化经过加密签名以确保完整性
- 签名加上序列化是压缩的(除非压缩后的数据比未压缩的版本大)和base64编码。
读取 cookie Flask 只需:
- 解压缩数据
- 重新计算签名并根据包含的签名对其进行验证
- 将序列化数据加载回 Python 个对象。
大部分由 itsdangerous
. The JSON encoding and decoding is handled by the Flask session
module 处理。
直到最近,pickle
才用于序列化,但如果服务器端机密被盗,则存在安全风险。参见 Better Client-side sessions。
我正在查看通过 flask 中的会话对象设置的 cookie,它只是一个哈希(或者它看起来只是一个哈希)。我为cookie设置的值无处可寻,但flask可以取回该值。
我认为你必须将值与哈希一起存储在 cookie 中(然后在你的应用程序中有一个秘密与哈希值混合),否则我不知道你如何得到你的价值回归。
我想也许他们会散列秘密和值,然后对其进行编码以进行额外的混淆或类似的东西。
cookie 值包含压缩和序列化数据。
Flask 对存储在 cookie 中的数据执行此操作:
- Python 数据使用(自定义形式)JSON. 进行序列化
- 序列化经过加密签名以确保完整性
- 签名加上序列化是压缩的(除非压缩后的数据比未压缩的版本大)和base64编码。
读取 cookie Flask 只需:
- 解压缩数据
- 重新计算签名并根据包含的签名对其进行验证
- 将序列化数据加载回 Python 个对象。
大部分由 itsdangerous
. The JSON encoding and decoding is handled by the Flask session
module 处理。
直到最近,pickle
才用于序列化,但如果服务器端机密被盗,则存在安全风险。参见 Better Client-side sessions。