6

我对基于令牌的身份验证的理解是,在身份验证时(可能通过 ssl),将一个令牌传递给用户,以便即时进行廉价的用户验证。一种实现方式是生成一个 cookie,该 cookie 传递给用户以进行会话管理。

但是,我的理解是,基于令牌的身份验证(至少通过 cookie)容易受到中间人的攻击,如火羊。

是否有其他实施方法可以绕过这个主要的安全问题,还是我对 tba 有根本的误解?

4

1 回答 1

10

你的理解很好。从根本上说,就应用程序如何看待它而言,令牌也可以是用户名和密码。如果有人拥有令牌,他们可以向您的应用程序验证自己的身份。http cookie 的主要目的是避免在有人通过跨站点脚本漏洞 (XSS) 或其他方式获取 cookie 时泄露用户名和密码。是的,在适当的情况下,他们可以将这个令牌作为“中间人”“重播”到应用程序,但他们不应该从中找出用户名/密码配对,但如果令牌再次不能保证生成算法很弱,例如,如果您决定对连接在一起的用户名和密码进行 BASE64 编码并将其用作值。

通常,您在服务器端保持令牌 -> 用户映射的安全。因此,最终您的安全性完全基于保持令牌安全并确保其生命周期受到控制(例如,它过期和/或仅在从与原始凭证提供者使用的 IP 相同的 IP 提供给您时才有效 - 再次,只是一个例子)

希望这可以帮助,

-Oisin

于 2011-01-12T17:44:27.957 回答