![防止对不受信任的域使用 CNAME 记录](https://linux22.com/image/1602844/%E9%98%B2%E6%AD%A2%E5%AF%B9%E4%B8%8D%E5%8F%97%E4%BF%A1%E4%BB%BB%E7%9A%84%E5%9F%9F%E4%BD%BF%E7%94%A8%20CNAME%20%E8%AE%B0%E5%BD%95.png)
我使用 Route53 作为 DNS,并希望防止使用不受信任的域的 CNAME 记录。
例如,我有三个域:
master.com
test1.com
test2.com
master.com
有 A 记录:
test1.com
是CNAME
master.com
test2.com
是CNAME
master.com
我想保护master.com
并防止为其他域名创建 CNAME(除test1.com
和test2.com
)
我怎样才能做到这一点?
答案1
DNS 不支持此功能。无论您使用哪个 DNS 提供商,因为创建 CNAME 记录完全在“源”域中完成,并且根本不联系“目标”。因此,域可以发布任何DNS 记录任何数据。
您唯一能做的事情 - 处理 HTTP(S)、TLS-SNI 和其他支持虚拟主机的协议时 - 是确保您的服务器拒绝所有对未知虚拟主机的请求。
答案2
您无法阻止某人创建指向您域名的 CNAME 记录,就像您无法阻止某人告诉他们的朋友拨打您的电话号码一样。
CNAME 记录就像在答录机上留下一段录音,提示您拨打其他号码。例如,您拨打 555-1111,消息说“拨打 555-2222”。同样,的 CNAME 记录www.example.com
可以指向www.yourdomain.com
。当 DNS 客户端查找www.example.com
并遇到 CNAME 记录时,它会重新启动 ... 的 DNS 查找过程,就像它一开始www.yourdomain.com
就尝试查找一样。www.yourdomain.com
由于您无法控制创建 CNAME 记录的域,并且您无法区分由于 CNAME 记录而发起的域记录查找与本机查找,因此您无法阻止 CNAME 记录指向您,就像您无法阻止某人在自己的答录机上留言告诉呼叫者改为拨打您的号码一样。