查询字符串参数在HTTPS(HTTP + SSL)中是否安全?

Dee*_*eep 341 security https http-get

当与请求一起发送时,查询字符串参数是否在HTTPS中加密?

Joe*_*zer 384

是.查询字符串也使用SSL加密.然而,正如本文所示,将敏感信息放在URL中并不是一个好主意.例如:

URL存储在Web服务器日志中 - 通常每个请求的整个URL都存储在服务器日志中.这意味着URL中的任何敏感数据(例如密码)都以明文形式保存在服务器上

  • 这意味着,当DigitalOcean,Google或其他人要求您将API密钥放入查询参数时,任何能够拥有对日志的只读访问权限的人都可以伪造您的ID吗?如果Loggly的任何人泄露任何信息,许多服务都会受到损害? (29认同)
  • API密钥是一个短期令牌,通常有效期为一小时或一个月(对于oauth和类似服务) - 但如果存在违反该等级的情况,则它们只会使所有未完成的令牌无效.每个人都必须使用他们的(可能)安全密码重新进行身份验证. (12认同)
  • @MatthieuCharbonnier 这是一个大胆的声明。你可以让我访问你的银行 30 分钟吗? (8认同)
  • 如果数据是一次性的(例如一次性令牌),则放置敏感数据并不是真正的问题 (3认同)
  • @EralpB不,我想你误解了我的陈述.但我可以给你我的确认代码,我已经使用过,现在已经过时无用了. (2认同)

Mic*_*SFT 124

请记住,SSL/TLS在传输层运行,因此所有加密goo都发生在应用层HTTP内容之下.

http://en.wikipedia.org/wiki/File:IP_stack_connections.svg

这是很长的说法,"是的!"


Mar*_*tos 49

使用HTTPS时,整个传输(包括查询字符串,整个URL,甚至请求类型(GET,POST等)都会被加密.

  • **小心!**即使整个URL都已加密,在加密传输之前的初始SSL握手期间也可以看到主机名! (25认同)
  • @Must.Tek 我知道这是一个迟到的答复,但对于稍后阅读本文的任何人来说:不,帖子正文和标头已完全加密,并且在初始 SSL/TLS 握手期间无法看到它们。这就是为什么授权通常在 HTTPS 连接中作为标头(承载令牌等)传递。 (2认同)

小智 6

我不同意这里给出的建议 - 即使已接受答案的参考也得出结论:

\n\n
\n

您当然可以将查询字符串参数与 HTTPS 结合使用,但不要\xe2\x80\x99t 将它们用于任何可能出现安全问题的情况。例如,您可以安全地使用它们来识别部件号或显示类型,例如 \xe2\x80\x98accountview\xe2\x80\x99 或 \xe2\x80\x98printpage\xe2\x80\x99,但不要\xe2\ x80\x99t 将它们用于密码、信用卡号或其他不应公开的信息。

\n
\n\n

所以,不,他们并不真正安全......!

\n

  • 所有的答案都同意它们的安全性,问题不在于它们是否“安全”。是HTTPS中GET参数是否加密。已得到答复,以及您引用的警告。我不知道您的答案试图在此处添加与问题相关的内容,因为它是模糊且衍生的。 (81认同)