Наш интернет-провайдер также размещает наш внешний DNS. По умолчанию они включают запись для localhost.
Например: localhost.example.com. 86400 IN A 127.0.0.1
Когда я попросил их удалить его, они усложнили мне жизнь и сказали, что так работает Bind.
Я попытался выяснить, почему я могу захотеть включить это, но не смог найти многого. Я нашел по крайней мере одно место, которое считало возможным вектор атаки XSS. Кажется, это довольно распространено, поэтому я просмотрел 20 лучших доменов веб-сайтов от alexa, и у большинства из них такой записи нет, но у пары есть. У некоторых других есть запись, но вместо того, чтобы указывать на 127.0.0.1, они указывают на другой IP-адрес с возможностью маршрутизации в мире.
В любом случае, зачем мне иметь локальный хост в зоне для моего домена? Есть ли у них какие-либо проблемы с тем, чтобы этого не было? Есть ли какая-нибудь передовая практика по этому поводу? Действительно ли это функция привязки по умолчанию, о которой я не знаю?
Спасибо
localhost.example.com
иногда включается во внутренние DNS-серверы, чтобы предотвратить утечку запросов "localhost" в Интернет (в случае, когда Джон Смит вводит http://localhost/
в своем браузере и по какой-либо причине его преобразователь не смотрит в файл hosts, добавляет свой путь поиска (example.com
) и начинает спрашивать серверы имен, к чему это разрешается).
Вам не обязательно иметь запись localhost (и если ваш интернет-провайдер считает, что «так работает BIND», они либо заблуждаются, либо идиоты: BIND обслуживает то, что находится в файле зоны, и если они удаляют localhost
строка перестанет обслуживать эту запись). В качестве бесплатного примера, localhost.google.com
не разрешается, и я уверен, что NS для этого домена работает с BIND.
Вектор XSS - это то, о чем я никогда не думал, но это вызывает беспокойство: наличие localhost
запись в вашем общедоступном DNS означает, что любая взломанная машина может находиться «в вашем домене» (при запуске веб-сервера на 127.0.0.1) и потенциально делать всевозможные неприятные вещи. Наверное, достаточно веская причина, чтобы избавиться от записи.
Предполагая, что ваше внутреннее разрешение имен правильно обрабатывает разрешение имен, любой DNS-запрос для localhost никогда не должен отправляться вашему внешнему DNS-провайдеру, и поэтому это не должно быть проблемой.
Одна причина Зачем кто-то сделал бы это, о чем я могу подумать, если бы кто-то однажды использовал инструмент веб-разработки, который облажался с загрузкой абсолютных ссылок на http: // localhost, но это предполагает, что ваш интернет-провайдер также размещал на своих DNS-серверах, и это далеко не так.
Тем не мение, RFC 1537 делает уточнить:
Было много дискуссий о том, следует ли добавлять к нему локальный домен. Был сделан вывод, что "localhost." было бы лучшим решением; Были указаны следующие причины:
Сам "localhost" используется и должен работать в некоторых системах.
перевод 127.0.0.1 в localhost.my_domain может привести к тому, что некоторое программное обеспечение будет подключаться к самому себе с помощью интерфейса обратной связи, когда оно этого не хочет.
Обратите внимание, что все домены, содержащие хосты, должны иметь в себе запись «localhost».
Строго говоря, похоже, что ваш интернет-провайдер правильно включает localhost, но неверно использует полное имя.
Я не уверен, в чем будет смысл ... По умолчанию внешний адрес будет замещен файлом hosts, который почти всегда сопоставляет localhost с 127.0.0.1.
Однако файл зоны BIND по умолчанию включает зону localhost. Никогда особо не задумывался об этом.