【问题标题】:Invalidate / Drop Domino HTTP Session?使 Domino HTTP 会话无效/丢弃?
【发布时间】: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


【解决方案1】:

您必须控制身份验证过程,这可以使用 Notes C API 文档中描述的 DSAPI 接口来完成。我自己只完成了一些非常小的 DSAPI 工作,但我从其他广泛使用它的人那里了解到,使用 DSAPI 进行高级工作绝对不适合胆小的人。您可能想研究一些第三方产品(例如来自 PistolStar),它们至少可以提供您正在寻找的一些功能。

【讨论】:

    猜你喜欢
    • 2019-08-13
    • 2013-04-27
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 2013-04-30
    • 2016-05-07
    相关资源
    最近更新 更多