2012-02-29 9 views
5

A medida que el manual dice:

Nota: La clase Session no utiliza sesiones de PHP nativas. Es genera sus propios datos de sesión, ofreciendo más flexibilidad para los desarrolladores .

Pero cuando puedo almacenar algunos datos utilizando $this->session->set_userdata(array('sample_key' => 'sample_value'));, en phpinfo() puedo encontrar sample_key y sample_value en eso.

esperaba que la parte

no utiliza sesiones de PHP nativas

que se esconde lo que significa que las variables de sesión de phpinfo().

Siempre pensé que podría ser una falta de seguridad. ¿Podría ser?

Como parece, los valores son urlencode ed.

+2

'phpinfo()' las páginas no deben ser accesibles al público en ningún sistema de producción. Dudo mucho que alguien alguna vez haya usado los valores de sesión que se muestran como una razón para usar un sistema de sesión personalizado. – ThiefMaster

+2

El verdadero problema de seguridad sería tener salida 'phpinfo()' públicamente disponible. – ceejayoz

Respuesta

0

La "sesión" de CodeIgniter solo almacena los datos en una cookie y la llama sesión. Las sesiones nativas de PHP almacenan los datos en el servidor y un "sessionID" en una cookie.

En phpinfo, puede ver las variables, pero es su sesión, no puede ver la sesión de otro usuario.

+0

Muy falso. Hay varios controladores de sesión disponibles, incluido uno que almacena datos en la base de datos. – ceejayoz

+4

@ceejayoz: ¿Dónde dije que los controladores alternativos no estaban disponibles? Acabo de describir cuál es el comportamiento predeterminado. –

+0

La cookie simplemente almacena la ID de la sesión. Almacenar los datos de la sesión real en una cookie sería un riesgo de seguridad horrible, p. mantener "superusuario = 0" en una cookie del lado del cliente invitaría a todo tipo de cosas "divertidas". –

Cuestiones relacionadas