Si gestionas un sitio web, por simple que sea, en ocasiones puede ser interesante proteger un fichero o directorio con usuario y contraseña. Lo podemos realizar usando el fichero .htaccess (Apache claro).
Por ejemplo puede ser interesante tener un directorio con información delicada (p.e. financiera) a compartir con un cliente o asesoría, o que queremos compartir sólo con ciertos usuarios. Si lo realizamos de esta manera podrán entrar con un navegador el cual les solicitará introducir el usuario y contraseña. Aquí os dejo como:
Proteger un directorio:
Crear el directorio e introducir un fichero llamado .htaccess con un contenido de este tipo:
AuthUserFile /usr/www/dominio/directorio1/.htpasswd AuthType Basic AuthName "Nombre del Sitio" require valid-user
La primera línea indica la ruta del fichero donde tenemos el fichero .htpasswd. Esta puede cambiar a tu gusto (y de hecho la cambiaremos en los ejemplos). Este lo podemos crear desde el terminal con: htpasswd -c /usr/www/dominio/directorio1/.htpasswd usuario.
También puedes generar ese fichero desde esta web.
Si lo que queremos proteger es un fichero concreto podemos así:
<files "fichero.aaa"> AuthUserFile /opt/guide/dominio/.htpasswd AuthType Basic AuthName "Nombre" require valid-user </files>
- Otra opción es ponerlo en el fichero de configuración de Apache de una manera similar.
<Directory "/srv/www/htdocs/dominio/Directorioprotegido"> AuthType Basic AuthName "Acceso restringido" AuthUserFile "/srv/www/htdocs/dominio/contraseñas/.htpasswd" Require valid-user </Directory>
Evidentemente para esto necesitamos acceso al terminal y muchos usuarios de hosting compartidos no lo tienen. En un próximo artículo pondremos cómo usar una base de datos para autentificación, usando también cifrados más seguros.

Pingback: Proteger una aplicación web con contraseñas en una base de datos: Usar las de CMS como Drupal | Smythsys's Weblog