2010-05-23 18 views
5

Actualmente tengo un sitio web que permite a mis visitantes iniciar sesión a través de un script simple que he pegado y escrito. Actualmente solo uso sesiones para mantener a los visitantes conectados. ¿Hay alguna ventaja al agregar cookies a mi sitio web para almacenar el estado de usuario registrado?Sesiones y cookies

¿O hay una manera mejor en conjunto?

usando PHP

+0

Creo que no hay otra manera ... si quiere almacenar el estado de inicio de sesión del usuario, TENDRÁ QUE usar las cookies. – Cristian

+0

@ Christian: No .... usted no * tiene * que, pero la otra solución es bastante fea. (páselo en la URL) – mpen

Respuesta

3

@Ramiro Gonzalez Maciel dijo que ha hecho ese guión, que no necesita marcos para tomar como ejemplos. Los marcos suelen tener scripts envueltos y bien ubicados.

Para responder a esta pregunta:

que suelo guardar en algunas cadenas de galletas MD5 que se combinan de su MD5 (contraseña) y su nombre de usuario, así que sabrán próxima tim que entra en mi sitio web que se inició la sesión en la yo no haría lo vuelva a conectarse

mi ejemplo:

<?php 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    // sql and escape stuff witch will return 1 if he has entered a valid login 
    if($sqlreturn == 1){ 
     // do login 
     $wraplogin = md5($username."-".md5($password)."-".SECRET_KEY); // I always define a define('SECRET_KEY', 'mysecretkey'); in global file. 
     // now you can store that $wraplogin in cookies and remember his login. Next time he enters the website, you read that cookie, compare it with what you have in your database and let him in. 
    } 
?>

Ahora sabemos que no es el mejor ejemplo, pero yo he utilizado personalmente en grandes sitios web (> 500.000 usuarios) y ninguno ha pirateado todavía :)

Esa es la ventaja en las cookies para la parte de inicio de sesión.

Lo mejor de la suerte.

+0

¿Alguna necesidad real de poner la contraseña en el hash md5? Estoy pensando en otro poco de datos aleatorios, la marca de tiempo de registro de usuarios tal vez, sería mejor. Sé que una cadena de longitud nunca podría ser brutalmente forzada sino solo para estar en el lado paranoico seguro. Por cierto, de lo que he averiguado la ventaja de las cookies es que puedes configurarlas para mantener al usuario conectado durante XX días. – Derek

+0

sí, principalmente puede configurar cualquier cosa en esa cookie de inicio de sesión, IP de usuario, etc. He añadido la contraseña para hacer que esa cadena sea un poco más compleja, pero como dije, puede poner cualquier cosa :) cualquier cosa que pueda verificarse luego. –

4

Si está usando sesiones PHP entonces usted está utilizando cookies. PHP almacena la identificación de la sesión en las cookies y los datos de la sesión en un archivo en el disco en su servidor web.

1

Los marcos web (Java Servlets y otros) suelen utilizar cookies para identificar sesiones; la otra opción habitual son los parámetros de URL. Entonces, suponiendo que esté utilizando un marco web, probablemente ya esté utilizando cookies para almacenar el ID de la sesión. El Web Framework usará este ID para identificar el objeto Session en cada solicitud. Aunque las cookies sobreviven a los reinicios del servidor, ya que están almacenadas en el navegador, los objetos Session normalmente no lo hacen a menos que haya configurado la persistencia de la sesión.

Si desea que los usuarios "inicien sesión automáticamente" como en la opción habitual "rembember me" que muchos sitios web implementan, debería persistir en los objetos de sesión si su marco así lo proporciona. O implemente un sistema similar, usando cookies para almacenar un "token conectado", y verificando ese token cuando el usuario accede al sistema para auto-registrarlos o enviarlos a una página de inicio de sesión. (Editar: como Mihai propone en otra respuesta)

Si desea implementar su propio método, le sugiero que consulte cómo los populares frameworks web implementan esto, especialmente los aspectos de seguridad y privacidad del almacenamiento de datos de usuario en las cookies.

Cuestiones relacionadas