1

从最近对我们的 Plone 4.01 实例的审计中:

  1. 尽可能加密存储在会话 cookie 中的用户名,或使用一次性会话 ID 来识别用户(在服务器端)而不是用户名。

    • 用户名使用 base64 编码存储在应用程序会话 cookie 中,可以轻松解码。
  2. 用户注销时立即使会话 ID 无效。

    • 注销 PLONE 应用程序时,应用程序会删除 cookie,但不会使用户会话 ID 无效。还注意到第二次使用应用程序进行身份验证不会使之前的会话 cookie 无效。

如果可能,我们不希望向堆栈中添加其他产品来解决这些发现。

顺便说一句,我们确实安装了 Beaker,它被用作网站电子商务区域的一部分的公共帐户,而内容管理员/作者正在使用标准的 Plone 登录/安全机制,这就是得出审计结果的原因......也许烧杯也可以为内容作者重用?虽然不确定这是否是个好主意......

顺便说一句,我们也很快更新到 Plone 4.2。

4

1 回答 1

2

如果您关心 cookie 的安全性,则应始终使用 SSL 加密。例如,相同的用户名包含在页面输出中,因此它也包含在 cookie 中这一事实本身并不是信息泄漏。

cookie 使用具有有限时间跨度的加密哈希,默认为 12 小时,之后将不再接受 cookie。

您可以降低此超时:

  1. 转到您的克隆实例的 ZMI

  2. 找到acl_users文件夹,然后找到session插件:

    ZMI 中的会话插件

  3. 转到Properties选项卡(最右侧的选项卡)

  4. 将“Cookie 有效期超时(以秒为单位)”属性更改为新值。

请注意它下面的“刷新间隔(以秒为单位,-1 禁用刷新)”值;每当签名的 cookie 超过刷新间隔时,就会生成一个新的 cookie,以刷新 cookie 的生命周期。因此,默认情况下,每小时都会向您发出一个有效期为 12 小时的新 cookie。

您不希望 cookie 有效期超时低于刷新间隔。如果您将这些值设置得非常低,您可能需要考虑使用周期性的 AJAX 'ping' 请求以在用户仍在使用站点时保持 cookie 的最新状态。

事实上,它plone.session已经包含一个为您实现此 ping 的工具。只需通过在控制面板中安装“会话刷新支持”附加组件来启用它(“站点设置”>“附加组件” 附加组件图标>选中“会话刷新支持 3.5”,单击“激活”)。这将为您安装 javascript 库,并且它将每 5 分钟 ping 服务器一次,前提是在加载当前页面时有一些鼠标或键盘活动。

于 2012-09-07T11:01:46.790 回答