或 Azure 门户中的文本:
为什么首先这是必要的?为什么指向域名通过 A 记录 不是证明我是该域名的所有者?
我的意思是.. 你首先如何更改 DNS 记录?
这条规则可以防止哪些滥用行为?
答案1
如果您可以控制计算机的 DNS 查找,或者能够注入主机记录,那么您可以伪造该机器的 A 记录并将其指向 Azure 网站(实际上没有什么可以阻止您对 VM 执行此操作)
通过让您创建 cname 记录并独立验证它(通过其内部/公共 DNS 系统),这意味着您确实可以控制该域,并且您不会欺骗别人的域。
答案2
让我尝试通过提供两种情况来回答您的问题。在这两种情况下,您仍需要验证您是所有者,这只是一个安全步骤。
1)www.example.com
未被访问且未投入生产
2)www.example.com
目前正在生产中,并且被大量使用
1) 如果您的域名现在正在设置或尚未投入生产/被访问,您可以创建指向的 CNAME 记录yoursite.azurewebsites.net
。不需要awverify.myhost.azurewebsites.net
。
2) 如果您的域名使用率很高,并且当前访问量很大,并且您希望测试 Azure 是否看到 DNS 记录中的更改,则可以创建一个名为“ awverify
”的子域awverify.example.com
,并将其指向已创建的子域awverify.myhost.azurewebsites.net
。这不会影响您当前访问您网站的用户www.example.com
。一旦 Azure 验证它看到 CNAME 中的更改,您就可以通知用户进行维护并更改 A 记录。如果您只是更改 A 记录,则该网站可能会被视为离线长达 8 小时。
因此,简单地回答您的问题,您不需要使用awverify
。只需更改 CNAME 即可。此外,只需更改 A 记录即可将所有流量从yourdomain.com
重定向到yoursite.azurewebsites.net
希望这可以帮助。
答案3
为了证明对域的控制,您需要在域的 DNS 记录中放置一些信息,这将识别您的 Azure 帐户。
此类信息可以嵌入 CNAME 指向的域名中。我期望您的帖子中省略的域部分可以识别您的特定 Azure 帐户。
您实际上不需要保密该名称。毕竟,一旦将其放入 DNS 记录中,它就会公开可见。
他们无法对 A 记录执行相同操作的原因是 A 记录中的熵不足以实现相同的安全性。
这并不意味着 CNAME 是他们唯一可以使用的方法。其他可能有效的方法包括:
- TXT 记录
- AAAA 记录
- 多个 A 记录
我个人认为,由验证器随机生成的子域上的 TXT 记录是最好的方法,因为它的侵入性最小。但您的情况似乎不支持这种方法。
答案4
我并不同意这一点,但这是我直接从 Microsoft 获得的答案。简而言之,它可以阻止某人将您拥有的域添加到另一个 Azure Web 应用程序,但只能在与您位于同一数据中心的情况下。因此,本质上,有人必须尝试注册您拥有的域并且位于同一数据中心(Azure 区域),此保护才有用。从 DNS 的角度来看,这没什么意义,因为我可以添加 www.microsoft.com 并在我拥有的每个 Web 服务器上设置虚假网页,但如果我没有更改 DNS 记录的权限,那就毫无意义。当然,我可以使用流氓接入点上的流氓 DNS 服务器来执行此操作,但在这种情况下我需要 Azure Web 应用程序做什么?无论如何,我可以启动 VM 并绕过限制。这对我来说真的没有意义,而且每当需要添加新站点时,这真的只是一种烦恼。现在,这个需要几分钟的过程依赖于 DNS,然后我才能将域添加到 Web 应用程序。对于新域名来说,这通常没问题,但如果我有一个现有域名,那就麻烦了。我必须创建这个其他 DNS 记录,然后在将我的域名添加到我的 Web 应用程序后将其删除,然后修改我真正想要更改的 DNS 记录。无论如何,以下是微软对此原因的回应:
安全问题是,考虑到这种情况,如果它允许某人在您将域添加到 Web 应用程序之前将其添加到他们的应用程序中,那么您将无法再次添加您的域,因为 Azure Web 应用程序在同一数据中心内共享相同的前端服务器。因此,在将每个域/子域分配给 Web 应用程序之前,必须对其进行验证。如果我们在虚拟机上托管网站,则不会受到任何限制。