Articulo de referencia

Índice del directorio del servidor web

www.wikipedia.org , el índice de Wikipedia, una enciclopedia en línea multilingüe. Aquí, la página principal del sitio web ofrece contenido en varios idiomas. Cuando un cliente ...

www.wikipedia.org , el índice de Wikipedia, una enciclopedia en línea multilingüe. Aquí, la página principal del sitio web ofrece contenido en varios idiomas.

Cuando un cliente HTTP (generalmente un navegador web ) solicita una URL que apunta a una estructura de directorios en lugar de a una página web real dentro de la estructura de directorios, el servidor web generalmente servirá una página predeterminada, que a menudo se denomina página principal o de "índice".

Un nombre de archivo común para dicha página es , 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 un servidor está configurado para admitir scripts del lado del servidor , la lista generalmente incluirá entradas que permiten que el contenido dinámico se use como página de índice (por ejemplo , , , , , , ) aunque puede ser más apropiado seguir especificando 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 archivo se controla mediante la directiva [ 1 ] en el archivo de configuración principal del servidor o en el archivo de configuración para ese directorio . Es posible no usar extensiones de archivo en absoluto, y ser neutral con respecto a 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 .index.htmlindex.cgiindex.plindex.phpindex.shtmlindex.jspdefault.aspindex.html.phpindex.html.aspxDirectoryIndex

Si el servidor no puede encontrar un archivo con ninguno de los nombres listados en su configuración, puede devolver un error (normalmente 403 Index Listing Forbidden o 404 Not Found ) o generar su propia página de índice que liste los archivos en el directorio. Normalmente, esta opción, a menudo denominada autoindex, también es configurable. [ 2 ]

Historia

Un esquema donde el servidor web sirve un archivo predeterminado por subdirectorio ha sido compatible desde NCSA HTTPd 0.3beta (22 de abril de 1993), [ 3 ] que sirve por defecto index.htmlel archivo en el directorio. [ 3 ] [ 4 ] Este esquema fue adoptado posteriormente por CERN HTTPd desde al menos 2.17beta (5 de abril de 1994), cuyo valor predeterminado admite Welcome.htmly welcome.htmlademás del originado por NCSA index.html. [ 5 ]

Los servidores web más recientes suelen admitir este esquema de archivos predeterminado de una forma u otra; esto suele ser configurable, siendo index.htmluno de los nombres de archivo predeterminados. [ 6 ] [ 7 ] [ 8 ]

Implementación

Una página de índice de Apache .

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 geolocalización . También es posible evitar este paso, por ejemplo, mediante la negociación de contenido .

En los casos en que no exista ningún archivo conocido index.*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 lo proporciona el módulo mod_autoindex [ 9 ] y se controla mediante la Options +Indexesdirectiva [ 10 ] en los archivos de configuración del servidor web . Estas listas de directorios automatizadas a veces representan 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. [ 11 ] Dicha configuración de seguridad incorrecta [ 12 ] también puede facilitar otros ataques, como un ataque de recorrido de ruta o de directorio . [ 13 ]

Actuaciones

Al acceder a un directorio, los distintos métodos de indexación disponibles pueden tener un impacto diferente en el uso de los recursos del sistema operativo ( RAM , tiempo de CPU , etc.) y, por lo tanto, en el rendimiento del servidor web.

Procediendo del método más rápido al más lento , aquí está la lista:

  • utilizando un archivo de índice estático, por ejemplo: index.html, etc.;
  • utilizando una función del servidor web generalmente llamada autoindex (cuando no existe un archivo de índice) para permitir que el servidor web genere automáticamente la lista de directorios utilizando su módulo interno;
  • utilizando un archivo interpretado leído por el intérprete de programas interno del servidor web, por ejemplo: index.php;
  • utilizando un programa ejecutable y compilado CGI, por ejemplo: index.cgi.

Referencias

  1. "mod_dir - Servidor HTTP Apache" . httpd.apache.org . Consultado el 30 de mayo de 2014 .
  2. ASF Infrabot (22-05-2019). "Listados de directorios" . Fundación Apache: proyecto de servidor HTTPd . Recuperado el 16-11-2021 .
  3. 1 2 "WWW-Talk Abr-Jun 1993: NCSA httpd versión 0.3" . 1997.webhistory.org .
  4. "NCSA HTTPd DirectoryIndex" . 31 de enero de 2009. Archivado del original el 31 de enero de 2009.
  5. "Historial de cambios de W3C httpd" . 5 de junio de 1997. Archivado del original el 5 de junio de 1997.
  6. "mod_dir - Apache HTTP Server Versión 2.4 § Directiva DirectoryIndex" . httpd.apache.org . Archivado del original el 12/11/2020 . Consultado el 13/01/2021 .
  7. "Documentación de NGINX | Servir contenido estático" . docs.nginx.com . Archivado del original el 11/11/2020 . Consultado el 13/01/2021 .
  8. "Documento predeterminado <defaultDocument> | Microsoft Docs" . docs.microsoft.com . Archivado del original el 8 de diciembre de 2020. Consultado el 13 de enero de 2021 .
  9. "mod_autoindex - Servidor HTTP Apache Versión 2.4" . httpd.apache.org . Consultado el 13 de enero de 2021 .
  10. "core - Apache HTTP Server Versión 2.4 § Directiva de opciones" . httpd.apache.org . Consultado el 13 de enero de 2021 .
  11. "IBM Docs" . IBM . 8 de marzo de 2021. Consultado el 7 de mayo de 2021 .
  12. "A6:2017-Configuración incorrecta de seguridad" . OWASP . Consultado el 7 de mayo de 2021 .
  13. "Path Traversal" . OWASP . Consultado el 7 de mayo de 2021 .