我要求托管人添加三个都指向A记录IP的子域。似乎他只是添加了通配符DNS记录,因为任何随机子域现在都可以解析为我的IP。从技术的角度来看,这对我来说是可以的,因为没有子域指向其他任何地方。再说一次,我不喜欢他没有按照我的要求做。因此,我想知道是否还有其他原因要告诉他进行更改。有吗
我发现的唯一缺点是,有人可以使用链接到我的网站http://i.dont.like.your.website.mywebsite.tld
。
*.blog.example.com
您添加通配符无需分别配置每个。
我要求托管人添加三个都指向A记录IP的子域。似乎他只是添加了通配符DNS记录,因为任何随机子域现在都可以解析为我的IP。从技术的角度来看,这对我来说是可以的,因为没有子域指向其他任何地方。再说一次,我不喜欢他没有按照我的要求做。因此,我想知道是否还有其他原因要告诉他进行更改。有吗
我发现的唯一缺点是,有人可以使用链接到我的网站http://i.dont.like.your.website.mywebsite.tld
。
*.blog.example.com
您添加通配符无需分别配置每个。
Answers:
如果您曾经将计算机放在该域中,则会遇到奇怪的DNS故障,当您尝试访问Internet上的某个随机站点时,您会遇到麻烦。
考虑:您拥有域名example.com
。您设置工作站并命名。......让我们说,yukon.example.com
。现在,您会注意到/etc/resolv.conf
它的行:
search example.com
这很方便,因为这意味着您可以进行主机名查找,例如www
,然后将www.example.com
自动为您搜索。但是它有一个阴暗的一面:如果您访问Google(例如),它将搜索www.google.com.example.com
,如果您具有通配符DNS,那么它将解析到您的站点,而不是到达Google,您将进入自己的站点。
这同样适用于您运行网站的服务器!如果必须调用外部服务,则主机名查找可能会以相同的方式失败。因此api.twitter.com
,例如突然变成api.twitter.com.example.com
,直接路由回您的站点,当然会失败。
这就是为什么我从不使用通配符DNS。
.local
不保留也不应该使用。这样做违反了RFC,根本没有必要。最佳做法是对内部资源(如)使用委派的第三级子域internal.company.com
。仅仅因为看到很多东西并不能解决问题。
.local
?我已经与在此参数中使用它的人们一起阅读了至少十几次RFC,我可以肯定地告诉您它不存在。
.local
仔细阅读,这是一个很好的选择),但是默认情况下使用SBS出厂的事实确实使MS在这方面看起来像是一团糟。SBS附带该配置,因为它是为那些技术知识较低的非技术客户提供的。这是阻力最小的路径,但实际的AD文档建议在W2K时代一直建议使用第三级子域。
通配符DNS是否记录了不良做法?
就个人而言,我不喜欢它。特别是在该域中有计算机时。错别字不受检查,错误不那么明显...但是从根本上来说没有错。
我发现的唯一缺点是,有人可以使用http://i.dont.like.your.website.mywebsite.tld链接到我的网站。
让您的http服务器将所有此类请求重定向到正确的规范地址,或者根本不响应。对于nginx,它类似于:
server {
listen 80;
server_name *.mywebsite.tld;
return 301 $scheme://mywebsite.tld$request_uri;
}
然后是常规
server {
listen 80;
server_name mywebsite.tld;
[...]
}
这都是意见问题。对我来说,这不是一个坏习惯。
我正在创建一个多租户应用,每个租户使用一个数据库。然后,它根据子域选择要使用的数据库。
例如milkman.example.com
将使用tenant_milkman
数据库。
像这样的我已经分居表为每个租户一样,tenant_milkman.users
,tenant_fisherman.users
,tenant_bobs_garage.users
,这在我看来是一个巨大的很多更容易维护,而不必在同一表中所有公司的所有用户对于此特定的应用程序。
[edit - Michael Hampton has a good point]
话虽如此,如果像我一样,如果您没有特定的理由接受任何(可变)子域,那么您就不应该接受它们。
tenant_
。我确保该应用程序甚至无法连接到它们。
SEO是这里的另一个问题:如果所有*.example.com
内容都显示相同的内容,至少Google会严重引用您的网站(https://support.google.com/webmasters/answer/66359)。
我知道这是一个老问题,但是我想分享一个真实的例子,说明使用通配符域可能会导致问题。但是,我将更改域名并隐藏完整的SPF记录,以免尴尬。
我一直在帮助DMARC遇到问题的人,作为检查的一部分,我总是用DIG查找DMARC记录
;; ANSWER SECTION:
_dmarc.somedomain.com. 21599 IN CNAME somedomain.com.
somedomain.com. 21599 IN TXT "v=spf1 <rest of spf record> -all"
查找他们的DKIM记录时,我也得到了相同的结果。
因此,从该域发送的电子邮件将获得DKIM失败,因为DKIM模块将尝试解析DKIM密钥的SPF记录并失败,并且出于相同的原因,还将获得针对DMARC的Permerror。
通配符域似乎是一个好主意,但设置错误会导致各种问题。
通配符DNS是否记录了不良做法?
不,与其他人相反,我认为这是一种好习惯。
大多数互联网用户有时会使用DNS名称。他们将输入ww.mycompany.com
或wwe.mycompany.com
您宁愿发生“糟糕,我们找不到该网站”还是让他们拉起您的主要主页?最好不要让他们拉起您的主要主页。很多人在做什么。
即使有人放置了链接,i.dont.like.your.website.whatever.com
它仍然会拉出您的主页,这实际上是您想要的。毕竟,他们不能使该i.dont....
站点转到其服务器,您仍然可以控制DNS路由,以便将其转到您的服务器。
我认为首先没有通配符DNS记录的最佳原因是避免将您的服务器IP地址泄露给潜在的攻击者,并减少对DDOS攻击的威胁。Cloudflare也建议您进行以下设置:https : //blog.cloudflare.com/ddos-prevention-protecting-the-origin/