O que é conteúdo misto?

Conteúdo misto ocorre quando o HTML inicial é carregado por uma conexão HTTPS segura, mas outros recursos (como imagens, vídeos, folhas de estilo e scripts) são carregados por uma conexão HTTP não segura. Isso é chamado de conteúdo misto porque os conteúdos HTTP e HTTPS estão sendo carregados para mostrar a mesma página, e a solicitação inicial estava segura por HTTPS.

Solicitar subrecursos usando o protocolo HTTP não seguro enfraquece a segurança de toda a página, já que essas solicitações são vulneráveis a ataques no caminho, em que um invasor espiona uma conexão de rede e visualiza ou modifica a comunicação entre duas partes. Com o uso desses recursos, os invasores podem rastrear usuários e substituir o conteúdo de um site e, no caso de conteúdo misto ativo, assumir controle total sobre a página, e não apenas os recursos inseguros.

Muitos navegadores reportam avisos de conteúdo misto ao usuário, mas quando isso acontece é tarde demais: as solicitações não seguras já foram realizadas e a segurança da página está comprometida.

É por isso que os navegadores estão bloqueando cada vez mais conteúdo misto. Se você tiver conteúdo misto no seu site, a correção dele vai garantir que o conteúdo continue carregando à medida que os navegadores se tornarem mais rigorosos.

Os dois tipos de conteúdo misto

Os dois tipos de conteúdo misto são: ativo e passivo.

Conteúdo misto passivo é o conteúdo que não interage com o restante da página. Portanto, um ataque "man-in-the-middle" é restrito ao que pode ser feito se o conteúdo for interceptado ou alterado. O conteúdo misto passivo é definido como imagens, vídeos e conteúdos de áudio.

O conteúdo misto ativo interage com a página como um todo e permite que um invasor faça quase tudo com ela. O conteúdo misto ativo inclui scripts, folhas de estilo, iframes e outros códigos que o navegador pode transferir por download e executar.

Conteúdo misto passivo

O conteúdo misto passivo é considerado menos problemático, mas ainda representa uma ameaça à segurança do site e dos usuários. Por exemplo, um invasor pode interceptar solicitações HTTP de imagens no seu site e trocar ou substituir essas imagens; o invasor pode trocar as imagens dos botões salvar e excluir, fazendo com que os usuários excluam conteúdo sem a intenção; substituir os diagramas do produto por conteúdo obsceno ou pornográfico, veicular seu site ou substituir as imagens do produto por anúncios de outro site ou produto.

Mesmo que o invasor não altere o conteúdo do site, ele pode rastrear os usuários com solicitações de conteúdo misto. O invasor pode saber quais páginas um usuário visita e quais produtos ele visualiza com base em imagens ou outros recursos que o navegador carrega.

Se houver conteúdo misto passivo, a maioria dos navegadores vai indicar na barra de URL que a página não é segura, mesmo quando ela for carregada por HTTPS. É possível observar esse comportamento com esta demonstração que contém exemplos de conteúdo misto passivo.

Até recentemente, o conteúdo misto passivo era carregado em todos os navegadores e, para bloqueá-lo, muitos sites eram corrompidos. Isso está começando a mudar, por isso é fundamental atualizar todas as instâncias de conteúdo misto no seu site.

O Chrome está lançando o upgrade automático de conteúdo misto passivo sempre que possível. Isso significa que, se o recurso estiver disponível por HTTPS, mas tiver sido fixado no código como HTTP, o navegador vai carregar a versão HTTPS. Se nenhuma versão segura for encontrada, o recurso não será carregado.

Sempre que ele detecta conteúdo misto ou faz upgrade automático de conteúdo misto passivo, o Chrome registra mensagens detalhadas na guia Issues do DevTools para orientar você sobre como corrigir o problema específico.

A guia "Issues" do Chrome DevTools mostra informações detalhadas sobre o problema específico de conteúdo misto e como corrigi-lo.

Conteúdo misto ativo

O conteúdo misto ativo representa uma ameaça maior do que o conteúdo misto passivo. Um invasor pode interceptar e reescrever o conteúdo ativo e, assim, assumir o controle total da sua página ou até mesmo de todo o site. Isso permite que o invasor altere qualquer coisa na página, incluindo a exibição de conteúdo totalmente diferente, roubo de senhas ou outras credenciais de login, roubo de cookies de sessão do usuário ou redirecionamento do usuário para outro site.

Devido à gravidade dessa ameaça, a maioria dos navegadores já bloqueia esse tipo de conteúdo por padrão para proteger os usuários, mas a funcionalidade varia de acordo com o fornecedor e a versão do navegador.

Esta outra demonstração contém exemplos de conteúdo misto ativo. Carregue o exemplo sobre HTTP para conferir o conteúdo que é bloqueado quando você carregar o exemplo por HTTPS. O conteúdo bloqueado também será detalhado na guia Issues.

A guia "Issues" do Chrome DevTools mostra informações detalhadas sobre o problema específico de conteúdo misto e como corrigi-lo.

Especificação de conteúdo misto

Os navegadores seguem a especificação de conteúdo misto, que define as categorias conteúdo opcionalmente bloqueável e conteúdo bloqueável.

De acordo com a especificação, um recurso se qualifica como conteúdo opcionalmente bloqueável "quando o risco de permitir o uso como conteúdo misto é superado pelo risco de corromper partes significativas da Web". Esse é um subconjunto da categoria de conteúdo misto passivo descrita acima.

Todo conteúdo que não é opcionalmente bloqueável é considerado bloqueável e precisa ser bloqueado pelo navegador.

Nos últimos anos, o uso do HTTPS aumentou drasticamente e se tornou o padrão claro na Web. Isso torna mais viável para os navegadores bloquear todo o conteúdo misto, até mesmo os tipos de recursos secundários definidos na especificação de conteúdo misto como opcionalmente bloqueáveis. É por isso que agora o Chrome adota uma abordagem mais rigorosa em relação a esses subrecursos.

Navegadores mais antigos

É importante lembrar que nem todo visitante do seu site usa os navegadores mais atualizados. Cada versão de cada fornecedor de navegador lida de maneira diferente com o conteúdo misto. Na pior das hipóteses, navegadores e versões mais antigos não bloqueiam nenhum conteúdo misto, o que é muito inseguro para o usuário.

Ao corrigir os problemas de conteúdo misto, você garante que seu conteúdo fique visível em novos navegadores. Você também ajuda a proteger os usuários contra conteúdo perigoso que não é bloqueado por navegadores mais antigos.