Vamos a ver cómo se puede proteger archivos de una web con contraseña usando .htaccess y .htpassword.
Hace unos días hable sobre proteger directorios con contraseña en .htaccess con .htpassword, quizás también os parezca interesante. Otra manera de protección de archivos o ficheros es la de permitir el acceso al directorio donde se encuentran solo a determinadas IPs con las funciones htaccess deny y allow.
Ya puestos a proteger… os recomiendo leer este post sobre proteger nuestro servidor de prácticas de hotlinking.
Proteger archivos con contraseña en .htaccess con .htpassword
Código necesario:
1 2 3 4 5 6 7 |
AuthType Basic AuthName "Zona Privada" AuthUserFile /rutaservidor/.htpasswd <Files "nombredelarchivo.html"> Require valid-user </Files> |
Os comento las líneas:
- La primera línea indica que se va a proceder a una autentificación de usuario.
- En la 2º indicamos el nombre que saldrá en la ventana de aviso.
- En ‘AuthUserFile‘ tenemos que poner la ruta donde se encuentra el archivo .htpassword. Es importante que se ponga la ruta desde la raíz del servidor, por ejemplo: ‘/httpwebs/autentificacion/.htpassword’.
- Por útimo tenemos que poner el nombre del archivo a proteger y que sea un usuario válido del .htpassword.
- En caso de querer proteger más archivos del mismo directorio, repetimos las 3 últimas líneas con los ficheros a proteger.
Ahora solo nos queda configurar el archivo .htpassword para dar de alta los usuarios con acceso al archivo:
1 2 |
usuario:password usuario2:password2 |
En este archivo podemos poner tantos usuarios y password como queramos, pero debemos poner cada usuario y pass en una línea.
Se debe escribir el nombre de usuario, seguido de 2 puntos y el password.
Subir los archivos por FTP
El archivo .htaccess lo tenemos que subir por FTP al directorio donde se encuentran los archivos a proteger, y el .htpassword a donde queramos y hayamos referenciado en el .htaccess.
Restringir el acceso por usuario
En caso de tener varios usuarios en el archivo .htpassword podemos limitar el acceso a un usuario o a varios de ellos.
El cambio sería en nuestro archivo .htaccess, debemos cambiar esta línea:
1 |
require valid-user |
por esta otra:
1 |
require user usuario |
En caso de querer meter más usuarios sería de la siguiente manera:
1 |
require user usuario1 usuario2 usuario3 |