2009-12-23 11 views
7

Tuve un problema de autenticación en cakephp, al postular credenciales de un sitio externo la autenticación funcionaría, y luego se perdió de inmediato, con el sitio solicitando información de inicio de sesión nuevamente.¿Cuáles son las implicaciones de usar 'baja' seguridad en cakephp?

This guy determinaron que la cookie de la sesión cakephp estaba cambiando. Su solución fue establecer una seguridad baja.

parece que en la torta de seguridad medio o alto hace un doble control para árbitro ... pero con baja seguridad funciona bien cuando se hace clic auth- enlaces protegidos de los sitios externos como hotmail o yahoo

Esta solución también funcionó para mí, pero ¿qué estoy perdiendo al establecer cakephp en 'baja' seguridad?

Respuesta

7

Cuando la seguridad es alta, un nuevo identificador de sesión llegar generado en cada solicitud. Es prácticamente imposible crear una solución de inicio de sesión único entre dos aplicaciones al compartir una cookie de sesión en este caso, ya que Cake cambiará constantemente la ID de la sesión sin notificar a la otra aplicación.

Cuando la seguridad es media (o superior), session.referer_check está habilitado.

Cuando la seguridad es baja, no tiene ninguna de las características anteriores, pero sigue siendo tan segura como cualquier sitio web PHP/CMS promedio.

+0

¿Hay otras cosas que se desactivan cuando la seguridad está baja? –

+0

No, aparte del hecho de que el tiempo de espera de la sesión cambia, solo esas dos características están deshabilitadas. Vea aquí: http://book.cakephp.org/view/44/CakePHP-Core-Configuration-Variables – deizel

0

Creo que las únicas ramificaciones de configurar esto a bajo son que el tiempo de la sesión se multiplica por 300 en lugar de 10 o 100 para alta y media, respectivamente, y la sesión consulta que estás teniendo el problema.

Actualización: Si anteriormente tenía este conjunto a alta, que sería también perderá a cabo en la regeneración del ID de sesión entre peticiones.

2

Lo principal que sé es el tiempo de espera de la sesión, según los comentarios de la aplicación/config/core.php, en el que el tiempo de espera de la sesión se multiplicará por un número menor.

El libro respalda esta afirmación,

El nivel de seguridad de CakePHP. El tiempo de espera de sesión definido en 'Session.timeout' se multiplica de acuerdo con la configuración aquí. valores válidos: 'alto' = x 10 'medianas' = x 100 'bajo' = x 300 'alto' y 'medio' también permitir session.referer_check ID de sesión CakePHP también se regeneran entre solicitudes si 'Security.level' está configurado a 'alto'.

Ref: http://book.cakephp.org/view/44/CakePHP-Core-Configuration-Variables

Así que la otra cosa que parece ser la comprobación de referencia.

session.referer_check contiene la subcadena que desea verificar para cada Remitente HTTP. Si el Referer fue enviado por el cliente y no se encontró la subcadena, la identificación de la sesión incrustada se marcará como no válida. El valor predeterminado es la cadena vacía.

Por lo que parece, las cosas que se pierden son la capacidad de determinar con precisión con quién y con qué sesiones se está tratando.

Me encontré con un problema similar con la pérdida de sesiones y muchas respuestas apuntaban a usar $ this-> requestAction(), ya que básicamente desviaría una solicitud de la aplicación, por lo que puede parecer otra sesión creada con un alto seguridad.

La otra cosa que muchas respuestas de Google arrojaron fue apagar Session.checkAgent en su aplicación/config/core.php ya que eso significaba que la sesión no se verificaría. Esto al menos me impidió perder la información de sesión entre las solicitudes de página.

:)

+1

Para cualquiera que utilice Google, los valores 'Session.timeout' NO se multiplican en versiones recientes de Cake (probablemente 2.0 o 2.1 en adelante). –

+0

Aclaración, ['requestAction()'] (http://book.cakephp.org/2.0/en/controllers.html#Controller::requestAction) ejecuta una acción mediante programación a través de la lógica estándar de manejo de solicitudes como si fuera una realidad. solicitud. Sin uso de curl, etc. –

1

dos cosas sucede cuando se configura a

1) tiempo de espera 'bajo'

es más grande

2) si la sesión highjacking es fácil, entonces será más fácil! ya que la sesión dosent regenera entre solicitudes como cuando se establece en 'alta'!

y nada más.

por la forma en que puede cambiar de una página específica el nivel de seguridad o el tiempo de espera de sesión o ambos ... por lo que no es un no-undo-elección

Cuestiones relacionadas