最近对Plone 4.01实例的审核:
尽可能加密存储在会话cookie中的用户名,或者使用一次性会话ID来识别用户(在服务器端)而不是用户名。
用户退出时立即使会话ID失效。
如果可能的话,我们不希望在堆栈中添加其他产品来解决这些问题。
顺便说一下,我们确实安装了Beaker,这被用作公共帐户,作为网站电子商务领域的一部分,而内容管理员/作者正在使用标准的Plone登录/安全机制,这正在吸引审计结果...也许Beaker可以重复用于内容作者?不确定这是不是一个好主意......
顺便说一句,我们也很快就会更新到Plone 4.2。
答案 0 :(得分:2)
如果您担心cookie安全性,则应始终使用SSL加密。例如,页面输出中包含相同的用户名,因此它包含在cookie中的事实也不是信息泄露。
Cookie使用具有有限时间跨度的加密哈希值,默认值为12小时,之后将不再接受cookie。
您可以降低此超时时间:
转到您的plone实例的ZMI
找到acl_users
文件夹,然后找到session
插件:
转到Properties
标签(最右边的标签)
将“Cookie有效期超时(以秒为单位)”属性更改为新值。
注意它下面的“刷新间隔(以秒为单位,-1表示禁用刷新)”值;只要签名的cookie早于刷新间隔,就会生成一个新的cookie,以刷新cookie的生命周期。因此,默认情况下,每小时一次,您将获得一个有效期为12小时的新cookie。
您不希望Cookie有效期超时低于刷新间隔。如果您将这些值设置得非常低,您可能需要考虑使用定期的AJAX“ping”请求,以便在用户仍在使用该网站时保持cookie新鲜。
事实上,plone.session
已经包含为您实施此ping的工具。只需在控制面板中安装“会话刷新支持”插件即可启用它(“网站设置”>“附加组件”>选中“会话刷新支持3.5”,点击“激活”) 。这将为您安装javascript库,它将每5分钟ping一次服务器,前提是当前页面已加载时有一些鼠标或键盘活动。