Foros del Web » Programando para Internet » PHP »

User y password en PHP

Estas en el tema de User y password en PHP en el foro de PHP en Foros del Web. Buenas a todos, estube intentando de poner en practica el codigo de usuario y contraseña en Php, pero es inutil, Lo subi a mi servior ...
  #1 (permalink)  
Antiguo 14/01/2006, 15:50
 
Fecha de Ingreso: enero-2006
Mensajes: 5
Antigüedad: 18 años, 3 meses
Puntos: 0
User y password en PHP

Buenas a todos, estube intentando de poner en practica el codigo de usuario y contraseña en Php, pero es inutil,
Lo subi a mi servior y al ejecutar la pagina me aparece el recuadro pidiendome el nombre de usuario y contraseña, pero cuando pongo el user y la pass correcta no me translada a la parte HTML que dice que introduci bien las cosas, "Has podido acceder al area restringida" pensando que era porque lo habia nombredo pass.php decidi renombrearlo a pass.phtml y aun asi no me lleva.

Que estoy haciendo mal?

ACA EL CODE:
Código:
?php // Sistema de auntentificación
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;
}

$fich = file("passwords.txt");
$i=0; $validado=false;
while ($fich[$i] && !$validado) {
$campo = explode("|",$fich[$i]);
if (($PHP_AUTH_USER==$campo[0]) && ($PHP_AUTH_PW==chop($campo[1]))) $validado=true;
$i++;
}

if (!$validado) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;
}
?>
<!-- Html -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Ha conseguido el acceso a la <B>zona restringida</B> con el usuario <?php echo $PHP_AUTH_USER?>.
</body>
</html>
Y en el TXT Pongo Los Usuarios y sus respectivas contraeñas asi:
EJ: Dino|123


De antemano gracias!
  #2 (permalink)  
Antiguo 15/01/2006, 04:08
 
Fecha de Ingreso: noviembre-2004
Mensajes: 27
Antigüedad: 19 años, 4 meses
Puntos: 0
pero te sigue saliendo la ventana de login como si los datos no fueran correctos? o despues de introducir los datos se queda en blanco? o muestra el error? acabo de hacer la prueba y funciona bien....

Código PHP:
<?php // Sistema de auntentificación
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo 
'Authorization Required.';
exit;
}

$fich file("passwords.txt");
$i=0$validado=false;
while (
$fich[$i] && !$validado) {
$campo explode("|",$fich[$i]);
if ((
$PHP_AUTH_USER==$campo[0]) && ($PHP_AUTH_PW==chop($campo[1]))) $validado=true;
$i++;
}

if (!
$validado) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo 
'Authorization Required.';
exit;
}
?>
<!-- Html -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Ha conseguido el acceso a la <B>zona restringida</B> con el usuario <?php echo $PHP_AUTH_USER?>.
</body>
</html>
tal vez tengas que tomar en cuenta que si en el archivo txt tienes algo como....

UsuaRio|PasSword

debes escribir los datos exactamente como los tienes en el txt ya que si escribes usuario y password no funcionara hasta que escribas la U, R, P, y la S en mayúsculas.... o sea.... exactamente como esta en tu archivo
  #3 (permalink)  
Antiguo 15/01/2006, 22:42
 
Fecha de Ingreso: enero-2006
Mensajes: 5
Antigüedad: 18 años, 3 meses
Puntos: 0
Si a todo el mundo le anda

A todo el mundo le anda, agradesco tu respuesta, Yo pongo el user y la pass diferenciando Mayusculas y minusculas pero aun asi , al poner los datos y darle ENTER me vuelve a mostrar el formulario. Es muy raro.
Yo en el directorio de la web lo pogno asi:

miweb.com/pass.php (la cual contiene el codigo php)
miweb.com/passwords.txt (con CHMOD 777)

aun asi no entiendo porque cazzo no funca jeje. Seguire Probando :(
  #4 (permalink)  
Antiguo 16/01/2006, 00:47
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
a mí también me corrió

Probé tu ejemplo, tal cual lo pusiste y todo perfecto.

Sin embargo, este mensaje es más bien para decirte algo diferente, creo que tienes muchas fallas de seguridad en tu script.

passwords.txt
Poner un archivo de texto visible desde la web es una falla muy grave. Más aún si es un simple .txt y con todos los permisos.

No sé cómo pienses ingresar los datos de login y pass al documento TXT, quizá pensabas enviar el archivo por FTP o subirlo a tu server manualmente, en cuyo caso sería mejor que hicieras manualmente eso pero en tu archivo PHP, por decir, un array como:

Código PHP:
$usuarios_privilegiados=array("dino"=>"123""novia"=>"quiero""hambre"=>"tengo"); 
De esa manera no expones tan feo los datos.

header Authenticate
Este tipo de 'pop up' del navegador para que le des el login y password está bien. Pero no vas a poder checar tu información privada en cualquier lado. Podrías un día estar en tu trabajo, universidad, café internet o algún otro sitio en donde tengan activado un firewall y puede bloquearte ese POP UP.

Podrías en su lugar hacer un formulario sencillo para pasarle los datos de user & pass a tu aplicación, así puedes estar seguro de que siempre lo enviarás.

Evita hackers
Hay aplicaciones diseñadas para fastidiarle la vida a la gente. Entre ellas, algunas que generan passwords con algún algoritmo y permiten que tu login sea ingresado con cientos o miles de passwords diferentes hasta que dan con el sitio. Para evitarlo, o para hacerle más dificil la tarea a estos amigos de lo ajeno, bien podrías hacer alguna de las siguientes cosas (o cualquier otra que se te ocurra a ti):

a) bloquear ips
Interesante sería que si la aplicación detecta que se han hecho más de $n intentos, bloquee la IP del cliente y no permita accesar a donde guardas el oro.

b) mails de notificación
Podría serte útil si tu aplicación detecta que alguien se logeó de forma incorrecta y te manda un email a tu casilla de correo informándote que alguien quiere fastidiarte. Podrías autoenviarte la IP del intruso o tomar la información para tomar medidas necesarias.

c) passwords dinámicos
Imagina que vas a la casa de un amigo que acaba de instalar su Keylogger más reciente y todo lo que pulsa en el teclado queda grabado en un archivo especial que sólo tu amigo conoce. Si accedes a tu información en su inocente computadora, eres hombre muerto. Podrías por ejemplo hacer un password dinámico (tan complejo como quieras), por ejemplo que tu password sea algo como:

L12manzana - en donde la "L" es por que el día es Lunes, el 12 es porque estás haciendo la consulta el a las 12 de la tarde y manzana es porque le estás diciendo a tu servidor que te encuentras en un sitio público o inseguro ("manzana" sólo se podría utilizar una vez).

d) protégete de los programas
Cuando sacas una cuenta de correo en Yahoo o quieres hacer una compra, muchas aplicaciones están incluyendo en sus formularios un gráfico algo dificil de entender, que tienen letras y números y te piden que pongas esa información en un campo, así aseguran que eres una persona y no un programita fastioso que puede estar varios días tratando de encontrar el password correcto.

Conclusiones
Como vez, la seguridad es un tema fascinante en la que puedes invertir tu tiempo para asegurarte que nadie se robe la gallina de tus huevos de oro.

Suerte con tu aplicación !
  #5 (permalink)  
Antiguo 16/01/2006, 16:27
 
Fecha de Ingreso: enero-2006
Mensajes: 5
Antigüedad: 18 años, 3 meses
Puntos: 0
Excelente explicacion

Muy Buena Explicacion Amigo, bastantes cosas de las que pusiste no las habia tenido en cuanta,
te cuento, que el Code, es para hacerle una especie de "Vip" a mi web.
El tema de los usuarios los administraria yo, de tal manera que yo ingrese (en el codigo anterior el passwords.txt) los usuarios que yo quiera y que crea ue deben tener acceso al VIP.
Te agradeceria si me pudieras ayudar con el codigo ya que soy bastante nuevo en PHP. Si me puedes ayudar, creando el codigo, aplicando los temas que me señalaste asi de paso me aseguro de que nadie saquee "los huevos de oro" ;).

Muchisimas Gracias a todos por responder, igualmente seguire en mi intento por resolver el Code

Gracias!
  #6 (permalink)  
Antiguo 25/01/2006, 14:09
 
Fecha de Ingreso: mayo-2005
Mensajes: 14
Antigüedad: 18 años, 11 meses
Puntos: 0
Hola, bueno tengo este problema segun he leido este es una variable global de php que obtiene su valor mediante los encabezados de php

se obtiene header("WWW-Authenticate: Basic realm=\"mi dominio\"");

hasta ahi me queda todo claro pero si no quiero obtenerlo del modo anterior y si le asigno el valor digamos asi

$PHP_AUTH_USER=str_replace("'","\'",$_POST['login']);
$PHP_AUTH_PW=str_replace("'","\'",$_POST['password']);

en esta pagina donde le asigno el valor estas variables pues tiene el valor, pero cuando me paso a la siguiente pagina que es Main, imprimo las variables y ya no tienen valor.

esto header("WWW-Authenticate: Basic realm=\"mi dominio\"");
si me funciona bien, pero ya no lo quiero hacer de este modo, quiero que en un formulario se validen, pero el problema es que todos los demas php's que tengo utilizan estas variables $PHP_AUTH_USER, y si cambio eso, todo va a dejar de funcionar, no se si me explique jeje, es que luego estoy medio enredado
alguien me podria ayudar con esto, se los agradeceria mucho.

saludos

Dar Kanon
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:14.