¿Existe alguna forma de leer una cookie segura con JavaScript?
Traté de hacerlo usando document.cookie
y, por lo que puedo ver en este artículo sobre cookies seguras y la marca HttpOnly , no puedo acceder a una cookie segura de esta manera.
¿Alguien puede sugerir una solución alternativa?
javascript
security
cookies
tzam
fuente
fuente
Respuestas:
Los diferentes navegadores habilitan diferentes medidas de seguridad cuando se establece el indicador HTTPOnly . Por ejemplo, Opera y Safari no impiden que JavaScript escriba en la cookie. Sin embargo, la lectura siempre está prohibida en la última versión de los principales navegadores.
Pero, lo que es más importante, ¿por qué quiere leer una
HTTPOnly
cookie? Si es un desarrollador, simplemente desactive la marca y asegúrese de probar su código para xss. Le recomiendo que evite deshabilitar esta bandera si es posible. LaHTTPOnly
bandera y la "bandera segura" (que obliga a que la cookie se envíe a través de https) siempre deben estar configuradas.Si eres un atacante , querrás secuestrar una sesión . Pero hay una manera fácil de secuestrar una sesión a pesar de la
HTTPOnly
bandera. Todavía puede seguir la sesión sin conocer la identificación de la sesión. El gusano MySpace Samy hizo precisamente eso. Usó un XHR para leer un token CSRF y luego realizar una tarea autorizada. Por lo tanto, el atacante podría hacer casi cualquier cosa que pudiera hacer el usuario registrado.La gente tiene demasiada fe en la
HTTPOnly
bandera, XSS aún puede ser explotable. Debe establecer barreras alrededor de las funciones sensibles. Por ejemplo, el cambio de contraseña archivado debe requerir la contraseña actual. La capacidad de un administrador para crear una nueva cuenta debería requerir un captcha, que es una técnica de prevención de CSRF que no se puede omitir fácilmente con un XHR .fuente
El objetivo de las cookies HttpOnly es que no se puede acceder a ellas mediante JavaScript.
La única forma (excepto para aprovechar los errores del navegador) para que su script los lea es tener un script cooperativo en el servidor que lea el valor de la cookie y lo repita como parte del contenido de respuesta. Pero si puede hacerlo y lo haría, ¿por qué usar cookies HttpOnly en primer lugar?
fuente
Una de las formas es usar el inspector web safari, y en la pestaña de almacenamiento puede ver todas las cookies, httpOnly o no, y simplemente seleccionar la cookie Comando + C, para copiarla.
Una vez que tenga la cadena, puede analizarla fácilmente con cualquier analizador de cookies o javascript simple.
fuente