将JWT作为电子邮件中的激活URL有多安全?
小智 14
只要您用来签署令牌的秘密和验证它的方式是安全的,使用像 JWT 这样的无状态令牌就是安全的。但是,在您的密码重置 URI 中使用 JWT 作为身份验证令牌之前,您应该考虑某些其他方面......
由于您不能使特定的 JWT 无效(无需再次保持状态)并且到期是不够的(在这种特定情况下),您基本上想要的是您的 JWT 是众所周知的一次性或单次-使用令牌。原因是您可能不希望多次使用单个密码重置链接来重置密码,因为它会允许潜在的攻击者完全锁定用户(通过不断更改密码)。
我在这里描述了它是如何工作的:带 JWT 的单次使用令牌- 基本上你需要将你在服务器端的某种状态(在你的情况下,例如用户密码的哈希)转换为 HMAC 密钥和使用它来签署您的特定于用户的令牌。这将导致更改密码后令牌验证失败...
Thi*_*ilo 13
url中JWT令牌的用例是:
- 帐户验证 - 当您在网站上注册后通过电子邮件向某个人发送链接时.https://yoursite.co/account/verify?token=jwt.goes.here
- 密码重置 - 确保重新设置密码的人员可以访问属于该帐户的电子邮件.https://yoursite.co/account/reset-password?token=jwt.goes.here
这两个都是一次性令牌的好候选者(在点击之后到期).
所以,是的.只需确保每封电子邮件只能激活一次(并且不要使用示例中可怕的"秘密"密钥,如果签名可以伪造,则可以绕过您的验证).
| 归档时间: |
|
| 查看次数: |
9704 次 |
| 最近记录: |