¿Pueden los anuncios leer las cookies del sitio web en el que se encuentra?

39

Sé que muchos anuncios pueden almacenar cookies de terceros, pero ¿qué pasa con las cookies de lectura? Si es así, ¿qué les impide leer el ID de sesión para realizar el secuestro de sesión?

    
pregunta user3500869 03.01.2018 - 00:00
fuente

2 respuestas

56

Cualquier secuencia de comandos incluida en una página puede leer todas las cookies para las cuales el atributo httpOnly no está establecido. Las restricciones de acceso para los scripts no se determinan según el dominio desde el que se cargó el script, sino solo en qué página se carga. Esto significa que todos los scripts cargados en una página tienen el mismo acceso y control sobre esta página, sin importar el origen del script. Con respecto a las cookies, esto significa que debe proteger las cookies confidenciales, como los identificadores de sesión, con httpOnly si ha incluido scripts de terceros que están fuera de su control y confianza en su página.

Pero incluir tales scripts en una página que trabaje con datos confidenciales es una mala idea, ya que dichos scripts no solo pueden leer cookies (a menos que httpOnly) sino también extraer información de formularios (como credenciales de inicio de sesión) o cambiar la lógica de la aplicación del lado del cliente. . Consulte también ¿Debería preocuparme el seguimiento? ¿Dominios en un sitio web bancario? .

Tenga en cuenta que estas declaraciones se aplican solo a scripts de terceros que se incluyen directamente en la página principal. Si, por el contrario, el script está solo dentro de un iframe de un tercero dentro de la página principal, no podrá leer las cookies en la página principal ni acceder ni modificar el DOM que contiene.

    
respondido por el Steffen Ullrich 03.01.2018 - 00:15
fuente
19

Cada cookie pertenece a un dominio (un origen). Cada navegador moderno implementa una política del mismo origen que impide que una secuencia de comandos acceda a las cookies de un origen diferente de la que ejecuta la secuencia de comandos (con algunas soluciones para los subdominios).

  

Si es así, ¿qué les impide leer el ID de sesión para realizar el secuestro de sesión?

Si somesite.example implementa un script de publicidad de esta manera ...

<script src="https://rogueadvertisement.example/script.js"></script>

...nadaimpidequelasecuenciadecomandosaccedaymodifiqueunacookieensomesite.example,amenosquelacookietengaelindicadorHttpOnlyestablecido.(EsteindicadorniegaelaccesoaunacookieparatodoslosscriptsdeclienteyhacequesoloestédisponibleatravésdelencabezadoderespuestaHTTP).Estosedebeaqueunscriptincrustadoseejecutaenelorigendelsitiodeincrustación.

Sisomesite.exampleinsertaunanunciodetercerosenunmarco...

<iframesrc="https://rogueadvertisement.example/ad.html"></iframe>

... el documento incrustado tiene su propio origen y los scripts que se ejecutan dentro del marco no pueden acceder a las cookies que pertenecen al dominio del documento principal.

También, hay algunos mandos para hacer que la incrustación de fuentes potencialmente no fiables sea aún más segura, como el atributo de caja de arena . Usándolo como un atributo vacío ...

<iframe sandbox src="https://rogueadvertisement.example/ad.html"></iframe>

... impone varias restricciones adicionales, como negar que se ejecuten cualquier dentro del marco.

    
respondido por el Arminius 03.01.2018 - 03:48
fuente

Lea otras preguntas en las etiquetas