Las aplicaciones actuales como widgets de Twitter, los comentarios de Facebook sobre un artÃculo o incluso la integración de páginas mediante el empleo de IFRAME. Pueden provocar agujeros de seguridad.
El Sandbox de HTML5.
Sabemos que un IFRAME es bulnerable. Sabemos que el atributo sandbox bloquea el contenido.
Mediante tu navegador puedes confirmar que soporta el atributo sandbox para iframes con JS
if( "sandbox" in document.createElement( "IFRAME" ) ) {
} else {
}
Si tu navegador no soporta este atributo, actualiza la versión.
Personalizando el sandbox con allow-forms.
Si quieres que los formularios puedan enviar datos, indica el valor allow-forms en el atributo sandbox:
<iframe sandbox=»allow-forms» src=»pagina.html»
></iframe
>
Para habilitar el JavaScript indicamos el valor allow-scripts:
<iframe sandbox=»allow-scripts» src=»pagina.html»
></iframe
>
Si cargas una página de tu mismo dominio en un iframe utiliza allow-same-origin.
<iframe sandbox=»allow-same-origin» src=»pagina.html»
></iframe
>
Por sà solo, este valor no es muy útil, tendremos que añadir algún script.
Por ejemplo, si lo que queremos es acceder a un elemento en local del dominio actual:
function loadFromStorage( key ) {
if( localStorage ) {
return localStorage.getItem( key );
}
});
Y también necesitaremos añadirle al atributo sandbox el valor allow-scripts:
<iframe sandbox=»allow-scripts allow-same-origin» src=»pagina.html»
></iframe
>
Ahora este agujero de html5 lo tenemos mas o menos cubierto.