¿Es un riesgo de seguridad que los navegadores puedan obtener imágenes (y / u otros recursos) de forma cruzada entre dominios?

3

La misma política de origen nos protege del sitio malintencionado que manipula los datos en nuestro sitio de confianza al no permitir solicitudes que envíen la cookie de autenticación, por ejemplo. Pero si entiendo correctamente, las imágenes, los scripts, etc. son una excepción a esa regla.

ver, por ejemplo, aquí :

  

Una página web puede insertar imágenes, hojas de estilo, scripts, iframes,   videos. Ciertas solicitudes de "dominio cruzado", en particular solicitudes AJAX,   sin embargo, están prohibidos de forma predeterminada por la política de seguridad del mismo origen.

Eso significa que si tengo una "imagen secreta" en Facebook (o cualquier otro recurso con autenticación de sesión de cookies), cualquier sitio malicioso que visite accidentalmente podrá cargar esa imagen en una etiqueta oculta, por ejemplo. y leerlo? Definitivamente deberían conocer la url, pero para muchos sitios puede ser tan fácil como adivinar ids (o enumerarlos 1,2,3 ...).

Esto no me suena seguro. ¿Estoy perdiendo un punto aquí? Parece que el envío automático de cookies para todas las solicitudes y las cookies en general es simplemente malo para la seguridad (no para los anuncios, aunque se basan enormemente en esta característica "buena" si recuerdo correctamente).

Debería ser aún peor para iframe (si puede incrustar y leer datos de un iframe del banco, por ejemplo), por lo que tiene que estar protegido de alguna manera.

    
pregunta Ilya Chernomordik 27.10.2016 - 10:58
fuente

1 respuesta

3
  

Eso significa que si tengo una "imagen secreta" en Facebook (o cualquier otro recurso con autenticación de sesión de cookies), cualquier sitio malicioso que visite accidentalmente podrá cargar esa imagen en una etiqueta oculta, por ejemplo. y leerlo?

Tienes razón hasta las dos últimas palabras. Sí, cualquier sitio que visite puede cargar la imagen secreta en su navegador. Pero no puede leerlo (a menos que, por ejemplo, Facebook tenga una política CORS que lo permita).

Para lea los valores de píxeles de una imagen con JavaScript deberías hacer algo como cargarlo en un lienzo y luego usar getImageData() o similar. Sin embargo, cuando carga una imagen de origen cruzado en un lienzo, el lienzo se "mancha" y esas funciones se bloquean. Esto es para prevenir el tipo de riesgo del que está hablando. (Lea más sobre esto en Mozilla .)

Así que todo lo que el sitio malicioso puede hacer es cargar la imagen en su donde solo usted , no ellos, verla. Y eso no es muy útil.

Existen protecciones similares en su lugar, por ejemplo, iframes Mientras que evil.com puede mostrar bank.com en un iframe, JavaScript cargado por evil.com no puede leer ningún dato desde dentro del iframe. Así que lo único que pueden hacer los atacantes es mostrarle el saldo de su cuenta. Y de eso se trata el SOP.

    
respondido por el Anders 27.10.2016 - 11:18
fuente

Lea otras preguntas en las etiquetas