martes, 18 de septiembre de 2012

Protección de directorios web a través de .htaccess

Esta sea quizá la manera más fácil de proteger un directorio web de la vista del público en general. Al intentar acceder, saltará una ventana pidiendo que se introduzca un usuario y una contraseña con un mensaje personalizado:


Este tipo de protección se realiza a través de los archivos .htaccess situados en cada directorio. Se ha de tener cuidado pues de colocarlo en el directorio erróneo, podremos bloquear el tráfico a toda nuestra página.

Para proteger un directorio de esta manera, deberemos subir al mismo el archivo .htaccess (con FTP, directamente a través de la línea de comandos...) con el siguiente contenido:

AuthUserFile /usr/www/dirname/.htpasswd
AuthGroupFile /dev/null
AuthName "The Secret Page"
AuthType Basic

<Limit GET POST>
require valid-user
</Limit>

Este archivo indicará que el directorio está protegido y que los diferentes usuarios y contraseñas se encuentran en el archivo /usr/www/dirname/.htpasswd
Por supuesto deberemos sustituir ese valor por el correspondiente a nuestro caso, pero con cuidado que sea el correcto, de lo contrario nada funcionará. El valor de este campo debe ser la ruta al archivo .htpasswd desde la raíz de nuestro servidor.
En los servidores web de los que no seamos administradores, deberemos conseguir esta ruta, bien a través del comando pwd en la línea de comandos o bien con algún script en PHP o bien preguntando al servicio técnico de tu hosting.

Una vez tenemos el archivo .htaccess deberemos crear el .htpasswd. Para ello existen dos maneras: a través de la línea de comandos o con una herramienta online (lee más abajo).

  • Línea de comandos

Si tienes acceso a tu servidor, probablemente prefieras hacerlo así, pues es bastante sencillo y tienes mayor flexibilidad. Para ello, en el directorio que desees proteger introduce el siguiente comando:
htpasswd -c .htpasswd usuario
Donde deberás sustituir usuario por el nombre que desees utilizar. A continuación se te pedirá la contraseña y que la repitas y listo. Se habrá creado el archivo .htpasswd con el contenido que deseamos.

Ya lo puedes probar para ver si todo funciona correctamente.

Si quieres añadir más usuarios, hazlo a través del comando
htpasswd .htpasswd usuario
y se añadirán.


  • Herramienta online
Si no tienes acceso a la consola, puedes acceder al sitio http://tools.dynamicdrive.com/password/ y seguir los pasos que ahí se indican para generar el archivo .htpasswd que luego habrás de subir a tu servidor.



Fuente: http://www.technotrade.com/htaccess.html