2

来源包含Rack::Session::Cookie以下关于未设置密码以检查 cookie 完整性的警告:

没有为 Rack::Session::Cookie 提供秘密选项。这构成了安全威胁。强烈建议您提供一个秘密,以防止可能来自精心制作的 cookie 的漏洞利用。

使用Rack::Session::Cookie模块时,您可以通过以下方式设置密码:

use Rack::Session::Cookie, secret: 'change_me'

但是,我使用Rack::Session::Pool的是“提供简单的基于 cookie 的会话管理”。我假设我还需要为其提供秘密,但找不到相关示例。源代码/文档也不是很有帮助。有谁知道这是否需要完成,如果需要如何完成?

4

1 回答 1

2

如果您查看这个问题并回答和之间的区别CookiePool它会指出只有“id”(实际上是一个SID)保存在 cookie 中,其他所有内容都保存在内存中。如果数据在内存中,那么生成 HMAC 的要求比将它存储在 cookie 中的要求要低得多,如果你真的需要它,那么我想它已经由你决定了。

我查看了 source,并且Pool不会寻找作为选项传递的秘密,但Cookie会。

我相信通过阅读源代码Pool,它每次都会生成一个唯一的 SID,因此不会暴露您数据中的密钥/ID。

附带说明一下,如果您要选择使用 cookie,请对它们进行加密

于 2013-02-13T03:47:57.603 回答