Menú Principal

Sesion SQL

Iniciado por dimitrix, 17 Septiembre 2008, 17:27 PM

0 Miembros y 2 Visitantes están viendo este tema.

dimitrix

Vamos a ver, estoy programando una cosa en PHP/SQL, lo que no se bien es como hacer lo siguiente.

- Hacer que un user se cree una cuenta (se hacerlo)
- Hacer que se guarde datos tipo, nick, pass (en md5 o no) (se hacerlo)
- Hacer que al logearse se cree un cookie con un contenido (se hacerlo)

Lo que no se o mejor dicho no entiendo es que me recomendais que guarde en la cookie para saber que user es, me eplico, podría hacer una función random que al crear una cuenta se guarde como el valor "cookie", pero es un poco a lo desesperado, me gustaría saber si hay alguna forma mejor para hacer eso.

Muchas gracias.




Rentero

Me haces dudar ami también :)

¿Quieres saber que poner en la cookie para saber que user es?
Puedes poner un identificador o el nombre de usuario, por ejemplo.

Pero tendrás que validar que es un usuario correcto. Una solución sería tener el par user-password en la cookie y comprobar que ese pass corresponde a ese user.

Si solo pones un id o un nombre, puede falsearse facilmente.
Firmado.

dimitrix

- El problema de si pongo su nick es que cualquiera que edite la cookie ya podría entrar en la cookie de otro.

- El problema de si pongo la pass en la cookie aunque sea cifrada (MD5, etc...) sería que se puede conseguir con crackeadores y que si hay dos users con la misma password pues no funcionaría bien.

Si pongo un "id" no se puede falasear muy facilmente (creo XD), quiero decir, por ejemplo, si pongo un random que sea de "0" a "9" y de "A" a "F" con una longitud de 15 dígitos, pues sería muy complicado, pero creo que esto sería un poco "a la desesperada" ¿No?

Un saludo.




Rentero

Si pones el user-pass no hay problema. Salvo que le roben la cookie, pero es un riego asumible.

Si pones user-pass o id-pass no hay ningun problema con que dos usuarios tengan la misma contraseña. Porque tú lo que compruebas es que la contraseña de tal usuario sea tal. El único problema es que dos usuarios con un mismo nombre(que si lo permites es poco lógico) tengan la misma pass.

El tema de crackear un md5 es demasiado complicado, siempre que no sea una contraseña corta y muy usual. Ahora te pongo un par de ejemplos para salvarlo.

Que mas...uhmmm. ahh si, cuando hablo de un identificador me refiero a tener una colunma autoincrementable en la tabla "users", con lo que cada nuevo usuario registrado tendrá una id = (id_ultimo_registrado) + 1; eso es lo más habitual en sistema de usuarios, llevar un recuento de los que hay e identificarlos por un número.

Otra cosa...para complicar el crackeo de md5, por ejemplo:
Código (php) [Seleccionar]
<?php
$pass 
"blabla"//pass introducida por el usuario al registrarse.
$pass numAleatorio()."!.<".$pass."7bhw"//pass que irá a la bd y a la cookie posteriormente.
?>


O más facil todavia:
Código (php) [Seleccionar]
<?php
$pass 
md5(md5());
?>


También hay otros algoritmos de cifrado, pero con eso me parece bastante.

No se si me dejo algo...
Firmado.

dimitrix

Ok, gracias, no obstante si pongo lo de "autoincrementar" con cambiar de número ya se podría acceder a otra cuenta.
De todos modos como me gustaría que no existiese nada de pass ni de user en la cookie, lo haré del otor método que ya he dicho antes de dar por random un valor a cada usuario.

Muchas gracias por todo.




Rentero

Cita de: dimitrix en 17 Septiembre 2008, 20:00 PM
Ok, gracias, no obstante si pongo lo de "autoincrementar" con cambiar de número ya se podría acceder a otra cuenta.
De todos modos como me gustaría que no existiese nada de pass ni de user en la cookie, lo haré del otor método que ya he dicho antes de dar por random un valor a cada usuario.

Muchas gracias por todo.
Volvemos a lo mismo, si pones solo el id si podria cambiarse...si pones el id y la contraseña no xD.

Poner un numero aleatorio o el usuario-contraseña(bien cifrados) es exactamente igual de seguro, me atrevería ha decir que lo segundo es mejor.

Pero bueno, es lo que yo pienso.
Firmado.

SpiderNet

Que pasa si el navegador tiene bloqueadas las cookies???

De que otra forma podemos hacerlo???


Saludos!!!
Quieres un foro solo para principiantes
Visita  http://spidernet.forumotion.com

El miedo es libre, puedes sentirlo....

dimitrix

Eso sería problema del user, no obstante también se puede hacer así:

http://www.dominio.com/algo.php?session=af33e5838ffedb4d3d5233a92609cf09

Un saludo.




cassiani

Cita de: SpiderNet en 19 Septiembre 2008, 03:31 AM
Que pasa si el navegador tiene bloqueadas las cookies???
De que otra forma podemos hacerlo???

propagación por url, aunque igual que el anterior, tiene sus desventajas

SirLanceCC

Justamente hoy estaba pensando en eso...
¿Que tan bueno sería hacer algo así?

Cuando el usuario ingrese sacar obtener el timestamp
Guardar en la base de datos el timestamp
Guardar en las cookies el id de usuario y el timestamp (codificado quizas)
Cuando se desee verificar que el usuario es legitimo se compara el id y el timestamp

Ahora si quieren falsificar las cookies del usuario tendrían que saber el momento exacto en que ingresó por ultima vez. Y la contraseña no aparece por ningún lado

¿Como ven? ¿Es buena idea? ¿Es seguro?