2011-12-17 13 views
7

¿Los sitios web como la tienda de Facebook iniciaron sesión en los usuarios en cookies (lado del cliente) o sesiones (lado del servidor)? Mis pruebas indican que hacen lo primero.¿Los sitios web como la tienda de Facebook registraron usuarios en cookies o sesiones?

+0

Si almacenan la información que el usuario ha iniciado sesión en una cookie, todos pueden iniciar sesión como alguien que no es. Por lo tanto, es * probablemente * no es así;) –

+0

Las sesiones a menudo se codifican con un valor aleatorio almacenado en una cookie. La cookie generalmente no contendrá ningún dato identificable de consecuencia, y si lo hace, será validada en el lado del servidor por otros medios. –

+0

cookie store unique id.El servidor usa esta identificación única para la autenticación. –

Respuesta

12

En general, la información confidencial como el usuario que está conectado actualmente debe almacenarse en el servidor - recuerde, las cookies pueden leerse y modificarse libremente por el usuario.

Lo que probablemente esté viendo es la cookie de sesión que relaciona a un cliente específico con una sesión específica en el servidor, es decir, el servidor sabe qué sesión usar para usted. En este caso, lo único que contiene la cookie es una ID de sesión larga y aleatoria: es larga y aleatoria, por lo que no puede ser adivinada fácilmente por un atacante.

El acto de robar la cookie de sesión de otro usuario se llama session hijacking.

Otros detalles:

+0

Gracias Pekka ... pero ¿puedes explicarlo más ... pensé que una sesión en un servidor es un archivo ... ¿por qué necesitarías ambas? – jon

+1

Las cookies se pueden cifrar y usar sumas de comprobación para evitar modificaciones o lecturas: P – Esailija

+0

@jon lee sobre cómo funcionan las sesiones (por ejemplo, en el capítulo Sesión en el manual de PHP). La cookie es necesaria para que Facebook sepa qué usuario tiene qué sesión. –

2

Usan sesiones del lado del servidor en conjunción con una galleta.

La cookie contiene una ID, esta ID se envía a FaceBook y el servidor verifica los detalles de la sesión con esa ID.

+0

Gracias Richard, pero ¿por qué necesitan la sesión en absoluto? .. cuando estamos hablando de sesiones estamos hablando para, por ejemplo: $ _SESSION ['user'] – jon

4

Creo que la idea detrás de $_sessions es que es mucho más rápido y eficiente para que el servidor procese su propia información, en lugar de recibir información masiva del cliente.

lo veo de esta manera:

Usted (el servidor) y un amigo (el cliente) son chismes sobre su otra amiga Cindy, ¿Su amigo le da todos los detalles de la información acerca de su (color de pelo, altura , etc ...)? No, eso sería una pérdida de tiempo. Es mucho más rápido para usted procesar la información que ya conoce sobre Cindy (en el archivo $_session, del lado del servidor) y solo recibirá información exclusiva ($_cookies) de su amigo (el cliente).

Eficiente: "Oye, ¿oíste lo que hizo Cindy anoche?"

No eficiente: "Oye, ¿oíste lo que Cindy con cabello castaño, ojos azules, complexión media, etc ... hizo anoche?"

Obviamente, esto no resume por completo $_sessions y $_cookies, pero tal vez ayude a alguien a entender la administración eficiente de datos a corto plazo.

0

Probalby usan sesiones y luego almacenan cierta información en las cookies, como, user_id ha iniciado sesión con session_id = .../luego registra la sesión de esa session_id para ver si el usuario todavía está conectado. Creo que es un desperdicio de recursos. En mi opinión, guardo información crítica en las sesiones y gran información en las cookies

Cuestiones relacionadas