如何使用存储的指纹防止 JWT 劫持?

问题描述 投票:0回答:1

我们的团队被要求防止 API 中的 JWT 劫持。我们的解决方案是将用户 IP 和用户代理的“指纹”存储在我们的数据库中,并根据每个请求进行验证。当用户注销时,我们删除指纹。

这有一些问题:

  • 用户通常不会注销
  • 用户IP变更

如果用户不注销,他们的指纹将保留。当他们返回应用程序时,如果他们的 IP 发生了变化,他们将无法登录,因为看起来他们是劫机者。

实现这种指纹识别的最佳方法是什么?我们不应该使用用户IP吗?

jwt ip fingerprint session-hijacking
1个回答
0
投票

使用cookie。 当用户登录时,发送具有正确域名和名称的 cookie,例如“auth-cookie”。它将包含您的 jwt 令牌。 每次用户发送请求时,这些 cookie 都会自动发送回给您。 将 httpOnly 字段设置为 true,以便劫持者无法使用 javascript 读取令牌。 注销时,将“auth-cookie”cookie 设置为空白。

© www.soinside.com 2019 - 2024. All rights reserved.