Nasz dostawca usług internetowych obsługuje również nasz zewnętrzny DNS. Domyślnie zawierają one wpis dla localhost.
Na przykład: localhost.example.com. 86400 IN A 127.0.0.1
Kiedy poprosiłem ich o usunięcie, trudno mi powiedzieć, że tak właśnie działa Bind.
Próbowałem przeprowadzić badanie, dlaczego mogę chcieć to uwzględnić, ale nie znalazłem wiele. Znalazłem co najmniej jedno miejsce, które myślało, że to możliwy wektor ataku XSS. Wygląda na to, że jest dość powszechny, więc szukałem w 20 najpopularniejszych domenach witryny z Alexa i większość nie ma takiego wpisu, ale kilka z nich ma. Kilka innych ma wpis, ale zamiast wskazywać na 127.0.0.1, wskazują inny adres IP na świecie.
W każdym razie, dlaczego miałbym chcieć mieć locahost w strefie dla mojej domeny? Czy mają jakieś problemy z jego brakiem? Czy istnieje jakaś najlepsza praktyka dotycząca tego? Czy rzeczywiście jest to domyślna rzecz Bind, której nie jestem świadomy?
Dzięki
źródło
Odpowiedzi:
localhost.example.com
jest czasem dołączany do wewnętrznych serwerów DNS, aby zapobiec wyciekaniu żądań „localhost” do Internetu (w przypadku, gdy John Smith piszehttp://localhost/
w przeglądarce i z jakiegokolwiek powodu jego resolver nie szuka w pliku hosts, dołącza swoją ścieżkę wyszukiwania (example.com
) i zaczyna pytać serwery nazw, co to rozwiązuje).Nie musisz mieć wpisu hosta lokalnego (a jeśli twój dostawca usług internetowych myśli, że „tak działa BIND”, to są oni wprowadzeni w błąd lub idioci: BIND obsługuje to, co jest w pliku strefy, a jeśli usunie
localhost
wiersz, przestanie to wyświetlać rekord). Jako darmowy przykład,localhost.google.com
nie rozwiązuje, i założę się, że NS dla tej domeny działa BIND.Wektor XSS jest czymś, o czym nigdy nie myślałem, ale budzi niepokój:
localhost
wpis w publicznym DNS oznacza, że każda zhakowana maszyna może być „w Twojej domenie” (uruchamiając serwer WWW na wersji 127.0.0.1) i potencjalnie wszelkiego rodzaju paskudne rzeczy. Prawdopodobnie wystarczający powód, aby pozbyć się wpisu.źródło
localhost.some.test
jest to kolejna ofiara, która nie ma właściwego zakończenia kropki. Przyczyny posiadanialocalhost.
(zwróć uwagę na kropkę!) Są jasne, ale kropki są często zapominane w strefach DNS. Potem powstało własne tajemnicze życie.localhost.
jest czymś, co powinniśmy mieć, ale praktyka posiadanialocalhost
zapisu w każdej obsługiwanej strefie wypadła przysługi. (To pytanie w rzeczywistości doprowadziło mnie do tego, że królicza RFC 5 lat temu, może zaktualizuję moją odpowiedź nowym RFC i przemyślenia z tego wątku komentarza później :))Zakładając, że twoje wewnętrzne rozpoznawanie nazw obsługuje prawidłowe rozpoznawanie nazw, każde żądanie DNS dla localhost nigdy nie powinno być kierowane do zewnętrznego dostawcy DNS, więc nie powinno to stanowić problemu.
Jednym z powodów, dla których ktoś mógłby to zrobić, o czym mogę myśleć od samego początku, jest to, że ktoś kiedyś użył narzędzia do tworzenia stron internetowych, które spieprzyło się z mnóstwem absolutnych odniesień do http: // localhost , ale zakłada, że twój Dostawcy usług hostingowych również hostowali swoje skrzynki DNS i to długa szansa.
Jednak RFC 1537 nie określa:
Mówiąc ściśle, wygląda na to, że Twój dostawca usług internetowych ma prawo do uwzględnienia hosta lokalnego, ale nieprawidłowo używa pełnej nazwy.
źródło
Note that ...
język (domyślam się w odpowiedzi na potencjalne problemy z XSS, o których powinniśmy wiedzieć w 1996 roku :) 1537 Wyjaśnia jednak, dlaczego jest to w szablonach BIND.localhost
strefa powinna istnieć na serwerze (więc jeśli otrzyma żądanie tylko zwykły „localhost”, nie przekazuje go do następnego serwera), to jest daleko od włączenia sięlocalhost
wexample.com
strefę powiedzenia (tworzenielocalhost.example.com
), co jest równie jednoznaczne, mówiąc, że nie powinieneś tego robić z powodu możliwych niezamierzonych efektów ubocznych. Oczekuje się, że „localhost” będzie odrębną, magiczną, w pełni kwalifikowaną domeną.Nie jestem pewien, o co chodzi ... Domyślnie adres zewnętrzny zostałby zastąpiony przez plik hosts, który prawie zawsze mapuje localhost na 127.0.0.1.
Domyślny plik strefy BIND zawiera jednak strefę hosta lokalnego. Nigdy tak naprawdę o tym nie myślałem.
źródło