基于zodb的重载zope会话实现。
dm.zope.session的Python项目详细描述
功能
dm.zope.session 支持以下功能。 相应的配置变量在括号中指定。
< dl >此功能允许限制会话的最大生存期。 出于安全原因,它可能很有趣:应该 攻击者能够劫持会话,他应该 能够在有限的时间内使用。
在zope的会话架构中,会话id由 所谓的浏览器管理器。它在用饼干 在浏览器和服务器之间传递会话ID。 为了有效,必须组合最大会话生存期 会话ID的生存期有限;否则, 攻击者可以使用已知会话ID劫持后续操作 会话。在现代zope版本中,会话id默认为 存储在(浏览器)会话cookie中。在此设置中,攻击者 可以劫持福勒在用户终止其 浏览器会话。
最大会话生存期通过 配置变量 session_max_lifetime_min 。 它指定以分钟为单位的最大生存期。不积极的 值将停用该功能。
会话在不用于about时被删除 会话超时\u分钟 分钟。如果 会话超时\u分钟 如果为非正值,则该功能将被停用。
超时功能未精确实现: 会话可以在指定的 不活动,可能比指定的 超时。这有两个原因:
< Buff行情>- 为了避免zodb膨胀,存储会话访问时间 分辨率有限(通常约为会话超时的1/8)。
- 会话停用通过定期清理执行 过程。在下一次运行此过程之前不会发生任何事情。
非活动超时是 由products.transience实现的会话,因为 它通常将会话存储在(珍贵的)ram中。 dm.zope.会话 会话通常存储在 早期释放资源的重要性要小得多。 但是,如果在会话中存储敏感信息, 出于安全原因,您可能仍要使用此功能: 它迫使潜在的攻击者使被劫持的会话保持活动状态 以便继续利用。
会话最大数量 限制会话对象的数量。 异常 dm.zope.session.maximalSessionNumberExceeded 将在超过限制时提升。不积极的 值将停用该功能。
此选项可用于限制设置的线程 拒绝服务攻击
出于自定义目的,会通知某些事件。他们 接口都在dm.zope.session.interfaces中定义。 所有事件都是带有会话的"对象事件" 或者会话容器作为事件对象。
< dl >