20-04-2011, 05:15 PM
En esta oportunidad le voy a explicar de una manera entendible, como proteger una carpeta o las carpetas de nuestra web de una forma fácil, primero entendamos que esta nota es para web que estén hospedadas en servidores que permitían modificar los archivos .htaccess y .htpasswd que la mayoría de las veces son los servidores pagos.
Bien sabiendo esto empecemos:
Lo primero que vamos hacer es crear la carpeta en el servidor que vamos a proteger la llamaremos protegida (o lo que quieran) o si ya la tenemos obviemos este paso.
Ahora miramos dentro de esa carpeta que hemos creado y revisamos que no se encuentre un archivo llamado .htaccess (tenemos que revisarlo directo del servidor dado que por vía ftp no aparece)
La mayoría de las veces no aparece pero por si a caso, ahora bien creamos en nuestra pc un archivo de texto que llamaremos - htaccess.txt y dentro metemos lo siguiente:
Debajo de esta línea--------
AuthUserFile /home/virtual/site0/fst/var/www/html/protegida/.htpasswd
AuthGroupFile /dev/null
AuthName Mi Web Carpeta Protegida"
AuthType Basic
<Limit GET>
require user webmaster
</Limit>
Antes de esta línea ------------
* Explicación: AuthUserFile = Es la dirección completa de nos da el servidor mas la ubicación de la carpeta que vamos a proteger y el archivos que tendra las claves, cámbienla por la suya.
* Explicación: AuthGroupFile = Déjenlo como esta.
* Explicación: AuthName = Es el titulo que aparecerá en el cuadro que pide login y contraseña.
* Explicación: AuthType = Déjenlo como esta.
* Explicación: require user = Delande esto escriban los usuarios que van a poder entrar a la carpeta. Ejemplo: require user tony raul hector, ósea que los logines o nicks serian: tony raul hector
Ahora creamos una archivo de texto que llamaremos htpasswd.txt que es el que contendra los logines y claves de esta forma por linea:
Debajo de esta línea--------
tony:vsfgf1546v5!
raul:1f54drt54g21
Antes de esta línea ------------
Ósea (login:clave) creo que se dieron cuenta que la clave es encriptada pero tranquilos les voy a dar un script que encontré en internet para encriptar claves pero primero terminemos con esto.
Ahora suben los dos archivos (htaccess.txt y htpasswd.txt ) a la carpeta de su servidor quieran proteger en este caso "/protegida" por medio de ftp pero de forma ASCII y los renombramos así: (htaccess.txt = .htaccess ) (htpasswd.txt = .htpasswd) y listo ya tenemos la carpeta protegida.
* Ahora les paso lo prometido un script para encriptar claves que encontré por internet:
[ot]Código PHP:
<?
//Script en PHP para encriptar contraseñas y poder usarlas en el archivo .htpasswd:
//Comentario añadido por amen:
// Tener el cuenta que el formato en un fichero de
// password es:
// login:pwdencriptado
if (!isset($submit)) {
?>
<BR>ENCRIPTAR PASSWORD
<FORM METHOD="POST" ACTION="encrypt.php">
<p>Password: <INPUT TYPE="TEXT" NAME="password"></p>
<p><input type="submit" value="Encriptar" name="submit"></p>
</FORM>
<?
}
if (isset($submit)) {
$password_encr=crypt($password,CRYPT_STD_DES);
echo "
ENCRIPTAR PASSWORD";
echo "
Encriptación de $password :";
echo "
$password_encr";
?>
<BR>
Nueva Encriptación:
<FORM METHOD="POST" ACTION="encrypt.php">
<p>Password: <INPUT TYPE="TEXT" NAME="password"></p>
<p><input type="submit" value="Encriptar" name="submit"></p>
</FORM>
<?
}
?>[/ot]
Bien sabiendo esto empecemos:
Lo primero que vamos hacer es crear la carpeta en el servidor que vamos a proteger la llamaremos protegida (o lo que quieran) o si ya la tenemos obviemos este paso.
Ahora miramos dentro de esa carpeta que hemos creado y revisamos que no se encuentre un archivo llamado .htaccess (tenemos que revisarlo directo del servidor dado que por vía ftp no aparece)
La mayoría de las veces no aparece pero por si a caso, ahora bien creamos en nuestra pc un archivo de texto que llamaremos - htaccess.txt y dentro metemos lo siguiente:
Debajo de esta línea--------
AuthUserFile /home/virtual/site0/fst/var/www/html/protegida/.htpasswd
AuthGroupFile /dev/null
AuthName Mi Web Carpeta Protegida"
AuthType Basic
<Limit GET>
require user webmaster
</Limit>
Antes de esta línea ------------
* Explicación: AuthUserFile = Es la dirección completa de nos da el servidor mas la ubicación de la carpeta que vamos a proteger y el archivos que tendra las claves, cámbienla por la suya.
* Explicación: AuthGroupFile = Déjenlo como esta.
* Explicación: AuthName = Es el titulo que aparecerá en el cuadro que pide login y contraseña.
* Explicación: AuthType = Déjenlo como esta.
* Explicación: require user = Delande esto escriban los usuarios que van a poder entrar a la carpeta. Ejemplo: require user tony raul hector, ósea que los logines o nicks serian: tony raul hector
Ahora creamos una archivo de texto que llamaremos htpasswd.txt que es el que contendra los logines y claves de esta forma por linea:
Debajo de esta línea--------
tony:vsfgf1546v5!
raul:1f54drt54g21
Antes de esta línea ------------
Ósea (login:clave) creo que se dieron cuenta que la clave es encriptada pero tranquilos les voy a dar un script que encontré en internet para encriptar claves pero primero terminemos con esto.
Ahora suben los dos archivos (htaccess.txt y htpasswd.txt ) a la carpeta de su servidor quieran proteger en este caso "/protegida" por medio de ftp pero de forma ASCII y los renombramos así: (htaccess.txt = .htaccess ) (htpasswd.txt = .htpasswd) y listo ya tenemos la carpeta protegida.
* Ahora les paso lo prometido un script para encriptar claves que encontré por internet:
[ot]Código PHP:
<?
//Script en PHP para encriptar contraseñas y poder usarlas en el archivo .htpasswd:
//Comentario añadido por amen:
// Tener el cuenta que el formato en un fichero de
// password es:
// login:pwdencriptado
if (!isset($submit)) {
?>
<BR>ENCRIPTAR PASSWORD
<FORM METHOD="POST" ACTION="encrypt.php">
<p>Password: <INPUT TYPE="TEXT" NAME="password"></p>
<p><input type="submit" value="Encriptar" name="submit"></p>
</FORM>
<?
}
if (isset($submit)) {
$password_encr=crypt($password,CRYPT_STD_DES);
echo "
ENCRIPTAR PASSWORD";
echo "
Encriptación de $password :";
echo "
$password_encr";
?>
<BR>
Nueva Encriptación:
<FORM METHOD="POST" ACTION="encrypt.php">
<p>Password: <INPUT TYPE="TEXT" NAME="password"></p>
<p><input type="submit" value="Encriptar" name="submit"></p>
</FORM>
<?
}
?>[/ot]