使用TLS/SSL (HTTPS)加密时,所有url都加密了吗?我想知道,因为我想在使用TLS/SSL (HTTPS)时隐藏所有URL数据。
如果TLS/SSL提供了URL的全部加密,那么我就不必担心从URL中隐藏机密信息。
使用TLS/SSL (HTTPS)加密时,所有url都加密了吗?我想知道,因为我想在使用TLS/SSL (HTTPS)时隐藏所有URL数据。
如果TLS/SSL提供了URL的全部加密,那么我就不必担心从URL中隐藏机密信息。
当前回答
虽然这里已经有了一些好的答案,但大多数都集中在浏览器导航方面。我在2018年写这篇文章,可能有人想知道移动应用程序的安全性。
对于移动应用程序,如果你控制应用程序的两端(服务器和应用程序),只要你使用HTTPS,你就是安全的。iOS或Android将验证证书并减轻可能的MiM攻击(这将是所有这一切中唯一的弱点)。您可以通过HTTPS连接发送敏感数据,这些数据将在传输过程中被加密。只有你的应用程序和服务器会知道通过https发送的任何参数。
这里唯一的“可能”是客户端或服务器感染了恶意软件,可以在数据被包装成https之前看到数据。但如果有人感染了这种软件,他们就可以访问数据,不管你用什么来传输数据。
其他回答
Marc Novakowski的回答很有帮助——URL存储在服务器的日志中(例如,在/etc/httpd/logs/ssl_access_log中),所以如果你不想让服务器长期保存这些信息,就不要把它放在URL中。
虽然你已经有了很好的答案,但我真的很喜欢这个网站上的解释:https://https.cio.gov/faq/#what-information-does-https-protect
简而言之:使用HTTPS隐藏:
HTTP方法 查询参数 POST正文(如有) 请求头(包括cookie) 状态码
我同意前面的答案:
明确地说:
使用TLS, URL的第一部分(https://www.example.com/)在构建连接时仍然可见。第二部分(/herearemygetparameters/1/2/3/4)由TLS保护。
然而,您不应该在GET请求中放置参数的原因有很多。
首先,正如其他人已经提到的: -通过浏览器地址栏泄露 -历史泄漏
除此之外,您还会通过http引用器泄漏URL:用户在TLS上看到站点A,然后单击到站点B的链接。如果两个站点都在TLS上,则对站点B的请求将在请求的引用器参数中包含来自站点A的完整URL。站点B的管理员可以从服务器B的日志文件中检索它。)
You can not always count on privacy of the full URL either. For instance, as is sometimes the case on enterprise networks, supplied devices like your company PC are configured with an extra "trusted" root certificate so that your browser can quietly trust a proxy (man-in-the-middle) inspection of https traffic. This means that the full URL is exposed for inspection. This is usually saved to a log. Furthermore, your passwords are also exposed and probably logged and this is another reason to use one time passwords or to change your passwords frequently. Finally, the request and response content is also exposed if not otherwise encrypted. One example of the inspection setup is described by Checkpoint here. An old style "internet café" using supplied PC's may also be set up this way.
整个请求和响应都是加密的,包括URL。
请注意,当你使用HTTP代理时,它知道目标服务器的地址(域),但不知道该服务器上的请求路径(即请求和响应始终是加密的)。