2012-02-06 7 views

Respuesta

13

Lo que se envía al cliente es un identificador de sesión y no una variable de sesión. Estos identificadores de sesión generalmente se establecen como una cookie en el cliente. Por supuesto, si alguien agarra el identificador de sesión (por ejemplo, mediante el uso de ataques de scripts cruzados) desde el navegador o cliente del usuario, puede establecer el identificador de sesión en su propio cliente y hacerse pasar por el otro usuario.

Las variables de sesión, sin embargo, generalmente se refieren a los valores en $_SESSION matriz. Ver http://www.php.net/manual/en/function.session-start.php para un ejemplo. Estos valores nunca se envían a través de la red al cliente.

En lo que se refiere a la protección de identificadores de sesión, ya he explicado en el primer párrafo que están almacenados como cookies en el navegador. En una sesión HTTP, las cookies se transmiten entre el servidor y el cliente en texto sin formato. Esto es vulnerable a las escuchas (por ejemplo, un tipo en un enrutador a través del cual los paquetes pasan podrían capturar sus paquetes y leer el identificador de la sesión). La mejor manera de superar este problema es usar HTTPS en su lugar.

0

Supongo que depende de lo que quiere decir con "beneficio de seguridad". Si su aplicación está en un host compartido, y los datos de su sesión se guardan en una ubicación central no segura donde podría estar abierta para que otros usuarios la lean, entonces , técnicamente hay algunos beneficios de seguridad al encriptar sus sesiones. Sin embargo, sería un mejor uso de su tiempo y esfuerzo simplemente write your own session storage mechanism para que no los guarde en una ubicación insegura en primer lugar; especialmente teniendo en cuenta lo fácil que es hacer una encriptación completamente errónea y tener una falsa sensación de seguridad.

+0

+1 ... Creo que esto responde mejor a la pregunta. Las variables de sesión en sí mismas no están expuestas (siempre que no hagas algo estúpido que las exponga) PERO si estás en un host compartido mal configurado donde hay una ubicación universal de almacenamiento tmp/session, entonces otros sitios en el servidor pueden obtener acceso a ellos –

Cuestiones relacionadas