Ciber Geek >

.htaccess

Protegiendo tus directorios en Apache, ideal para WordPress

Empecemos con un viejo y conocido refrán: “En casa de herrero, cuchillo de palo“. Dicho esto, seguimos con el post, y estén atentos, ya que esto los puede salvar de un aprieto, y es super sencillo, tan sencillo que hasta yo podría hacerlo.

Evitar el listado de directorios en Apache

Seguramente estén pensando ¿A mi para que me sirve esto? Y bueno, no hay mejor forma que ejemplificando, por ejemplo, existen plugins en WordPress que almacenan archivos en la carpeta “wp-content/uploads”, muchos de estos son plugins que hacen backups o permiten descargar listados de emails, así que con un poco de Google-fu pueden llegar a encontrar muchas cosas.

http://www.google.com/#q=%22Index+of+%2Fwp-content%2Fuploads%2Fbackupbuddy_backups%22+zip

Pero los backups son aburridos y no se pueden vender, mejor vamos por un listado de mails.

https://www.google.com/search?q=”Index%20of%20%2Fwp-content%2Fuploads%2Fwp-mailinglist”%20csv

E incluso hay cosas mas interesantes, por ejemplo, el otro día encontré un sitio que vende un plugin para ayudar con el marketing de WordPress a 65 dolares y lo tiene disponible para descargar gratis en la carpeta “uploads”. Les avisé hace mas de una semana y ni siquiera intentaron bajarlo, o al menos cambiar la configuración. Pero bueno, ahora vamos a lo importante, como evitarlo.

Hay 2 formas de evitarlo (en Apache):

  1. Una forma de hacerlo, mas “artesanal”, es poniendo un archivo con el nombre “index.html” (sin comillas) en el directorio en el que quiere evitar el listado. El archivo puede estar vacío.
  2. La forma que recomendaría un sysadmin es utilizando el archivo “.htaccess” y agregando la siguiente linea:

    Options -Indexes
     

    Esto deshabilita el listado en el directorio en donde se encuentra el  archivo “.htaccess” y en todos los subdirectorios que se encuentren por debajo. 

listado directorio apache

Otra forma de hacerlo es con la directiva “IndexIgnore, por ejemplo, para que no se listen los archivos PHP se usa así “IndexIgnore *.php“, si quieren bloquear todo solo escriben el asterisco (wildcard).

Si tienen acceso al archivos de configuración de Apache esto también se puede hacer desde ahí, pero no es la situación mas habitual.