InfoQ

InfoQ

Notícias

Meus Favoritos

Faça oLogin ou Cadastre-se para ativar o recurso de favoritos por tempo ilimitado.

O conteúdo foi adicionado aos favoritos!

Houve um erro ao adicionar aos favoritos! Por favor, tente novamente.

Sandbox no HTML 5 para melhorar a segurança no uso de iframes

Postado por Abel Avram , traduzido por Lucas Souza em 28 Jan 2010

Seções
Desenvolvimento,
Arquitetura e Design
Tópicos
Segurança ,
Arquitetura ,
Especificações
Tags
Opera ,
Firefox ,
HTML 5 ,
Chrome

O novo HTML 5 está sendo desenvolvido pela WhatWG juntamente com a W3C. Durante o desenvolvimento uma das coisas mais significantes que foi alterada é o sandbox de segurança dos iframes. Sandbox que pode ser usado para isolar determinados operações de conteúdos não confiáveis em um iframe.

Ian Hickson o editor da especificação HTML 5, explica quais operações podemos evitar utilizando o os benefícios do sandbox:

  • Acesso ao DOM da página pai (tecnicamente falando, porque o iframe é relegado a uma origem "diferente" do que da página principal)
  • Executar scripts
  • Inserir seus próprios forms, ou manipular forms via script
  • ler ou escrever cookies, dados locais, ou base de dados SQL locais

Essas vantagens já podemos considerar como grandes avanços, porém olhando algumas novas novidades do HTML 5, podemos observar mais alguma mudanças e características significativas:

  • Desabilitar plugin
  • Desabilitar a navegação de outros contextos de browsers
  • Desabilitar popups e dialogs modal

Sempre que pensamos em iframes, pensando em possíveis brechas de segurança, isso porque iframes são na maioria das vezes usados para colocar conteúdos de terceiros na página que podem de alguma maneira executar ações que não são esperadas. A grande sacada do Sandbox é proteger a página onde um iframe é adicionado, de maneira que ele diz o que o conteúdo do iframe pode fazer ou não.

O conteúdo envolvido pelo sandbox é separado do conteúdo da página onde está o iframe, obtendo menos privilégios. Podemos usar o sandbox utilizando seu MIME type text/html-sandboxed. Hickson fala mais sobre esse MIME type:

O MIME type text/html-sandboxed, usado para garantir que usuários não podem navegar por conteúdos inconfiáveis. Existem duas partes para isso. Primeiro, os browsers não podem renderizar que servidas com o MIME type text/html-sandboxed, se você navegar para a página diretamente. Esta parte funciona em todos os browsers, hoje; todos fazem download (ou se oferecem para fazer download) da página marcada ao invés de renderizá-la. Segundo, browsers que suportam o atributo sandbox precisam renderizar iframes servidos com o MIME type text/html-sandboxed (sujeito a restrições de privilégios listados no atributo sandbox). Nenhum browser suporta isso ainda, nem mesmo o Google Chrome (ele renderiza a página pai, mas faz download do conteúdo do iframe ao invés de renderizá-lo no frame). Portanto, você ainda não pode usar esta técnica, até que o Google atualiza o Chrome para suportar isso. (Em teoria, outros browser implementarão o suporte a isso ao mesmo tempo que desenvolvem o suporte ao atributo sandbox, mas eu suponho que nós teremos que esperar e ver.)

Somente o Google Chrome tem suporte ao atributo sandbox atualmente. Browser como Safari, Firefox, IE* ou opera ainda não dao suporte, mas provavelmente quando lançarem suas respectivas versões novas, eles darão suporte. Neste caso não teremos o mesmo problema que estão tendo em relação a tag <video> que no Chrome utliza um padrão e em outros browser utilizam outro padrão. No caso do atributo sandbox cada browser será livre para escolher como implementar isso internamente. Pode ser que alguns browsers não implementem isso. Neste caso deveríamos tomar os mesmo cuidados que tomávamos antes em relação a segurança quanto ao uso de iframes.

Hoje em dia o uso de iframe ainda é comum? O que você acha da nova maneira de fazermos segurança em relação a iframes?

Conteúdo Educacional

Formando equipes de alto desempenho, parte 1: Início e fases de evolução

Nesta primeira parte de uma série sobre equipes de alto desempenho e gerenciamento Agile, veja uma introdução geral e uma apresentação dos estágios de formação das equipes.

Business Model Canvas, passo a passo

O Business Model Canvas é uma ferramenta estratégica para a construção visual de novos produtos ou serviços. Conheça cada um dos seus elementos e como preencher o Canvas, passo a passo.

Google Apps Script, Parte 2: Google Docs, triggers e envio de emails

Nessa segunda e última parte de uma série sobre o Google Apps Script, conheça como funciona o envio de emails, a conversão de documentos e como criar menus e triggers.

Serviços de cloud computing PaaS: um guia para desenvolvedores Java

Este artigo avalia seis dos mais importantes fornecedores de serviços de cloud computing PaaS para desenvolvedores Java, analisando critérios como desempenho, escalabilidade e tecnologias suportadas.

Canvas de Modelo de Negócios: uma contribuição para o sucesso de Startups

O Canvas de Modelo de Negócios é um novo modo de comunicar e suportar a validação iterativa, incremental e empírica de modelos de negócio de startups e novos produtos substituindo o plano de negócios.

Entrevista com Rebecca Parsons Parte 2: Agile Distribuído, Arquitetura vs. Design e SOA

Nesta segunda e última parte de uma entrevista exclusiva para InfoQ Brasil, Rebecca Parsons, CTO da ThoughtWorks, fala sobre o Agile Distribuído e técnicas para definição de arquiteturas.

Entrevista com Rebecca Parsons Parte 1: Agile nas Empresas e Arquitetura Evolucionária

Nessa primeira parte de uma entrevista com a CTO da ThoughtWorks, veja recomendações sobre formas de construir e arquitetar sistemas para obter o máximo de flexibilidade e responsividade a mudanças.

Agile das equipes à organização: o papel do gerente, estratégias e dicas para a adoção

Os gerentes de projetos podem assumir o papel crítico de liderar a introdução do Agile. Vejas conceitos, dicas e técnicas para apoiar esse processo de mudanças.