我们的ISP也托pipe我们的外部DNS。 默认情况下,它们包含localhost的条目。
例如:localhost.example.com。 86400 IN A 127.0.0.1
当我要求他们删除它时,他们给了我一个很难的时间,并说这只是绑定工作的方式。
我试图做一些研究,为什么我可能想要包括但我找不到。 我确实发现至less有一个地方认为这是一个可能的XSS攻击媒介。 这似乎是相当普遍的,所以我做了从alexa排名前20位的网站域名,大多数没有这样的条目,但有几个做。 其他几个人有一个入口,但不是指向127.0.0.1他们指向另一个世界路由IP地址。
所以无论如何,为什么我想要在我的域的区域locahost? 他们有没有它的任何问题? 有没有关于这方面的最佳做法? 这真的是一个默认的绑定的事情,我不知道?
谢谢
localhost.example.com有时包含在内部DNS服务器上,以防止“本地主机”请求泄漏到互联网(对于John Smith在浏览器中inputhttp://localhost/ ,由于某种原因,他的parsing器看起来不像在主机文件中,附加他的searchpath( example.com ),并开始询问名称服务器的结果。
你不必有一个本地主机条目(如果你的ISP认为这是“BIND的工作方式”,它们可能被误导或白痴:BIND服务区域文件中的内容,如果它们删除localhost线路将停止服务那个logging)。 作为一个免费的例子, localhost.google.com不解决,我敢打赌,该域名的NS运行BIND。
XSS向量是我从来没有想到的东西,但是有一点值得关注:在公有DNS中有一个localhost条目意味着任何被黑客入侵的机器都可能“在你的域中”(通过在127.0.0.1上运行一个web服务器)做各种讨厌的事情。 可能是一个很好的理由摆脱入境。
假设您的内部名称parsing正在处理名称parsing,则任何对本地主机的DNS请求都不应该发送到您的外部DNS提供程序,所以这应该不是问题。
为什么有人会这样做,我可以从头脑里想到的一个原因是,如果有人曾经使用一个网页创作工具,搞砸了负载的http:// localhost的绝对引用,但假设你的互联网服务供应商也在他们的DNS盒子托pipe,是一个远射。
但是, RFC 1537 确实规定:
关于是否将本地域添加到它已经有了广泛的讨论。 结论是“本地主机”。 将是最好的解决scheme; 给出的理由是:
“本地主机”本身被使用,并期望在一些系统上工作。
将127.0.0.1翻译成“localhost.my_domain”可能导致某些软件在不需要的时候使用环回接口连接到自己。
请注意,包含主机的所有域都应该有一个“localhost”logging。
所以严格来说,看起来你的ISP是正确的,包括本地主机,但不正确的使用完全合格的名称。
我不确定这个点会是什么…默认情况下,外部地址将被主机文件覆盖,这几乎总是将本地主机映射到127.0.0.1。
不过,一个默认的BIND区域文件确实包含了一个localhost区域。 从来没有真正想过。