关于JWT授权的困惑
我正在努力理解关于JWT授权的一些事情 假设我以用户身份成功登录。然后,服务器将向我发送JWT令牌,我可以将其用于每个后续请求 我的问题是,在这一点上,客户端上有权访问此令牌的任何人是否可以从技术上将其放入授权标头中,并向受保护的端点发出请求并成功地获取数据 此时,客户端上有权访问此令牌的任何人都可以 JWT身份验证假定使用加密传输通道(https),因此只有经过身份验证的客户端才能访问JWT令牌。这通常适用于任何令牌身份验证(如cookie…) 此时,客户端上有权访问此令牌的任何人都可以关于JWT授权的困惑,jwt,Jwt,我正在努力理解关于JWT授权的一些事情 假设我以用户身份成功登录。然后,服务器将向我发送JWT令牌,我可以将其用于每个后续请求 我的问题是,在这一点上,客户端上有权访问此令牌的任何人是否可以从技术上将其放入授权标头中,并向受保护的端点发出请求并成功地获取数据 此时,客户端上有权访问此令牌的任何人都可以 JWT身份验证假定使用加密传输通道(https),因此只有经过身份验证的客户端才能访问JWT令牌。这通常适用于任何令牌身份验证(如cookie…) 此时,客户端上有权访问此令牌的任何人都可以 JW
JWT身份验证假定使用加密传输通道(https),因此只有经过身份验证的客户端才能访问JWT令牌。这通常适用于任何令牌身份验证(如cookie等)。是的,您所说的是正确的,这就是为什么任何JWT都应该有一个过期值的主要原因,因此即使它以某种方式被盗,访问也会被限制在一定的时间段内(最佳实践建议在15-60分钟之间).是的,您所说的是正确的,这就是为什么任何JWT都应该有一个过期值的主要原因,因此,即使它以某种方式被盗,访问也会被限制在一定的时间段内(最佳实践建议在15-60分钟之间)。是的,任何拥有该令牌的人都是被授权的。由应用程序和浏览器来保护令牌。在应用程序中,您应始终:
- 通过加密通道(HTTPS)发送令牌
- 正确设置CORS,以便浏览器可以保护您的端点不受其他应用程序的访问
- 使用较短的令牌到期时间,以限制令牌被误用的时间窗口
- 通过加密通道(HTTPS)发送令牌
- 正确设置CORS,以便浏览器可以保护您的端点不受其他应用程序的访问
- 使用较短的令牌到期时间,以限制令牌被误用的时间窗口
有关更多详细信息,请查看此最佳实践以在客户端存储JWT 它应该存储在一个httpOnly cookie中,这是一种特殊的cookie,只在HTTP请求中发送到服务器,它永远无法从浏览器中运行的JavaScript访问(无论是读还是写)
有关更多详细信息,请查看此欢迎来到安全世界,这里一切都不同 这个话题一开始看起来更复杂。如前所述,第一步是使用安全连接保护令牌不被拦截。但这并不是故事的结局 如果令牌被安全地传输到客户端,则令牌必须存储在客户端的某个位置。一般有三种选择:
- 将令牌存储在会话缓存中,例如本地存储
- 将令牌作为仅HTTP cookie提交,以便脚本无法访问它
- 将令牌存储在fronded代码中的某个位置