0

当我加载一个用户登录的页面(并且没有 Persona)时,客户端发送一个带有 cookie 的请求。cookie 对用户进行身份验证,服务器可以发送包含已识别用户的敏感信息的页面。

将 Persona 与 Observer API 一起使用时,我在发送页面时嵌入了一个loggedInUser,以告诉 Persona 服务器认为谁已登录。

如果 Persona 认为loginInUser不是服务器认为的那个人,就会出现一个潜在的问题。在这种情况下,我们会收到“onLogout”或“onLogin”回调。

如果我们打算认真对待 Persona 的意见,那么安全的方法是:

  • 发送请求
  • 发送没有敏感信息的页面
  • 如果 Persona 同意loggedInUser发送敏感信息,否则登录或注销

这是低效的,因为它需要为一个页面往返两次,并且使 Web 应用程序复杂化。

从 Persona 文档中非常不清楚一个人的目的是什么。最简单的就是忽略 Persona 关于谁登录的理论。但是为什么要使用这么复杂的 API?

我几乎可以肯定错过了一些东西,但是当我在上面列出时,这对我来说看起来很糟糕。

4

1 回答 1

0

如果我正确理解您的问题,您担心将用户(用户 A)的敏感信息泄露给另一个用户(用户 B)。

但是,在这种情况下,我认为我们可以假设两个用户帐户都在同一个人的控制之下,因为浏览您网站的人拥有用户 A 的有效 cookie,并且还以用户 B 的身份登录到 Persona。如果一个人拥有这两件事,他/她已经可以访问两个用户帐户,因此并没有真正将用户 A 或用户 B 的信息泄露给无关的人。

当然,如果 cookie 是共享计算机,则可能是其他人留下的,但在这种情况下,您遇到的问题不仅仅是一闪而过的敏感信息:现在在计算机前的用户实际上可以冒充该用户没有清除 cookie 就离开了计算机。

于 2013-07-12T18:06:45.197 回答