Contraseñas en un fichero o directorio web con .htaccess Opción 1 (simple)

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  o esta.

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.