在 url 中提供 jwt 令牌是个好主意吗?
Posted
技术标签:
【中文标题】在 url 中提供 jwt 令牌是个好主意吗?【英文标题】:Is it a good idea to supply jwt token in url? 【发布时间】:2018-09-02 09:07:17 【问题描述】:我需要在我们的一个应用程序中进行 JSONP REST 调用。为了进行身份验证,我必须在 url 中提供 JWT 令牌。
通过这篇文章,我对它的安全方面有了一些了解。
Is it safe to put a jwt into the url as a query parameter of a GET request?
但是,我想进一步了解如何以更安全的方式向 JSONP 提供 JWT 令牌。
我可能无法提供有关我的应用程序的更多详细信息,但请相信我,我们没有使用 JSONP 来满足某些特定需求。
非常感谢。
【问题讨论】:
【参考方案1】:如果它是查询参数的一部分,则它会进入 Web 服务器日志文件,以及(如果不是 https)任何介入代理服务器的日志。如果任何人都可以访问这些日志,那么他们可以重新使用您的令牌。如果 jwt 的过期时间很短,这可能无关紧要,但如果它的过期时间很长,这可能很重要。
此外,如果您将令牌放入 URL 并且 URL 与其他用户共享,那么在它过期之前,您可以访问该资源。如果带有令牌的 URL 曾经出现在地址栏中,这一点尤其重要,因为有人可能只是复制/粘贴它。
JWT 通常不加密,只是签名。这意味着任何人都可以从令牌中提取信息,即使它已经过期。因此,这意味着如果他们掌握了旧日志,他们就有了哪个用户访问了哪些内容的记录,而且他们还可以收集电子邮件等个人数据。
在Authorization
标头中传递它会更好。然后它不会被记录。例如
Authorization: Bearer <token goes here>
【讨论】:
以上是关于在 url 中提供 jwt 令牌是个好主意吗?的主要内容,如果未能解决你的问题,请参考以下文章
通过 express req 参数传递解码的 jwt 数据是个好主意吗?
使用反射替换 java.net.URL URLStreamHandlerFactory 是个好主意吗?