Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/09/2008, 11:37
FajitaMaster
 
Fecha de Ingreso: agosto-2008
Mensajes: 21
Antigüedad: 16 años, 5 meses
Puntos: 3
Respuesta: ¿Como hace FaceBook para mantener las $_SESSION sin las Cookies?

SESSION es algo entendido de varias formas... hay 2 formas mas comunes


SESSION --> en local mediante cookies


SESSION --> en el servidor remoto


En el caso de facebook, ellos guardan la session en el servidor.

Empezamos:

Tengo un formulario con mis dos campos:

Usuario:
Contraseña:


Facebook coje estos dos valores, y los comprueba con la cuenta. Sin son verdaderos, ellos crean un TOKEN ...

Un TOKEN es un ID de session que se esta pasando por el HEADER de tu navegador, aunque no lo veas.

Hay gente que creen que esto se puede falsificar, pero el HEADER es un valor calculado que solo el navegador que haya metido el "usuario" + "contraseña" puede tener.

Imaginate el siguente TOKEN que he creado despues de verificar el user + clave

Código PHP:
session_start();
// SESSION TOKEN
function tokenize() {
    
$a =  session_id();
    
$b $_SERVER['HTTP_USER_AGENT'];
    
$c date('hisjmywz');
    
$token md5($a.$b.$c);
    return 
$token;


Facebook mantiene esta SESSION por un TOKEN que se autodestruye cuando cierras el navegador.

Código PHP:

function verificar_usuario() {
// Aqui compruebas si el usuario es quien es y devuelves una cadena si lo es = OK
}


        
$verificar_usuario verficar_usuario();

    if ( 
$verificar_usuario == "OK" ) {
    
    
$_SESSION['token'] = tokenize();
    
$tokenx tokenize();
    
session_register("tokenx");

    
header("location:facebook_seccion_privado.php");
    exit;

    } else {
    
    
header"Location:facebook_seccion_login.php" ); 
    exit();
        
    }

    
$_SESSION['token'] = tokenize();
    
$tokenx tokenize();
    
session_register("tokenx"); 

Espero que esto sea medio claro. Esto puede tardar en entenderse, pero es asin.