O HTML 5, como muitos sabem, está a amadurecer de forma lenta mas sustentada e com frequência aparecem implementadas novas funcionalidades. Esta será, muito provavelmente, uma das versões de HTML que mais alterações trará à forma como construímos as páginas Web.
E com a disponibilização, na passada semana, das novas versões estáveis de Chrome este passa a ser o primeiro browser a suportar uma funcionalidade de segurança do HTML, a implementação de sandbox’s nas iframes.
Com esta nova funcionalidade vamos passar a poder controlar a execução de iframes externas aos nossos sites. Passamos a poder colocar iframes, mas definir permissões de execução de código externo e privilégios reduzidos.
Conseguimos desta forma controlar toda a informação que recebemos de fontes externas e que não controlamos. É pouco simpático percebermos que uma página que tínhamos como fidedigna e que apresentamos numa página Web nossa passou a apresentar pop-ups publicitários ou que tem javascript pouco saudável a correr do seu lado.
A sua forma de implementação é simples, basta que coloquemos a instrução sandbox dentro da tag iframe. A partir deste momento esta frame deixa de ter permissões para executar qualquer código. Apenas irá mostrar o html, deixando de poder chamar pop-ups ou executar javascript.
<iframe sandbox src="http://atacante.pt/nao_confiavel.html"></iframe>
Mas caso pretendamos podemos criar whitelists de execução e definir atribuições possíveis de serem executadas. Basta que na instrução sandbox o definamos. O exemplo abaixo mostra como permitir a execução de javascript e de formulários.
<iframe sandbox="allow-scripts allow-forms"
src="http://atacante.pt/nao_confiavel.html"></iframe>
Naturalmente que esta barreira adicional de segurança é completamente ignorada pelos browsers mais antigos e que não entendem HTML5, pelo que esta deve ser utilizada como complemento a outras que existem.
Uma forma simples de testar e implementar a sandbox para iframe é a seguinte:
if ("sandbox" in document.createElement("iframe")) {
// Este browser suporta @sandbox.
}
Caso pretendam ver todos os atributos da iframe sandbox, podem consulta-las aqui. E as restantes funcionalidades presentes no HTML5 podem ser consultadas aqui.
Lentamente os browsers de nova geração começam a implementar as novas funcionalidades do HTML5, o que permite, a quem desenvolve páginas Web, a utilização de todo o seu potencial. Novos tempos para a Internet estão a chegar.
Artigos relacionados: