代码之家  ›  专栏  ›  技术社区  ›  Shripad Krishna

authlogic、注销、凭证捕获和安全性

  •  1
  • Shripad Krishna  · 技术社区  · 14 年前

    好吧,这有点奇怪。我今天在rails应用程序中安装了authlogic oid。一切都很好,除了一点小麻烦。

    我就是这么做的:

    我先用我的google openid注册。成功的登录、重定向和电子邮件以及正确的openid都存储在我的数据库中。我很高兴一切顺利!

    现在,当我注销时,我的rails应用程序会像往常一样破坏会话并将我重定向回我的根url,在那里我可以再次登录。现在,如果我尝试登录,它仍然记得我的最后一个登录ID。这不是什么大问题,因为我总是可以“以不同的用户身份登录”,但我想知道是否有任何东西,不仅从我的应用程序注销,而且从谷歌注销。

    我注意到stack overflow的openid身份验证系统也是如此。

    你也许会问,我为什么这么担心。但是,如果你的网络应用程序最终用户,碰巧在网吧里,认为他已经从你的应用程序和他的谷歌账户中注销了,后来才意识到他的谷歌账户被一些不值得的失败者入侵了,而这些失败者恰好注意到他之前的那个不是从谷歌上注销然后说…更改了他的密码!!

    我应该偏执吗?在实现openid规范时,这难道不是一个重大的安全失误吗?也许今天有人能给我一个解决这个问题的办法,这个问题就解决了。但是其他在应用程序中实现了openid而没有实现解决方案的人呢?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Andrew Moore    14 年前

    如果这对您来说是个大问题,请不要使用openid,或者在成功注销后显示dhtml弹出窗口,提醒用户他们的会话在openid提供程序上仍然有效。

    至于google的openid,您可能要做的是在

    http://www.google.com/accounts/ClearSID?continue=http%3A%2F%2Fwww.google.com%2Faccounts%2FLogout%3Fcontinue%3Dhttp%3A%2F%2Fwww.google.com%2F

        2
  •  2
  •   Evgeny Shadchnev    14 年前

    afaik,你不可能在另一个系统中注销用户的帐户。你的应用程序应该只负责自己的业务。作为一个用户,如果一个使用openid的网站能让我注销google账户,我会非常惊讶。

    是的,有一个场景,用户可以假设他们是从谷歌注销的,因为他们登录了你的网站,但这将(而且应该)是他们自己的错。