将jwt作为GET请求的查询参数放入url是否安全?

时间:2015-09-22 17:14:58

标签: security http jwt

将jwt(json web token)作为GET请求的查询参数放入url是否安全?

2 个答案:

答案 0 :(得分:56)

在以下情况下可以安全:

  1. JWT仅限一次性使用
  2. 令牌
  3. 中存在jtiexp声明
  4. 接收方使用jtiexp
  5. 正确实施重播保护

    但是如果它被用作可以重复使用的令牌,例如针对API然后将其作为查询参数提供是不太优选的,因为它可能最终出现在日志和系统进程信息中,可供有权访问服务器或客户端系统的其他人使用。在这种情况下,最好将其作为标题或POST参数的一部分呈现。

    除此之外,通过在查询参数中使用它,您可能会遇到浏览器或服务器上的URL大小限制;在标题中使用它可以提供更多的空间,使用它作为POST参数最好。

答案 1 :(得分:0)

<块引用>

将 jwt(json web 令牌)作为 GET 请求的查询参数放入 url 是否安全?

是的,只要 JSON 网络令牌 (JWT) 的编码方式对 URL 中查询参数的编码是透明的:

JWT 是 URL 编码安全的。就地使用不会丢失数据;不需要额外的编码;甚至 URL 编码本质上是安全的,在 JWT 上多次应用 url-encoding(百分比编码)不会破坏它。

这种安全性是有限的:

如果 URL 本身是此类数据泄漏的一部分,就地使用时可能会出现数据泄漏。根据 URL 的常用方式,您应该将 URL 查询参数中的任何 JWT 视为已发生数据泄漏,因此已为其准备好 JWT(例如,防止重放攻击)。

它充其量与 URL 信息的传输一样安全,而且永远不会更安全。

如果 URL 信息的传输不安全,那么 URL 中的所有内容也永远不会更安全,其中包括用作 GET 参数时的 JWT。


除了在 URL 中使用它(在我看来它是一种传输机制),您可能还需要考虑其他数据保留、协议甚至您自己的系统属性,包括相关 JWT 本身的属性。< /p>

对于所有这些都视情况而定。

对于其中一些注意事项,请参阅 the other answerJSON Web Token (JWT) - RFC-7519 包括。那里引用的更新。