在测试 Omniauth 并关注广受欢迎的 Ryan Bates 的视频时,我认为存在一个重大的安全漏洞。这是一个例子
我有两个用户:Aurelien 和 John
早上约翰登录推特但忘记注销。然后他继续 myapplication 并通过http://myapplication.com/auth/twitter连接到 Twitter 服务。他被自动分配到 Twitter 身份验证,因为 Twitter 记得 John 已登录。John 开始工作。
与此同时,他的兄弟 Aurelien 在同一台计算机上使用 myapplication。他决定他希望从 myapplication 发布一条推文并继续访问http://myapplication.com/auth/twitter以通过 OmniAuth 登录到他的 Twitter 帐户。多么惊喜!他不需要登录,但是当重定向到回调 URL 时,他发现他当前以 John 的身份登录!
现在我想相信大多数用户不共享他们的电脑/桌子/电话,但我确信这是一个经常出现的问题。
您可以遵循什么策略或逻辑来防止这种情况发生?
例如,当需要来自 myapplication 的其他用户登录 Twitter 而不是使用之前打开的 Twitter 会话时,您如何确保?
欢迎举例!