保护JWTs安全的最佳方法是什么?

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

因为如果令牌被泄露,你也没有什么办法。除非令牌过期,否则用户可以访问一切。我在想一种可能提供额外安全层的方法,但不确定?

如果我们在有效载荷中添加一个IP地址,并在服务器上从请求头中进行比较,会怎么样?

假设我的payload对象看起来像

{
  user_id: 'xyz',
  email: '[email protected]',
  user_ip: '89.102.22.95'
}

在服务器上,我们将比较有效载荷中保存的IP和发出请求的IP。

if (user_ip == req.connection.remoteAddress) {
  /* It's a valid request */
} else { 
  /* Verify Identify using an email confirmation */ 
}

这基本上说的是,即使令牌已经泄露,我们也会有额外的安全层,它将匹配令牌生成的IP和发出请求的IP。

这是不是一个很好的解决方案,让它更安全一些?

node.js security authentication jwt authorization
1个回答
0
投票

我认为这不是一个好的解决方案,因为用户可能会在wifi移动网络之间改变,这也改变了他们的IP地址。

我能想到的更好的方法是将用户使用的所有IP地址存储在一个单独的表上。对于每一个请求,我们都会检查用户的 "白名单 "中是否有这个IP地址(貌似Steam和Parsec都是用这个方法)。

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