Verificación hash iFrame secundaria del contenido iFrame principal

8

Considere el siguiente escenario:

Alice desea navegar por el sitio web de Victor mientras trabaja en Initech. El sitio web de Victor está alojado en un sistema de nombres de dominio alternativo al que el DNS de Initech no se compara. Eve (que desea facilitar el intercambio libre y abierto de conocimientos) aloja una página web que contiene JS que realiza la resolución de nombres de dominio y el enmascaramiento de URL, de modo que cuando Alice visita victor.eve.tld , un iFrame carga victor.alt basado en la dirección IP estática que Victor tiene designado en el registro victor.alt DNS.

Para una máscara transparente de nombre de dominio, Victor debe colocar la autorización CORS en los encabezados de su sitio para bailar en torno a la política de origen único. Sin embargo, Victor sospecha que Michael está intentando piratear el servidor web de Eve y colocar JS malintencionado en la página web de Eve (el padre del iFrame). Victor quiere verificar que Michael no haya modificado el contenido del marco principal antes de habilitar la autorización de CORS.

Victor tiene una copia del sitio de Eve y puede incluir hashes del material sin ponerse en contacto con el servidor de Eve, por lo que si tiene acceso de lectura, puede coincidir con el contenido. Micheal no tiene acceso a los servidores Initech y las conexiones de ambos sitios están protegidas mediante TLS: suponga que Micheal no puede realizar un ataque de hombre en el medio.

¿Es posible que un iFrame verifique el contenido de la ventana principal?

  • utilizando alguna configuración de CORS?
  • mientras permite el acceso de solo lectura?
  • mientras limita el acceso de la ventana principal al contenido del iFrame?

Hay discusiones previas con respecto a Verificación JS del lado del cliente desde un caché no confiable (con una conexión confiable, no MtM), pero esta situación requiere validación por el material que se está buscando. También hay numerosas publicaciones relacionadas con el uso de iFrames para el código no confiable de sandbox . Sin embargo, las preguntas sobre el box de arena de iFrame tienden a girar en torno a la ventana principal que confía en el niño, al igual que la mayoría de la literatura externa sobre el tema (quiebra de marcos, etc.).

Además, el servidor de Eve no puede participar activamente en el proceso: solo puede servir archivos estáticos HTML, JS y CSS. Victor no puede enviar información a través del servidor de Eve, solo puede interactuar con servidores propios o de terceros.

    
pregunta Indolering 05.09.2013 - 01:17
fuente

1 respuesta

2
  • ¿Está utilizando alguna configuración de CORS?

Si Eve establece su encabezado CORS en Access-Control-Allow-Origin "victor.alt" , Victor puede verificar el contenido del HTML que recupera y verificar también todos los scripts a los que se hace referencia.

  • mientras permite el acceso de solo lectura?
  • mientras limita el acceso de la ventana principal al contenido del iFrame?

Ninguno de estos, un iFrame no puede leer el contenido de otro iFrame a menos que estén en el mismo dominio.

Sin embargo, puede insertar cualquier información de usuario que desee mantener privada de Victor en un iFrame de espacio aislado y usar window.postMessage para comunicarse entre marcos. Victor puede monitorear la actividad entre los dos para asegurarse de que no se filtre información.

    
respondido por el Philipp 09.09.2013 - 13:37
fuente

Lea otras preguntas en las etiquetas