给定域website.org和相应的带有IP 1.2.3.4的and服务器。
如果客户端使用其主机文件中的域名定义IP,如下所示:
$ cat /etc/hosts
[...]
1.2.3.4 website.org客户端是否在访问网站时在请求中发送实际域名,还是只使用IP地址?
发布于 2016-07-17 11:22:37
对于HTTP连接,可能还有其他一些协议,您的浏览器(或其他客户端)将把域名放在Host:头中。例如,请求可能启动如下所示:
GET / HTTP/1.1
Host: website.org
...在未加密的连接上,这将显示目标域。
对于TLS连接(最常见的是HTTPS),大多数客户端将以纯文本指定要连接到的主机(此特性称为SNI,并在相同的IP服务多个域时使用)。服务器将使用包含域名的证书(无论客户端是否使用SNI)进行响应,该证书也以纯文本形式传输;任何窃听连接的人都可以读取任意方向的通信量。证书可以指定多个域名(通常是一个根的子域)或一个公司拥有的多个域。
另外,反向DNS也是一回事。如果有人想知道您正在与哪些域通信,并且这些域在DNS中注册,那么他们可以对IP地址进行反向查找。就像正常的DNS查找将名称映射到IP一样,反向查找将IP映射到名称。同样,可能有多个域名所有映射到该IP,在这种情况下,反向查找将返回多个名称,但它们通常是相关的。
还有一些工具可以显式地与DNS交互(因此可以通过网络发送域名),比如nslookup和whois。然而,这些不是你通常会使用的网站,你知道足够有在你的主机文件。
发布于 2016-07-17 11:19:41
客户端是否在访问网站时在请求中发送实际域名,还是只使用IP地址?
主机名包含在HTTP请求中(HTTP是访问网站时使用的协议)。例如,访问http://www.example.org/foo会导致:
GET /foo HTTP/1.1
Host: www.example.org此外,当使用HTTPS访问站点时,主机名将在TLS ClientHello中发送(仅使用SNI,但这是所有现代浏览器所做的)。
https://security.stackexchange.com/questions/130294
复制相似问题