在Pyramid Framework中,默认的Unencrypted Session Factory与手动设置cookie有什么区别?

Phi*_*hil 1 python python-2.7 pyramid

与使用request.response.set_cookie(..)和使用相比,我不明白设置未加密的会话工厂以设置cookie之间的区别request.cookies[key].

Mar*_*ers 6

UnencryptedCookieSessionFactory管理一个 cookie,并可以签署.这意味着客户能够读取1什么是在cookie中,但不能改变在cookie的值.

如果您直接使用cookie response.set_cookie(),客户端不仅可以读取cookie,还可以更改cookie的值,您将无法检测到内容已被篡改.

此外,UnencryptedCookieSessionFactory让你存储任何python结构,它将负责编码这些以适应cookie的限制; 你必须手动完成同样的工作.set_cookie().

1 您必须对cookie进行base64解码,然后使用该pickle模块对内容进行解码.由于cookie是以加密方式签名的,因此pickle可以减轻适用的常见安全问题.