2010-12-16 21 views
8

Quiero hacer mi cookie de sesión HttpOnly. Sobre la base de this article, he añadido esto a mi application.ini:Zend Framework, Sesiones y HttpOnly

resources.session.cookie_httponly = true 

Por desgracia, cuando miro a la cookie de sesión en Firecookie, es no marcados como HttpOnly como he especificado. ¿Qué paso me estoy perdiendo?

alt text

+1

"cuando miro la cookie de sesión en Firecookie, no está marcada como HttpOnly "--- ¿cómo exactamente debería marcarse la cookie? ¿Qué esperabas ver allí? – zerkms

+0

'HttpOnly' ** es ** un paso para proteger de XSS: http://www.codinghorror.com/blog/2008/08/protecting-your-cookies-httponly.html – Sonny

+0

@Sonny: es un paso hacia proteger contra el secuestro de cookies, no xss. XSS es solo una forma de enviar las cookies, y 'HttpOnly' es la opción que no le permite leer las cookies de js. Por lo tanto, evita que la cookie se lea en js. No hay conexión entre XSS y 'HttpOnly'. – zerkms

Respuesta

9

intento en arranque hacer Zend_Session::setOptions(array('cookie_httponly' => true)); (en algún lugar antes de la sesión se inicializa primero) duro que debe trabajar con el archivo App.ini también.

+0

Esto funciona. Desearía poder entender por qué no está leyendo desde 'application.ini'. – Sonny

+0

eche un vistazo y le haré saber si encuentro algo. –

+2

Utilice 'Zend_Session :: setOptions (array ('cookie_httponly' => true));' en lugar de 'Zend_Session :: setOptions (array ('cookie_httponly', true))'; –

5

Agregue esto a su archivo application.ini.

phpSettings.session.cookie_httponly = true 
1

Para que sea 100% seguro.

El servidor no debe permitir la opción http trace. El rastreo de la opción http informa la identificación de la sesión. Si un atacante puede inyectar un applet de java, flash o javascript con ajax, el atacante también puede robar cookies incluso con el indicador httponly establecido ...