Foros del Web » Programando para Internet » PHP »

¿Como hace FaceBook para mantener las $_SESSION sin las Cookies y sin nada en la URL?

Estas en el tema de ¿Como hace FaceBook para mantener las $_SESSION sin las Cookies y sin nada en la URL? en el foro de PHP en Foros del Web. Saludos Amigos, puse una pregunta anterior que habia hecho en otro foro pero creo que era un poco compleja, asi que la voy a resumir ...
  #1 (permalink)  
Antiguo 02/09/2008, 10:40
Avatar de cambalacheweb  
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 100
Antigüedad: 15 años, 9 meses
Puntos: 0
Saludos Amigos, puse una pregunta anterior que habia hecho en otro foro pero creo que era un poco compleja, asi que la voy a resumir aqui.....

¿Como hace FaceBook lo siguiente para mantener las $_SESSION sin las Cookies? Se supone que las $_SESSION ó SID se puede usar transladandose los valores e ID por Cookies y la URL...

En FaceBook que esta hecho en PHP si tienes las Cookies desactivas igual las $_SESSION funcionan mientras recorres el Site, tus parámetros, usuario se conservan entre las Páginas !! Entonces... ¿Pasa FaceBook las $_SESSION o SID por la URL? ¿Si lo hacen porque nunca se ven esos códigos extensos de las SID y siempre se ven cortas las URL de FaceBook?

Espero me entiendan...

Gracias !!

Una Ayudita por favooorr !!

Última edición por GatorV; 02/09/2008 a las 14:41
  #2 (permalink)  
Antiguo 02/09/2008, 11:37
 
Fecha de Ingreso: agosto-2008
Mensajes: 21
Antigüedad: 15 años, 8 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.
  #3 (permalink)  
Antiguo 02/09/2008, 11:41
Avatar de cambalacheweb  
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 100
Antigüedad: 15 años, 9 meses
Puntos: 0
Amigo muchas gracias, déjame ponerme a entenderlo, pero si funciona te lo voy a agradecer mucho !!

Por cierto, ojala tambien se puedan usar arrays, pues como sabemos en $_SESSION = array() se puede... la idea es introducir dos o tres valores...

Bueno, voy a estudiar tu sistema !!

Gracias...

Si alguien tiene alguna otra opinion o manera, les agradezco tambien !!

Esta bastante complicado el asunto !!!

Última edición por GatorV; 02/09/2008 a las 14:42
  #4 (permalink)  
Antiguo 02/09/2008, 14:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: ¿Como hace FaceBook para mantener las $_SESSION sin las Cookies y sin nada

Hola cambalacheweb,

En efecto no es una forma sencilla de usar las sesiones pero es perfectamente posible hacerlo, solo que no puedes usar el arreglo $_SESSION directamente, tienes que implementar tu, tu propio motor de sesiones en el servidor, PHP no dispone de un motor así por lo que hay que hacer todo de cero.

Saludos.
  #5 (permalink)  
Antiguo 19/01/2009, 20:19
Avatar de [NiRVaNa]  
Fecha de Ingreso: abril-2004
Ubicación: Someplace In The Middle Of Nowhere!
Mensajes: 325
Antigüedad: 20 años
Puntos: 6
Respuesta: ¿Como hace FaceBook para mantener las $_SESSION sin las Cookies y sin nada

FajitaMaster, me quedo la duda de que hace el TOKEN... podrias explicar mejor cual es su funcionalidad? dentro del codigo que presentaste no le veo mucho uso....

Gracias...
__________________
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
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:16.