我有一个使用我们白标 Web 应用程序的客户。他们的网址是 portal.client.com。当我要求他们将网址指向 CNAME app.company.com 时,他们说这必须是 A 记录。
我认为 CNAME 是理想的,因为如果我们需要更改 IP 地址,我们可以在一个地方进行更改,而不必联系每个客户来更新他们的 DNS 记录,从而节省双方的时间和麻烦。
以下是我从他们那里得到的回复:
事实上,CNAME 是 URL 重定向,因此最好的方法是设置托管提供商 Web 服务器的 A 记录。这提供了一种更安全的方法,因为我们无法保证 CNAME 会在浏览器级别上继续伪装第三方 URL,就最终用户而言。
现在,这些对我来说都毫无意义。首先,CNAME 不是 URL 重定向...有人能解释一下 A 记录在什么情况下比 CNAME 更好或更安全吗,以及在这种情况下是否适用。
谢谢,
答案1
我真的想不出 CNAME 不太安全的情况。
有人可能会说,由于别名跨越区域 ( client.com
-> company.com
),因此它并不安全,因为端点不在 的client.com
管理控制范围内。但是,客户端应该足够信任您,可以使用您的应用程序,所以为什么不相信您不会弄乱记录呢app.company.com
。
从系统管理员的角度来看,我宁愿像您建议的那样使用 CNAME,但您可能只是接受它并让您的客户满意:)。
答案2
不,CNAME 记录的安全性并不低于 A 记录。
事实上,这种情况正是 CNAME 存在的原因。
主机和其他资源通常有多个名称来标识同一资源。例如,名称 C.ISI.EDU 和 USC-ISIC.ARPA 都标识同一主机。
还应该指出的是,CNAME 并非真正的 URL 重定向。DNS 查询发生在与服务器建立任何连接之前,并简单地为您的客户端提供一个用于其会话的 IP 地址。客户端仍然知道最初请求的 URL 是什么。
答案3
在理论假设您的应用程序设计为具有不同域的多租户。......没有真正的区别。
cnames 不是‘重定向’, 他们是别名。它们只是资源的另一个名称。过去的您的应用程序不会关心 DNS 查找。
这提供了一种更安全的方法,因为我们无法保证就最终用户在浏览器级别而言,CNAME 将继续伪装第三方 URL。
从技术上讲,这毫无意义。我认为失去对 A 名称的控制...比失去对应用程序正在运行的 IP 地址的控制稍微不那么可怕和粗心。
您也不应该(但可以)让一个 cname 指向另一个 cname。
那么,你没有理由不能继续这客户对 A 名称感到满意,假设您的记录保存得足够好,并让其他客户使用 cname。只需增加服务费,并调整您的 SLA。
答案4
如果 company.com 的 DNS 服务器受到威胁,A 记录会比 CNAME 记录更安全。此外,非常吹毛求疵地说,CNAME 记录需要稍微多一点的时间,因为需要额外的名称解析。除此之外,没有太大区别,事实上,许多互联网云服务(例如 Amazon Web Services)都有为客户域名设置 CNAME 的习惯。
另外,URL 类似于http://portal.client.com/myapp/foobar.html。CNAME 不能指向 URL,只能指向主机名。从他们的回复来看,您的客户似乎不知道他们在说什么。您可能不想与他们的无知作斗争,而是像 @Joe 建议的那样,纵容他们设置 A 记录。