我们的ISP还托管我们的外部DNS.默认情况下,它们包含localhost的条目.
例如:
localhost.example.com. 86400 IN A 127.0.0.1
当我要求他们删除它时,他们给了我一个艰难的时间,并说这就是Bind的工作方式.
我试图做一些研究,为什么我可能想要包含但我找不到多少.我确实发现至少有一个地方认为它是一个可能的XSS攻击向量.它看起来确实相当普遍,所以我在alexa的前20个网站域名中进行了查找,而且大多数都没有这样的条目,但有几个.其他一些人有一个条目,但他们没有指向127.0.0.1,而是指向另一个世界可路由的IP地址.
所以,无论如何,为什么我想在我的域的区域中使用locahost?他们没有任何问题吗?对此有什么最佳做法吗?它确实是一个我不知道的默认绑定事物吗?
谢谢
解决方法
localhost.example.com有时包含在内部DNS服务器上,以防止“localhost”请求泄露到互联网(对于John Smith在他的浏览器中输入http:// localhost /的情况,无论出于何种原因,他的解析器不会查看hosts文件,附加他的搜索路径(example.com)并开始询问名称服务器解析的内容.
您不必拥有localhost条目(并且如果您的ISP认为“BIND的工作方式”,则它们被误导或白痴:BIND服务于区域文件中的内容,如果它们删除了localhost行,它将停止服务那个记录).作为一个免费的例子,localhost.google.com无法解析,我打赌该域的NS正在运行BIND.
XSS向量是我从未想过的,但它是一个值得关注的问题:在公共DNS中使用localhost条目意味着任何被黑客攻击的计算机可能“在您的域中”(通过在127.0.0.1上运行Web服务器)并且可能做各种令人讨厌的事情.可能是一个足够的理由摆脱这个条目.