CÓMO EVITAR ACCESO A FICHEROS O DIRECTORIOS CON APACHE
Con apache y .htaccess, a nivel de directorio, se puede evitar el acceso a ciertos ficheros o directorios, como pueden ser los archivos de configuración del sitio o el fichero .htaccess.La manera de hacerlo es:
<Files fichero_configuracion.php>
order allow,deny
deny from all
</Files>
Para proteger el fichero .htaccess sería:
<files .htaccess>
order allow,deny
deny from all
</files>
Primero hay que crear el fichero de contraseñas (".passwd") en una ruta fuera de la parte pública del proyecto. En el ejemplo el fichero está en "/home/usuarios/.passwd". Dentro de ese fichero se irán añadiendo los usarios (uno por línea) de la siguiente forma: "usuario1: password_usuario1". El password tiene que estar en MD5. Luego hay que configurar el fichero apache del sitio.
<directory "/var/www/html/proyecto/admin">
AuthName "Usuario"
AuthType Basic
AuthUserFile /home/usuarios/.passwd
Require valid-user
</directory>
AuthName "Usuario"
AuthType Basic
AuthUserFile /home/usuarios/.passwd
Require valid-user
La ruta y el nombre del fichero habrá que ponerlo en la sección "AuthUserFile".
Para recoger el usuario y el password introducidos en php hay que usar el array server:
- $_SERVER['PHP_AUTH_USER'] para el usuario
- $_SERVER['PHP_AUTH_PW'] para la contraseña
AuthName "Usuario"
AuthType Basic
AuthUserFile /home/usuarios/.passwd
<Files "nombredelarchivo.txt">
Require valid-user
</Files>
AuthName "Usuario"
AuthType Basic
AuthUserFile /home/usuarios/.passwd
Require valid-user
<Files "nombredelarchivo1.txt">
Require user usuario1 usuario2>
</Files>
<Files "nombredelarchivo2.txt">
Require user usuario3
</Files>
- nombredelarchivo1.txt: Solo pueden acceder los usuarios usuario1 y usuario2
- nombredelarchivo2.txt: Solo pueden acceder el usuarios usuario3