elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Dudas login, registrar...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Dudas login, registrar...  (Leído 4,010 veces)
‭lipman


Desconectado Desconectado

Mensajes: 3.062



Ver Perfil WWW
Dudas login, registrar...
« en: 11 Diciembre 2008, 14:12 pm »

Buenas. Quiero hacer un sistema de registros y loggin y me entran varias dudas.

Cuando te registras, el user y el password lo sueles guardar en la base de datos imagino, pero, hay que ponerle alguna protección especial? o es como cualquier otro dato? Tienen los datos de la base de datos algún tipo de peligro?

Al loguearte, quiero poner tambien algo ponga "Recordarme", pero he oido que guardar la contraseña en las cookies es un gran error. Como podría solucionarlo?

Saludos y gracias


En línea

:ohk<any>


Desconectado Desconectado

Mensajes: 1.744


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Re: Dudas login, registrar...
« Respuesta #1 en: 11 Diciembre 2008, 14:39 pm »

Pues al guardarlas en la base de datos debes antes encriptarla, para eso puedes usar sha1, md5 u otros que estan disponibles. (si es a eso a lo que te refieres)

Y por lo de "recordarme", pues si es un error# pero de nada sirve prohibirlos  :P
Si te preocupan las cookies mejor haz que tu sitio sea inmune a los XSS  ;D


En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.048


Nueva Vida


Ver Perfil WWW
Re: Dudas login, registrar...
« Respuesta #2 en: 11 Diciembre 2008, 16:14 pm »

Podria ser algo como esto, aqui se usa el md5 para tratar de proteger la clave:

$usr = "PneRoto";
$pwd = md5("mimamamequieremucho");
$sql ="insert into usuario values ('$usr','$pwd')";
mysql_query($sql);

 ::) ::) ::) ::) ::)
En línea

‭lipman


Desconectado Desconectado

Mensajes: 3.062



Ver Perfil WWW
Re: Dudas login, registrar...
« Respuesta #3 en: 11 Diciembre 2008, 17:09 pm »

Muchas gracias a los dos  ;D a ver si lo acabo ya de una vez xD

Saludoss

PD: prefiero no abrir un post, aunque no tiene nada que ver pero, los posts de los foros se guardan en una tablita de esas? Quiero decir... se puede poner para guardar en una celda un texto sin especificar el tamaño máximo? Puede guardar muchos carácteres una tabla?

PD2: como seria para descifrar de md5?
« Última modificación: 11 Diciembre 2008, 19:20 pm por lipman » En línea

& eDu &


Desconectado Desconectado

Mensajes: 580



Ver Perfil
Re: Dudas login, registrar...
« Respuesta #4 en: 11 Diciembre 2008, 22:13 pm »

Buenas. Quiero hacer un sistema de registros y loggin y me entran varias dudas.

Cuando te registras, el user y el password lo sueles guardar en la base de datos imagino, pero, hay que ponerle alguna protección especial? o es como cualquier otro dato? Tienen los datos de la base de datos algún tipo de peligro?

Al loguearte, quiero poner tambien algo ponga "Recordarme", pero he oido que guardar la contraseña en las cookies es un gran error. Como podría solucionarlo?

Saludos y gracias
1º Puedes cifrar la contraseña con algún algoritmo tuyo o ya creado por ejemplo:
Código
  1. <?
  2. $pass = crypt("lipmanesfeo");
  3. echo $pass;
  4. ?>
Tienen algún peligro las bases de datos... bueno si alguien consiguiera acceder a ella y no estubieran encriptadas las contraseñas y fueran importantes... adiós! Si sabes lo que es una PTC(paid to click) los listos no encriptan las contraseñas y muchos usuarios ponen como contraseña las cuentas de su PayPal y AlertPay... entonces los dueños... sacan provecho al no estar cifrada la contraseña.
2º Puedes guardar la IP donde pidieron que se guarden las contraseñas es decir:
Código
  1. <?
  2. $guardar = mysql_query("INSERT INTO tabla_usuarios  (IP,USUARIO,CONTRASEÑA) VALUES ('ip','usuario','contraseña'");
  3. ?>
y cuando entren que haga un if
Código
  1. <?
  2. if (la ip == la ip guardada){
  3. ?>
  4. <input type="text" value="usuario"/>
  5. <input type="text" value="contraseña"/>
  6. <?
  7. }else{
  8. ?>
  9. <input type="text" />
  10. <input type="text" />
  11. <?
  12. }
  13. ?>

No se si te sirvió...
En línea

‭lipman


Desconectado Desconectado

Mensajes: 3.062



Ver Perfil WWW
Re: Dudas login, registrar...
« Respuesta #5 en: 11 Diciembre 2008, 22:36 pm »

Es cierto... :D No se me ocurrió jugar con la IP  :P eso para lo de "Recordar" me servirá, muchas gracias, aunque me he dado cuenta del mensaje subliminal xD.

Pero si encriptas la clave con crypt o con md5... no puedes desencriptarla de ninguna manera?

Saludoss

Edito: según he visto "MD5 es un algoritmo de "una sola vía", o "One Way", es decir que no lo puedes descifrar, una forma sería hacer un "brute force", pero te tomaría demasiado tiempo." Así que he de suponer que es segura =P y con respecto a la de crypt " No existe una función de descifrado, ya que crypt() utiliza algoritmos no reversibles."

