2011-09-05 9 views
144

De alguna manera, al pasar el mouse sobre uno de Google+ uno puede introducir una oferta tipo tooltip que es claramente más grande que el elemento en el que está contenido. He inspeccionado el DOM para confirmarlo *¿Cómo se rompen los widgets Google+ +1 de su iframe?

iframe boundaries

Así:.

  1. ¿Qué? ¿¡Cómo!?

  2. ¿No es esta una gran oportunidad para clickjacking, si se usa maliciosamente? (Imagínese a alguien haciendo un MITM para estos widgets sociales!)

* Actualización: Lo que vi fue que el mensaje de información sobre herramientas-y estaba en una segunda, creados dinámicamente iframe.

Respuesta

180

El widget de Google +1 es JavaScript that runs on your website que está construyendo un iframe. Este widget de JavaScript se ejecuta en el contexto de su sitio web y, por lo tanto, no está restringido por el Origin Inheritance Rules for iframes. Por lo tanto, este widget de JavaScript puede establecer cualquier evento DOM que desee en el sitio primario, aunque parezca ser simplemente un simple iframe.

Otra cosa, ¿por qué Google usa un iframe? ¿Por qué no generar un div en la página? Bien porque el enlace se origina en iframe, se puede incrustar un token CSRF (falsificación de solicitudes entre sitios) en la solicitud y el sitio principal no puede leer este token y falsificar la solicitud. Entonces, el iframe es una medida anti-CSRF que depende de las reglas de herencia de origen para protegerse de un padre malicioso.

Desde el punto de vista del ataque, esto se parece más a XSS (cross-site scripting) que a UI-Redress. Le está dando acceso a Google a su sitio web y podrían secuestrar las cookies de sus usuarios o realizar XmlHttpRequests contra su sitio web si así lo desean (pero entonces las personas los demandarían por ser maliciosos y ricos).

En esta situación TIENES que confiar en Google, pero Google no confía en ti.

There are ways of mitigating the privacy impact of these web-bugs.

+0

Cosas grandiosas: aprecio tu comentario sobre: ​​XSS, que tiene mucho sentido. Sin embargo, todavía no estoy seguro de algo. El contenido en cuestión parece que no está dentro del '