2011-07-13 15 views
5

¿Podría ayudarme a comprender la implementación de Chrome de los atributos de sandbox iframe HTML5 allow-same-origin y allow-top-navigation?Problema de los atributos sandbox iframe HTML5

Primera pregunta:

Por ejemplo, cuando i-prueba le permiten a personas del mismo origen que hago:

<iframe id='frm' src="file.html" sandbox="allow-same-origin"></iframe>  
...  
oIFrame = document.getElementById('frm'); 
var oDoc = (oIFrame.contentWindow || oIFrame.contentDocument);  
if (oDoc.document)  { 
oDoc = oDoc.document; 
oDoc.getElementById('foo').innerText = 'Hello man!'; 
... 

contenido de archivo.html:

... 
<div id="foo">Hello</div>  
... 
alert(document.cookie); 
... 

y eso es obra sólo cuando tengo un atributo adicional llamado allow-scripts entonces tengo sandbox = "allow-scripts allow-same-origin". Solo allow-same-origin doesnt 't work y alone allow-scripts funciona muy bien (scripts ejecutados pero no API SOP relacionados, está bien respecto al estándar HTML5).

estándar de HTML5 dice:

"En primer lugar, se puede utilizar para permitir que el contenido del mismo sitio para ser un recinto de seguridad para deshabilitar la automatización, al tiempo que permite el acceso al DOM del contenido de espacio aislado."

¿Lo entiendo mal o la implementación de Chrome es incorrecta?

Segunda pregunta:

estándar de HTML5 dice acerca de permitir-top-navegación:

"En segundo lugar, se puede utilizar para incrustar el contenido de un sitio de terceros, un recinto de seguridad para evitar que el sitio desde la apertura de ventanas emergentes, etc., sin impedir que la página incrustada se comunique nuevamente con su sitio de origen, utilizando las API de la base de datos para almacenar datos, etc. "

Mis ventanas emergentes en Chrome no están bloqueadas. ¿Cómo podría bloquearlos? Yo uso simplemente allow-top-navigation.

Saludos, David

Respuesta

0

Por primera pregunta: ¿ Parece esto significa que la página principal todavía puede tener acceso al DOM del un recinto de seguridad, mientras que los scripts en el sí se les impida la ejecución; por lo que es parent -> iframe pero no iframe -> parent

Segunda pregunta: tal vez estoy mal entendido, pero como el nombre implica allow-top-navigation esto va a permitir que en lugar de bloquear el sitio enmarcado el uso de cosas como top.location.replace().

Cuestiones relacionadas