Entonces nada más creo, muchas gracias de nuevo ^^
« Última modificación: 11 Diciembre 2008, 22:48 pm por lipman » En línea

& eDu &


Desconectado Desconectado

Mensajes: 580



Ver Perfil
Re: Dudas login, registrar...
« Respuesta #6 en: 12 Diciembre 2008, 16:39 pm »

Me equivoqué, para cifrar es:

$pass = crypt("lapass","lipmanesfeo");

¿Que si se puede descifrar desde la funcion crypt...?
Creo que no, en el login haces lo siguiente:
Código
  1. <? if(isset($_post['usuario'])){
  2. $contraseña = $_POST['contraseña'];
  3. if(crypt($contraseña,"limpanesfeo") == lacontraseñaguardada){
  4. Login
  5. }else{
  6. COntraseña incorrecta
  7. }
  8. }
  9. ?>
  10. <form action="login.php" method="post"/>
  11. Usuario
  12. <input type="text" name="usuario"/>
  13. Contraseña
  14. <input type="password" name="contraseña"/>
  15. <input type="submit" value="Login"/>
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Dudas login, registrar...
« Respuesta #7 en: 13 Diciembre 2008, 17:17 pm »

Código
  1. <?php
  2. # |-(B)-(S)-(M)-|
  3.  
  4. echo '<font color="red"> Comprobando usuario... </font> <br>';
  5. $db_user = 'root';
  6. $db_pass = '';
  7. $db_name = 'users';
  8. $db_host = 'localhost';
  9.  
  10. $connection = mysql_connect($db_host, $db_user, $db_pass) or die (mysql_error());
  11. mysql_select_db($db_name, $connection) or die (mysql_error());
  12.  
  13.  
  14. $user = htmlentities($_POST['user']);
  15. $pass = htmlentities(md5($_POST['pass']));
  16.  
  17. $num = 0;
  18. $query = mysql_query("SELECT * FROM users WHERE user='$user'",$connection);
  19.  
  20. if ($num < mysql_num_rows($query))
  21. {
  22. $duser = mysql_result($query,0,"user");
  23. $dpass = mysql_result($query,0,"password");
  24. } else {exit(" - Cab*** el usuario introducido no existe o.O");}
  25.  
  26. if ($pass != $dpass) {exit(" - Pero seras cab*** (?) pon la p**a contraseña correctamente xD");}
  27.  
  28.  
  29. echo "Hello, my name is Ahmed... I'am the dead terrorist....I'm g0nna kill ya !!!";
  30.  
  31. ?>

un script que tenia por ahí xD

yo siempre guardo cookies cuando quiero que me recuerde.... o si no sessiones... de todos modos mientras la contraseña este cifrada no veo porque no. Lo de la ip no es muy muy utill si el usuario tiene una ip dinámica por ejemplo..
y procura limpiar variables por sqli...





Saludos
« Última modificación: 13 Diciembre 2008, 17:30 pm por #bsm » En línea

‭lipman


Desconectado Desconectado

Mensajes: 3.062



Ver Perfil WWW
Re: Dudas login, registrar...
« Respuesta #8 en: 14 Diciembre 2008, 01:24 am »

Al final me ha quedado parecido al tuyo #bsm y eso antes de mirarlo xD.

Con lo de respecto a la IP, ya habia pensado en lo de IP dinámica (más que nada porque tengo una xD) y se me habia ocurrido comparar los 3 primeros trozos de la IP, es decir 255.255.255.255 puesto que creo recordar que con IP dinámica solo cambia el último (y ahora empiezo a dudar si tambien cambia el penúltimo =P).

El único "problema" sería si alguien spoofeara la IP =S o si por algún casual alguien tuviera la misma IP (esto no se si es posible xD)

Un saludo
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Dudas login, registrar...
« Respuesta #9 en: 16 Diciembre 2008, 05:58 am »

#bsm tu código tiene sql inyección ya que htmlentities no filtra las comillas simples, mejor usas htmlspqcialchars con ent_quotes aunque tampoco es una solución válida para cuando si quieras ingresar datos con comillas, para eso hay una función especializada para evitar una inyección sql y se llama mysql_real_escape_string

por ejemplo..
Código
  1. mysql_query('SELECT * FROM users WHERE user=\''.mysql_real_escape_string($user).'\'',$connection);

Claro que esto tampoco funciona si no encerramos la variable en comillas para que no pueda escapar.

Eso de guardarlas cookies puedes guardar solo un $SESSION[] con phpsessid, de esta forma puedes almacenar su user, id, hasta su pass sin que nadie tenga acceso a ella ni el rpopio usuario ya que todo estará guardado en el servidor mostrando unicamente el hash, ahora también puedes agregar datos como ip y el explorador para comprobar que el es el verdadero usuario con esa cookie y si no es entonces que sea expulsado y evitamos un robo de cookies ya que si alguien te la roba no podrá hacer nada a menos que sepa la estructura de la sesión misma y spofear la ip mas el explorador aunque lo veo dificil y mas aún si no delatas el código.. hasta puedes cifrar todo eso en md5 como comprobador (no es buena idea si es propenso a ataques ddos  :P).

Eso que alguien dijo de hacer el sitio inmune a xss depende del sistema que tan interactivo sea, si es muy interactivo es dificil llegar a ese nivel aunque si se puede evitar el uso malicioso de un xss como evitar los xsrf con tokens y verificación de referers, etc mas una prevención de robo de cookies como lo dije mas arriba.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines