【发布时间】:2014-01-13 13:10:49
【问题描述】:
据我所知,不可能使特定(或多个,例如,基于用户名的)Domino HTTP 会话 (darn IMAP) 无效或删除。 是否有/什么是适当的解决方法/机制以某种方式丢弃/使 Domino HTTP 会话无效?
一些示例可能是:
- 同一用户,两个会话,其中一个用户更改了 HTTP 密码(此时所有其他会话应立即失效)。如果他/她继续在另一个(浏览器)会话中工作/浏览(在某些时候),您会在控制台上收到“使用 Internet 密码进行身份验证失败”消息,如果您运气不好,用户会被锁定。
- Facebook 风格;概览您当前的活动会话。更进一步,如果他们看到基于 IP/位置的可疑会话,让他们控制使其无效。
- 客户端调用; “我感觉我的会话被劫持了”.. 第一反应; “你是个聪明的用户,不是吗?”。随后,您想要删除具有该用户名的那些会话(通过控制台或“管理员”Web 界面)。
- ...
【问题讨论】:
-
您尝试了哪些方法,哪些方法不适合您?对于 XPage,您可以使用自定义 PhaseListener(参见 devgrok.blogspot.cz/2009/07/… 或 jsftutorials.net/faces-config/phaseTracker.html)作为示例。您还需要参考docs.oracle.com/javaee/1.4/tutorial/doc/JSFIntro10.html,这样您就可以准确地知道何时进行检查。
-
感谢您的评论。我们确实可以将用户名和初始化的 SessionID 存储在范围映射中,并在适当的阶段针对该映射进行验证。但关键是会话仍将存在于服务器上。以案例 3 为例;只需要服务器上的活动(初始化)会话和创建的 DomAuthSessId cookie 来劫持会话。所以在那种情况下,(虽然一厢情愿)需要做的是; HttpSession.Destroy("user/sessionID's") 或类似的东西;告诉 http drop session
-
虽然您的场景非常真实,但我实际上并不认为这是重大风险,假设您已经将所有安全建议应用到您的服务器。您可以随时跟踪用户的 IP 到他的 cookie。您始终可以禁用对服务器上所有数据库的 Web 访问,但您需要向 Web 用户公开的数据库除外。您无需公开 Domino 目录即可执行用户身份验证。您必须始终使用 SSL,这样才能防止 MITM 攻击。
标签: http session xpages lotus-domino