Sie sind auf Seite 1von 3

Proteger carpetas con .htaccess y .

htpasswd (Cristalab)

http://www.cristalab.com/tutoriales/proteger-carpet...

Artculos

Foros

Tutoriales

Tips

Cursos

Tags

Buscar

Ejemplos Comics Anime FAQ Colaborar Registrate

Proteger carpetas con .htaccess y .htpasswd


7580 de clabLevel Otros artculos de _CONEJO 62,533 visitas php apache

Aprende a proteger directorios de tu pgina web mediante archiv os .htaccess de una f orma sencilla. Algunos paneles de control tienen la opcin integrada, pero nunca est de ms saber hacerlo manualmente. Sobre todo porque as es ms extendible.

Re quis itos
Al menos la enseanza primaria o equiv alente Tener conceptos mnimos sobre .htaccess y .htpasswd y como editarlos Necesidad de proteger una carpeta del alcance de los mirones, o encontrar div ersin en hacerlo 7 minutos de su tiempo

Conocie ndo a .hta ccess y .htpa sswd


As se llaman los dos archiv os ms importantes para modif icar cosas en nuestro serv idor. No tienen ni extensin ni nombre, simplemente son as. Contienen texto plano, por lo que pueden ser editados con el Bloc de Notas, el Programmers Notepad, Gedit, nano, wim, ... cualquier cosa que trabajo con texto plano (Word NO) El archiv o .htaccess adems de para proteger carpetas, sirv e entre otras cosas para utilizarlo con el mod_rewrite de Apache y nos salgan urls cortas, como la de este tutorial (Si lo ests ley endo en Cristalab). En esta ocasin, .htaccess establecer el tipo de permiso necesario y qu usuarios pueden acceder a qu archiv os, mientras que .htpasswd guardar el nombre de usuario y contrasea de cada uno de ellos.

.htacce s s
Este archiv o lo colocaremos en la carpeta que queremos proteger. Editemos el .htaccess con algo similar a : AuthUserFile /ruta/absoluta/hacia/.htpasswd AuthName AquiPuedesPonerLoQueQuieras AuthType Basic require user test123 Veamos lnea a lnea AuthUserFile /ruta/absoluta/hacia/.htpasswd Le tenemos que indicar la ruta absoluta (del serv idor) hacia nuestro archiv o .htpasswd, por norma general el archiv o de contraseas se pone fuera del alcance de la web , es decir, f uera de la carpeta public_html o similar, como por ejemplo "/home/usuario /.htaccess". En un serv idor decente y con accesso por SSH o similares es muy f cil saber cual es la ruta absoluta hacia tu web, en caso contrario puedes utilizar este pequeo php para descubrirla :

1 de 3

21/01/09 21:32

Proteger carpetas con .htaccess y .htpasswd (Cristalab)

http://www.cristalab.com/tutoriales/proteger-carpet...

<?php die($_SERVER["DOCUMENT_ROOT"]); ?>

Recuerden: Dejen siempre el archivo .htpasswd fuera del alcance pblico, en caso de que eso no sea posible, cambienle el nombre por algo del estilo .aSf5cHJ9D. No evitars que puedan descubrir tus usuarios y contraseas, pero le pones el camino bastante ms dificil. AuthName AquiPuedesPonerLoQueQuieras Muestra el nombre del sitio, te aparecer una v entanita preguntando el nombre de usuario y contrasea con un mensaje similar a "Est intentando entrar a AquiPuedesPonerLoQueQuieras, debe especif icar un nombre de usuario y contrasea". Da exactamente igual lo que pongas, no tiene un ef ecto sobre el nombre real de la carpeta o archiv os. AuthType Basic Indica que el tipo de autentif icacin es bsico. require user test123 Indica que el nico usuario que puede entrar es test123, cualquier otro -aunque la contrasea sea correcta- no ser v lido. Tenemos v ariaciones de esa lnea como por ejemplo : require user test123 otrousuario unusuariomas Donde especif icar 2, 3 o ms usuarios. Tambien tenemos : require valid-user Donde podrn entrar todos los usuarios especif icados en el archiv o .htaccess (u otro nombre si as lo indicaste en la primera lnea. Podemos incluso proteger slo algunos archiv os de la manera : AuthUserFile /ruta/absoluta/hacia/.htpasswd AuthName AquiPuedesPonerLoQueQuieras AuthType Basic <Files "miwebporno.html"> Require valid-user </Files> <Files "misvideosxxx.html"> Require user test123 </Files> Como v en admite mucho juego.

.htpas s w d
Me ref erir a .htpasswd como el nombre del archiv o, pero como y a dije anteriormente, si no lo pueden esconder de la v ista pblica, al menos cmbienle el nombre. Este archiv o contiene una lista de nombres de usuario y contraseas, en f ormato usuario:contrasea y cada nombre-clav e en una lnea independiente, por ejemplo : test123:12JvVkeJRgm8A otrousuario:$1$UNHEaBiV$NzwYQ8NhjzIOUmFyfGyrO/

2 de 3

21/01/09 21:32

Proteger carpetas con .htaccess y .htpasswd (Cristalab)

http://www.cristalab.com/tutoriales/proteger-carpet...

Como v en, la contrasea est encriptada, por lo general con una v ariacin del algoritmo MD5 realizada por Apache. Pueden encontrar en Internet v arios sitios en donde encriptar las contraseas (este por ejemplo). Si disponemos de un serv idor apache en local o acceso SSH a nuestro serv idor web, podemos ejecutar el comando htpasswd para que nos cree el archiv o, o nos dev uelv a la cadena en la misma consola : htpasswd -nb usuario contrasea Esta lnea imprimir en consola la cadena a agregar (manualmente) a nuestro archiv o .htpasswd htpasswd -cb .htpasswd usuario contrasea Esta otra escribir en el .htpasswd la cadena corespondiente. La documentacin del comando htpasswd es corta pero bastante interesante. En cualquiera de los casos, hasta el momento hemos de aadir manualmente las parejas usuario:contrasea a nuestro archiv o .htpasswd, lo cual puede ser bastante engorroso, para ello podemos utilizar PHP para modif icar el contenido de ese archiv o, por ejemplo un script sencillo que se limita a aadir los nombres de usuario y contraseas : <?php $archivo = $_SERVER["DOCUMENT_ROOT"].'/.xAF3fvV4'; $contenido = $username.":".crypt($password); if (is_writable($archivo)) { if (!$handle = fopen($archivo, 'a')) { echo "No se puede abrir el archivo ($archivo)"; exit; } if (fwrite($handle, $contenido) === FALSE) { echo "No se puede escribir en el archivo ($archivo)"; }

fclose($handle); } else { echo "El archivo $archivo no se puede escribir"; } ?> Nos fijamos en dos cosas : A la f uncin f open le pasamos el parmetros "a" de append (aadir a continuacin), por lo que slo aade nuev os usuarios. Usamos la f uncin de php crypt , en v ez del MD5 que supuestamente es el algoritmo que se debe usar. La razn de usar crypt en v ez de md5, es que es algo ms completa, y perf ecta para este ejemplo.

Enlace s de Inte r s
Documentacin de Apache sobre .htaccess Funcin cry pt de PHP

Inform acin adicional


Si tienes alguna pregunta de este tutorial; puedes hacerla aqui en los f oros

Cristalab | Artculos | Foros | Comics | Tutoriales | Tutoriales de Flash | Ejemplos | Anime | Tips | FAQ | Colaborar

3 de 3

21/01/09 21:32

Das könnte Ihnen auch gefallen