ISPは外部DNSもホストしています。デフォルトでは、localhostのエントリが含まれています。
例:localhost.example.com。 867.0 IN A 127.0.0.1
それを削除するように彼らに頼んだとき、彼らは私に苦労を与え、それがBindが機能する方法であると言います。
私はなぜそれを含めたいのかについていくつかの調査を試みましたが、あまり見つけることができませんでした。 XSS攻撃の可能性があると思われる場所を少なくとも1つ見つけました。それはかなり一般的であるように思われるので、私はAlexaから上位20のウェブサイトドメインでルックアップを行いました。他のいくつかはエントリを持っていますが、127.0.0.1を指すのではなく、別の世界のルーティング可能なIPアドレスを指します。
とにかく、なぜドメインのゾーンにロカホストが必要なのですか?それを持たないことで彼らの問題はありますか?これに関して何らかのベストプラクティスはありますか?それは本当に私が知らないデフォルトのバインドのものですか?
ありがとう
localhost.example.com
は、 "localhost"リクエストがインターネットに漏洩するのを防ぐために内部DNSサーバーに含まれていることがあります(John Smithがブラウザでhttp://localhost/
と入力した場合、および何らかの理由でリゾルバが検索しない場合hostsファイル、検索パス(example.com
)を追加し、ネームサーバーに解決先を問い合わせます)。
Localhostエントリを持っている必要はありません(ISPがそれが「BINDの動作方法」であると考えている場合、それらは誤っているか、ばかです:BINDはゾーンファイルの内容を提供し、localhost
行はそのレコードの提供を停止します)。無料の例として、localhost.google.com
は解決せず、そのドメインのNSがBINDを実行していると思います。
XSSベクトルは私が考えたことがないものですが、それは懸念事項です。パブリックDNSにlocalhost
エントリがあることは、ハッキングされたマシンが「ドメインに」ある可能性があることを意味します(127.0でWebサーバーを実行することにより) .0.1)あらゆる種類の厄介なことを行う可能性があります。おそらく、エントリを削除するのに十分な理由です。
内部の名前解決が名前解決を適切に処理していると仮定すると、localhostに対するDNS要求は外部のDNSプロバイダーに送信されないため、これはまったく問題になりません。
理由誰かがこれを行う理由の1つは、誰かが一度失敗したWebオーサリングツールを使用した場合です http:// localhost への絶対参照が大量に含まれていますが、ISPもDNSボックスでホストしており、長い目で見ていると想定しています。
ただし、 RFC 1537doesは以下を指定します。
ローカルドメインをそれに追加するかどうかについては、広範な議論が行われています。結論は、その「localhost」でした。最良の解決策です。与えられた理由は:
「localhost」自体が使用され、一部のシステムで動作することが期待されています。
127.0.0.1を "localhost.my_domain"に変換すると、一部のソフトウェアが意図しないループバックインターフェイスを使用して自身に接続する可能性があります。
ホストを含むすべてのドメインには、 "localhost" Aレコードが含まれている必要があります。
厳密に言えば、ISPがlocalhostを含めるのは正しいように見えますが、完全修飾名を使用するのは正しくないようです。
ポイントがどうなるかわかりません...デフォルトでは、外部アドレスはホストファイルによって上書きされます。これはほぼ常にlocalhostを127.0.0.1にマップします。
ただし、デフォルトのBINDゾーンファイルにはlocalhostゾーンが含まれています。本当に考えたことはありません。