HTTPS查询字符串是否安全?

我正在创建一个使用HTTPS的安全的基于Web的API; 然而,如果我允许用​​户使用查询字符串来配置它(包括发送密码),这也将是安全的,或者我应该强制它通过POST完成?


是的。 但对于敏感数据使用GET是一个糟糕的主意 ,原因如下:

  • 大多数HTTP引用漏洞(目标页面中的外部图像可能会泄露密码[1])
  • 密码将存储在服务器日志中(这显然很糟糕)
  • 浏览器中的历史缓存
  • 因此,即使Querystring是安全的,建议不要将敏感数据传输到查询字符串。

    [1]虽然我需要注意的是,RFC指出浏览器不应该将引用从HTTPS发送到HTTP。 但是,这并不意味着第三方浏览器工具栏或来自HTTPS网站的外部图像/闪光灯不会泄漏它。


    从“嗅探网络数据包”的角度来看,GET请求是安全的,因为浏览器将首先建立安全连接,然后发送包含GET参数的请求。 但GET url将存储在用户浏览器历史记录/自动完成中,这不是一个存储密码数据的好地方。当然,这仅适用于从浏览器访问服务的更广泛的“Web服务”定义,如果您只从您的自定义应用程序访问它,这应该不成问题。

    所以最好使用post至少用于密码对话框。 正如链接中指出的,littlegeek发布的GET URL更可能写入您的服务器日志。


    是。 HTTPS会话的整个文本由SSL进行保护。 这包括查询和标题。 在这方面,POST和GET将完全相同。

    至于你的方法的安全性,没有适当的检查就没有真正的方法说。

    链接地址: http://www.djcxy.com/p/31205.html

    上一篇: Is an HTTPS query string secure?

    下一篇: ColdFusion 11 CFHTTP NTLM support