【问题标题】:Are querystring parameters secure in HTTPS (HTTP + SSL)? [duplicate]HTTPS(HTTP + SSL)中的查询字符串参数是否安全? [复制]
【发布时间】:2011-02-07 10:10:40
【问题描述】:

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

【问题讨论】:

标签: security https http-get


【解决方案1】:

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

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

【讨论】:

  • 这是否意味着,当 DigitalOcean、Google 或其他人要求您将 API 密钥放入查询参数时,任何可以只读访问日志的人都可以伪造您的 ID?假设 Loggly 的任何人泄露任何信息,很多服务都会受到影响?
  • API 密钥是一个短暂的令牌,通常有效期为一小时或一个月(对于 oauth 和类似服务) - 但如果违反该数量级,它们就会失效所有未偿代币。每个人都必须使用他们(可能)仍然安全的密码重新进行身份验证。
  • 如果数据是一次性的(例如一次性令牌),则放置敏感数据并不是真正的问题
  • @MatthieuCharbonnier 这是一个大胆的声明。您可以让我在 30 分钟内使用您的银行吗?
  • @EralpB 不,我认为您误解了我的陈述。但我可以给你我的确认码,我已经用过,现在已经过时了,没用了。
【解决方案2】:

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

您当然可以在 HTTPS 中使用查询字符串参数,但不要将它们用于任何用途 这可能会带来安全问题。例如,您可以安全地使用它们来识别 零件编号或显示类型,例如“accountview”或“printpage”,但不要将它们用于 密码、信用卡号或其他不应公开的信息 可用。

所以,不,它们并不安全……!

【讨论】:

  • 所有答案都同意它们的安全性,问题不在于它们是否“安全”。这是 GET 参数是否在 HTTPS 中加密。答案是什么,以及您引用的警告。我不知道您的答案是想在此处添加与该问题相关的内容,因为它是模糊的和衍生的。
【解决方案3】:

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

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

这就是说“是的!”

【讨论】:

    【解决方案4】:

    在使用HTTPS时,整个传输,包括查询字符串、整个URL,甚至请求类型(GET、POST等)都是加密的。

    【讨论】:

    • 小心!即使整个 URL 被加密,在加密传输之前的初始 SSL 握手期间也可以看到主机名!
    • @MatthieuCharbonnier 对帖子正文和标题也有效吗?
    猜你喜欢
    • 2010-09-24
    • 2021-03-14
    • 2011-08-16
    • 2020-10-23
    • 1970-01-01
    • 2013-07-15
    • 2011-04-15
    • 1970-01-01
    • 2011-04-28
    相关资源
    最近更新 更多