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

Security 将jwt作为GET请求的查询参数放入url是否安全?,security,http,jwt,Security,Http,Jwt,将jwt(json web令牌)作为GET请求的查询参数放入url是否安全?在以下情况下可以安全: JWT仅为一次性使用 令牌中存在jti和exp声明 接收机使用jti和exp 但是,如果它被用作可重复使用的令牌(例如针对API),那么将其作为查询参数提供则不太可取,因为它可能最终会出现在日志和系统进程信息中,可供访问服务器或客户端系统的其他人使用。在这种情况下,最好将其显示为标题或POST参数的一部分 此外,通过在查询参数中使用它,您可能会遇到浏览器或服务器上的URL大小限制;在标题中使用它可

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

在以下情况下可以安全:

  • JWT仅为一次性使用
  • 令牌中存在
    jti
    exp
    声明
  • 接收机使用
    jti
    exp
  • 但是,如果它被用作可重复使用的令牌(例如针对API),那么将其作为查询参数提供则不太可取,因为它可能最终会出现在日志和系统进程信息中,可供访问服务器或客户端系统的其他人使用。在这种情况下,最好将其显示为标题或POST参数的一部分


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

    此外,未经培训的用户可能会复制并粘贴带有令牌的URL,这可能会导致基本上无意的会话劫持。如果端点为REST,则在许多情况下,您必须使用GET方法。此外,如果请求是下载,你甚至不能使用ajax。那么在应用程序收集了
    jwt
    之后,再加上第二次重定向(2分钟)怎么样?第二个重定向只是为了防止复制和粘贴问题。如果您的浏览器遭到破坏,即使是标头也无法使您的令牌免于被盗。为什么该令牌必须只有一次?因为作为一个查询参数,该令牌可能会最终出现在服务器日志、浏览器日志或引用器标头中,有人可能会从那里获取它并尝试重新使用它。