Nuestro ISP también aloja nuestro DNS externo. Por defecto incluyen una entrada para localhost.
Por ejemplo: localhost.example.com. 86400 IN A 127.0.0.1
Cuando les pido que lo eliminen, me hacen pasar un mal rato y dicen que es así como funciona Bind.
Intenté investigar un poco sobre por qué podría querer incluir eso, pero no pude encontrar mucho. Encontré al menos un lugar que pensaba que era un posible vector de ataque XSS. Parece ser bastante común, así que hice búsquedas en los 20 principales dominios de sitios web de alexa y la mayoría no tiene esa entrada, pero un par sí. Algunos otros tienen una entrada, pero en lugar de apuntar a 127.0.0.1, señalan a otro una dirección IP de ruta mundial.
De todos modos, ¿por qué querría tener locahost en la zona para mi dominio? ¿Hay algún problema con no tenerlo? ¿Hay algún tipo de mejor práctica con respecto a esto? ¿Es realmente una cosa Bind predeterminada que no conozco?
Gracias
Respuestas:
localhost.example.com
a veces se incluye en los servidores DNS internos para evitar que las solicitudes de "localhost" se filtren a Internet (para el caso en el que John Smith escribehttp://localhost/
en su navegador y, por cualquier motivo, su resolutor no busca en el archivo de hosts, agrega su ruta de búsqueda (example.com
) & comienza a preguntar a los servidores de nombres a qué se resuelve eso).No tiene que tener una entrada localhost (y si su ISP piensa que es "la forma en que funciona BIND", están equivocados o son idiotas: BIND sirve lo que está en el archivo de zona, y si eliminan la
localhost
línea, dejará de servir eso grabar). Como ejemplo gratuito,localhost.google.com
no se resuelve, y apuesto a que el NS para ese dominio ejecuta BIND.El vector XSS es algo en lo que nunca había pensado, pero es algo preocupante: tener una
localhost
entrada en su DNS público significa que cualquier máquina pirateada podría estar "en su dominio" (ejecutando un servidor web en 127.0.0.1) y potencialmente todo tipo de cosas desagradables. Probablemente sea una buena razón para deshacerse de la entrada.fuente
localhost.some.test
es solo otra víctima de no obtener el punto final adecuado. El razonamiento detrás de tenerlocalhost.
(¡tenga en cuenta el punto!) Es claro, pero los puntos a menudo se olvidan en las zonas DNS. Luego surgió para tener su propia vida misteriosa.localhost.
es algo que se supone que debemos tener, pero la práctica de tener unlocalhost
registro en cada zona que servimos ha fallado de favor (Esta pregunta en realidad me llevó a ese agujero de conejo RFC hace 5 años, tal vez actualice mi respuesta con el nuevo RFC y los pensamientos de ese hilo de comentarios más tarde :))Suponiendo que su resolución de nombre interna está manejando la resolución de nombre correctamente, cualquier solicitud de DNS para localhost nunca debe ir a su proveedor de DNS externo, por lo que esto no debería ser un problema en absoluto.
Una razón por la que alguien haría esto, que se me ocurre fuera de mi cabeza, es si alguien alguna vez usó una herramienta de autoría web que se equivocó con una carga de referencias absolutas a http: // localhost , pero eso supone que su ISP también alojaba en sus cajas de DNS y es una posibilidad remota.
Sin embargo, el RFC 1537 hace especificar:
Hablando estrictamente, parece que su ISP es correcto para incluir localhost, pero incorrecto para usar el nombre completo.
fuente
Note that ...
lenguaje (supongo que en respuesta a los posibles problemas de XSS de los que habríamos empezado a estar conscientes en 1996 :) 1537 Explica por qué está en las plantillas BIND.localhost
zona debe existir en el servidor (por lo que si recibe una solicitud simplemente "localhost" no lo pasa por la cadena al siguiente servidor), eso es un lejos de incluirlocalhost
enexample.com
la zona de say (creaciónlocalhost.example.com
), lo cual es igualmente explícito al decir que no debe hacerlo debido a los posibles efectos secundarios no deseados. La expectativa es que "localhost" sea un dominio especial, mágico y completamente calificado por derecho propio.No estoy seguro de cuál sería el punto ... De manera predeterminada, el archivo de hosts anularía la dirección externa, que casi siempre asigna localhost a 127.0.0.1.
Sin embargo, un archivo de zona BIND predeterminado incluye una zona localhost. Realmente nunca pensé en ello.
fuente