将jwt用作GET请求的查询参数是否安全?


75

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

Answers:


86

在以下情况下可以保证安全:

  1. JWT是一次性使用
  2. jtiexp权利要求书中存在于令牌
  3. 接收器使用jti和正确实施重放保护exp

但如果将其用作可反复使用的令牌(例如针对API),则不建议将其作为查询参数使用,因为它可能以日志和系统进程信息结尾,可供其他可访问服务器或服务器的用户使用客户系统。在这种情况下,最好将其作为标头或POST参数的一部分呈现。

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


13
此外,未经培训的用户可能会复制并粘贴带有令牌的URL,这可能会导致基本上无意的会话劫持。
2015年

1
如果端点是REST,则在许多情况下必须使用GET方法。此外,如果请求下载,您甚至不能使用ajax。
斯坦利·罗

1
短短不到exp2分钟呢?再加上第二个重定向(在jwt应用收集到之后)?第二个重定向仅用于防止复制和粘贴问题。如果您的浏览器被盗,即使是标头也无法使您免于被盗。
戴夫·詹森

1
为什么令牌只能是1次?
戴夫·希利尔

12
因为令牌是查询参数,所以令牌可能最终出现在服务器日志,浏览器日志或引用标头中,并且有人可以从那里获取并尝试重用它。
Hans Z.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.