Resumen. Sí, esto es posible. No es un error de navegador. Es parte de la funcionalidad según lo diseñado de las cookies. No hay ningún navegador que esté a salvo de esto. Las cookies son una tecnología antigua y su modelo de seguridad solo está ligeramente integrado con el resto de la web. Los detalles son desordenados y feos.
Los detalles sangrientos
El sitio blog.example.com
puede establecer cookies con alcance blog.example.com
o con alcance example.com
. Las cookies con el último alcance se enviarán de vuelta a secure.example.com
, si el usuario visita secure.example.com
.
Si el sitio secure.example.com
establece una cookie con alcance example.com
, entonces el sitio blog.example.com
puede sobrescribir esa cookie de manera arbitraria. Cada vez que los navegadores ven una cookie con el mismo nombre y alcance que una que ya está en el contenedor de cookies, descartan el valor de cookie anterior y lo sobrescriben con la nueva cookie. Por lo tanto, blog.example.com
puede sobrescribir cualquier cookie cuyo alcance sea example.com
.
Peor aún, una cookie puede ocultar una cookie con otro ámbito. Supongamos que secure.example.com
establece una cookie con alcance secure.example.com
y nombre SESSIONID
. A continuación, supongamos que blog.example.com
establece una cookie con alcance example.com
y el mismo nombre. Finalmente, supongamos que el usuario visita el sitio secure.example.com
. ¿Lo que pasa? Es feo: el navegador envía ambas cookies, en un orden indefinido, y el servidor no tiene una forma confiable de saber qué valor de cookie proviene de qué sitio. Por lo tanto, el servidor puede detectar que se encuentra en una situación confusa, pero no tiene una buena manera de desconcertarse. Peor aún, algunos marcos de aplicaciones web pueden ocultar la confusión del código de la aplicación, utilizando uno de los valores de las cookies e ignorando silenciosamente el otro. Esto puede llevar a algo que se comporte de manera efectiva, como blog.example.com
sobreescribió la cookie de secure.example.com
, en una situación en la que nadie esperaría razonablemente que pudiera hacerlo.
(Como nota al margen, el indicador secure
no evita que se sobrescriba una cookie. De hecho, un sitio HTTP puede sobrescribir una cookie con un secure
flag , siempre que los nombres de dominio estén relacionados adecuadamente. El indicador secure
proporciona protección de confidencialidad pero no protección de integridad.)
Finalmente, hay otra forma de eliminar las cookies: un sitio malicioso puede configurar muchas cookies, desbordando el límite fijo en la cantidad de cookies que el navegador almacenará. El resultado es que el navegador "olvida" las cookies antiguas de otros sitios. Esto permite a blog.example.com
eliminar todas las cookies establecidas por secure.example.com
(independientemente de su alcance), y luego establecer una nueva cookie con alcance example.com
que se enviará de nuevo a secure.example.com
, que es muy similar. Efectuar como sobrescribir una cookie existente. Esto podría ser lo que estaba pensando cuando mencionó "desbordamiento de cookie jar".
Discusión
Está desordenado. Es triste decirlo, así es como funcionan las cookies en Internet. Si desea evitarlo, la defensa más simple es usar un nuevo dominio de segundo nivel para los sitios que no son de confianza. Probablemente haya una mejor defensa que no restrinja la denominación de sus sitios, pero no sé qué es.
Como nota general, para preguntas como estas sobre cómo funciona la web, recomiendo el manual de seguridad del navegador . Está lleno de pepitas. En este caso, es posible que desee leer su material en la política del mismo origen para las cookies .