使用TLS/SSL (HTTPS)加密时,所有url都加密了吗?我想知道,因为我想在使用TLS/SSL (HTTPS)时隐藏所有URL数据。

如果TLS/SSL提供了URL的全部加密,那么我就不必担心从URL中隐藏机密信息。


当前回答

正如其他答案已经指出的,https“url”确实是加密的。然而,解析域名时您的DNS请求/响应可能不是,当然,如果您使用浏览器,您的url也可能被记录。

其他回答

我同意前面的答案:

明确地说:

使用TLS, URL的第一部分(https://www.example.com/)在构建连接时仍然可见。第二部分(/herearemygetparameters/1/2/3/4)由TLS保护。

然而,您不应该在GET请求中放置参数的原因有很多。

首先,正如其他人已经提到的: -通过浏览器地址栏泄露 -历史泄漏

除此之外,您还会通过http引用器泄漏URL:用户在TLS上看到站点A,然后单击到站点B的链接。如果两个站点都在TLS上,则对站点B的请求将在请求的引用器参数中包含来自站点A的完整URL。站点B的管理员可以从服务器B的日志文件中检索它。)

A third-party that is monitoring traffic may also be able to determine the page visited by examining your traffic an comparing it with the traffic another user has when visiting the site. For example if there were 2 pages only on a site, one much larger than the other, then comparison of the size of the data transfer would tell which page you visited. There are ways this could be hidden from the third-party but they're not normal server or browser behaviour. See for example this paper from SciRate, https://scirate.com/arxiv/1403.0297.

一般来说,其他答案是正确的,但实际上,这篇论文表明,可以相当有效地确定访问的页面(即URL)。

链接到我对重复问题的回答。URL不仅在浏览器历史记录中可用,服务器端日志也可以作为HTTP Referer头发送,如果您使用第三方内容,则会将URL暴露给您控制之外的来源。

是也不是。

服务器地址部分不加密,因为它是用来建立连接的。

这种情况可能会随着加密的SNI和DNS而改变,但截至2018年,这两种技术都不常用。

路径、查询字符串等都是加密的。

注意,对于GET请求,用户仍然可以从位置栏中剪切和粘贴URL,并且您可能不希望将机密信息放在那里,因为任何人都可以看到屏幕。

整个请求和响应都是加密的,包括URL。

请注意,当你使用HTTP代理时,它知道目标服务器的地址(域),但不知道该服务器上的请求路径(即请求和响应始终是加密的)。