Cuando un cliente HTTP (generalmente un navegador web ) solicita una URL que apunta a una estructura de directorio en lugar de una página web real dentro del directorio, el servidor web generalmente proporcionará una página predeterminada, que a menudo se denomina principal o "índice " página.
Un nombre de archivo común para una página de este tipo es index.html
, pero la mayoría de los servidores HTTP modernos ofrecen una lista configurable de nombres de archivo que el servidor puede usar como índice. Si el servidor está configurado para el apoyo de script del lado del servidor , la lista se suele incluir entradas que permiten el contenido dinámico para ser utilizado como la página de índice (por ejemplo , , , ) a pesar de que puede ser más apropiado que todavía especificar la salida HTML ( o ) , ya que esto no debe darse por sentado. Un ejemplo es el popular servidor web de código abierto Apache , donde la lista de nombres de archivos está controlada por la directiva [1] en el archivo de configuración del servidor principal o en el archivo de configuración para ese directorio.index.php
index.shtml
index.jsp
default.asp
index.html.php
index.html.aspx
DirectoryIndex
. Es posible arreglárselas sin extensiones de archivo y ser neutral con los métodos de entrega de contenido, y configurar el servidor para que elija automáticamente el mejor archivo a través de la negociación de contenido .
Si el servidor no puede encontrar un archivo con alguno de los nombres enumerados en su configuración, puede devolver un error (generalmente 404 No encontrado ) o generar su propia página de índice que enumera los archivos en el directorio. También puede devolver un listado de índice 403 prohibido . Por lo general, esta opción también es configurable.
Historia
Un esquema en el que el servidor web sirve un archivo predeterminado por subdirectorio ya se ha admitido en NCSA HTTPd 0.3beta (22 de abril de 1993), [2] que por defecto sirve el index.html
archivo en el directorio. [2] [3] Este esquema ha sido adoptado por CERN HTTPd desde al menos 2.17beta (5 de abril de 1994), que es compatible por defecto Welcome.html
y welcome.html
además del que se origina en NCSA index.html
. [4]
Los servidores web posteriores suelen admitir este esquema de archivo predeterminado de una forma u otra; esto suele ser configurable, index.html
siendo uno de los nombres de archivo predeterminados. [5] [6] [7]
Implementación
En algunos casos, la página de inicio de un sitio web puede ser un menú de opciones de idioma para sitios grandes que utilizan la orientación geográfica . También es posible evitar este paso, por ejemplo, utilizando la negociación de contenido .
En los casos en que no index.html
exista dentro de un directorio determinado, el servidor web puede configurarse para proporcionar una lista generada automáticamente de los archivos dentro del directorio. Con el servidor web Apache, por ejemplo, este comportamiento es proporcionado por el módulo mod_autoindex [8] y controlado por la Options +Indexes
directiva [9] en los archivos de configuración del servidor web . Estos listados de directorios automatizados son a veces un riesgo de seguridad porque enumeran archivos confidenciales que pueden no estar destinados al acceso público, en un proceso conocido como ataque de indexación de directorios. [10] Una configuración incorrecta de seguridad de este tipo [11] también puede ayudar en otros ataques, como un ataque transversal de ruta o directorio . [12]
Referencias
- ^ "mod_dir - Servidor HTTP Apache" . httpd.apache.org . Consultado el 30 de mayo de 2014 .
- ^ a b "WWW-Talk abril-junio de 1993: NCSA httpd versión 0.3" . 1997.webhistory.org .
- ^ "NCSA HTTPd DirectoryIndex" . 31 de enero de 2009. Archivado desde el original el 31 de enero de 2009.
- ^ "Historial de cambios de W3C httpd" . 5 de junio de 1997. Archivado desde el original el 5 de junio de 1997.
- ^ "mod_dir - Servidor Apache HTTP Versión 2.4 § Directiva DirectoryIndex" . httpd.apache.org . Archivado desde el original el 12 de noviembre de 2020 . Consultado el 13 de enero de 2021 .
- ^ "NGINX Docs | Sirviendo contenido estático" . docs.nginx.com . Archivado desde el original el 11 de noviembre de 2020 . Consultado el 13 de enero de 2021 .
- ^ "Documento predeterminado | Microsoft Docs" . docs.microsoft.com . Archivado desde el original el 8 de diciembre de 2020 . Consultado el 13 de enero de 2021 .
- ^ "mod_autoindex - Servidor Apache HTTP Versión 2.4" . httpd.apache.org . Consultado el 13 de enero de 2021 .
- ^ "núcleo - Directiva de opciones de Apache HTTP Server versión 2.4 §" . httpd.apache.org . Consultado el 13 de enero de 2021 .
- ^ "Documentos de IBM" . IBM . 2021-03-08 . Consultado el 7 de mayo de 2021 .
- ^ "A6: 2017-Error de configuración de seguridad" . OWASP . Consultado el 7 de mayo de 2021 .
- ^ "Recorrido de ruta" . OWASP . Consultado el 7 de mayo de 2021 .