我正在尝试找出当前设置的缺点,并发现了一个潜在的异常。有一个网页托管在(例如)webpage.com
。如果我将我的域名(例如)指向mydomain.com
的原始 IP webpage.com
,则实际webpage.com
网页将在对的 Web 请求中返回mydomain.com
。但这是一个好的做法吗?VirtualHost(或 SNI)是否应该过滤 HTTP 标头中带有“host”参数的查询,而这些查询在服务器上不存在?
答案1
理想情况下,虚拟主机是一种很好的做法。这是一种防止各种域名伪造攻击(facebok.com、aple.com、micro-soft.com)的简单方法,因为 Apache 只会处理来自 Webpage.com 的请求。如果没有虚拟主机,代理到原始 IP 就很容易了,从而很容易进行上述伪造。以下是维基百科上有一篇关于该内容的文章。
TLDR:不,它使其他人更难冒充您的网站。
好奇:您的网站使用 SSL 吗?如果有人试图进行精心设计的域名攻击,浏览器会因证书无效而拒绝连接。另外,作为实验,获取一个不再使用的旧域名并将其指向相同的 IP。访问该域名。
答案2
这没什么大不了的。即使你VirtualHost X
在 前面加上 来“保护” NameVirtualHost X
,也不会有太大变化。这确实会检查到达服务器的 Host HTTP 标头。但任何人仍然很容易设置自己的代理(例如,自己的 apache 服务器)来重定向到你的网站。
在公共互联网上,你无法轻易阻止我所描述的情况:有人将内容输入mydomain.com
浏览器,但却获得了本应向公众显示的内容properdomain.com
。TLS/SNI 也无法阻止这种情况。