O que é conteúdo misto?

Uma página tem conteúdo misto quando o HTML inicial é carregado por uma conexão HTTPS segura HTTPS, mas outros recursos (como imagens, vídeos, folhas de estilo e scripts) são carregados por uma conexão HTTP não segura. O nome se refere à mistura de conteúdo HTTP e HTTPS em uma única página.

Solicitar sub-recursos usando o protocolo HTTP não seguro enfraquece a segurança da página, porque essas solicitações são vulneráveis a ataques on-path, em que um invasor espiona uma conexão de rede e visualiza ou modifica a comunicação entre duas partes. Usando esses recursos, os invasores podem rastrear usuários e substituir conteúdo em um site. No caso de conteúdo misto ativo, eles podem assumir o controle total da página, não apenas dos recursos não seguros.

Embora muitos navegadores informem avisos de conteúdo misto ao usuário, o relatório geralmente é muito tarde: as solicitações não seguras já foram realizadas e a segurança da página está comprometida.

A maioria dos navegadores agora bloqueia conteúdo misto por motivos de segurança. Altere as solicitações de conteúdo não seguro para conteúdo seguro para garantir que a página continue sendo carregada corretamente.

Os dois tipos de conteúdo misto

Há dois tipos de conteúdo misto: ativo e passivo.

Conteúdo misto passivo, incluindo imagens, vídeo e áudio, não interage com o restante da página. Portanto, um ataque man-in-the-middle é restrito no que ele pode fazer se interceptar ou alterar esse conteúdo.

O conteúdo misto ativo interage com a página como um todo. Isso inclui scripts, folhas de estilo, iframes e qualquer outro código que o navegador possa baixar e executar. Ataques a conteúdo misto ativo permitem que um invasor faça quase qualquer coisa na página.

Conteúdo misto passivo

O conteúdo misto passivo é menos arriscado do que o conteúdo misto ativo, mas o risco ainda existe. Por exemplo, um invasor pode:

  • Interceptar solicitações HTTP de imagens no seu site e trocar ou substituir essas imagens.
  • Substituir as imagens nos botões para que os usuários as confundam e, por exemplo, excluam o conteúdo que pretendiam salvar.
  • Desfigurar seu site substituindo suas imagens por conteúdo pornográfico.
  • Substituir as imagens do produto por anúncios de outra coisa.

Mesmo que o invasor não altere o conteúdo do seu site, ele poderá rastrear os usuários por meio de solicitações de conteúdo misto. Eles também podem informar quais páginas um usuário visita e quais produtos ele visualiza com base em imagens ou outros recursos que o navegador carrega.

Se o conteúdo misto passivo estiver presente, a maioria dos navegadores indicará na barra de endereço que a página não é segura, mesmo quando a página em si é carregada por HTTPS.

Até recentemente, o conteúdo misto passivo era carregado em todos os navegadores, porque o bloqueio dele teria quebrado muitos sites. Isso agora está começando a mudar. Portanto, é fundamental atualizar todas as instâncias de conteúdo misto no seu site.

Em alguns casos, o Chrome faz upgrade automático do conteúdo misto passivo. Isso significa que, se um recurso tiver sido codificado como HTTP, mas estiver disponível por HTTPS, o navegador carregará a versão HTTPS. Se não houver uma versão segura, o recurso não será carregado.

Sempre que o Chrome detectar conteúdo misto ou fazer upgrade automático do conteúdo misto passivo, ele registrará mensagens detalhadas na guia Problemas do DevTools para aconselhar você a corrigir o problema específico.

A guia "Problemas" do Chrome DevTools mostra informações detalhadas sobre o problema específico de conteúdo misto e como corrigi-lo.
Cada recurso não seguro é listado no DevTools, juntamente com um status de restrição.

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 conteúdo ativo, usando-o para assumir o controle total da sua página ou até mesmo de todo o site. Isso permite que eles mudem qualquer aspecto da página, incluindo a exibição de conteúdo diferente, o roubo de senhas de usuários ou outras credenciais de login, o roubo de cookies de sessão do usuário ou o redirecionamento do usuário para um site completamente diferente.

Como os riscos de conteúdo misto ativo são muito altos, a maioria dos navegadores já bloqueia esse tipo de conteúdo por padrão para proteger os usuários, mas o comportamento varia entre fornecedores e versões de navegadores. No Chrome, é possível visualizar o conteúdo bloqueado na guia Problemas do DevTools.

A guia "Problemas" do Chrome DevTools mostra informações detalhadas sobre o problema específico de conteúdo misto e como corrigi-lo.
Alguns recursos não seguros são bloqueados para reforçar a segurança do seu site.

A especificação de conteúdo misto

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

Um recurso se qualifica como conteúdo opcionalmente bloqueável "quando o risco de permitir o uso dele como conteúdo misto é maior do que o risco de quebrar partes significativas da Web". Esse é um subconjunto de conteúdo misto passivo.

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

Nos últimos anos, o uso de HTTPS aumentou muito, e se tornou o padrão claro na Web. Isso torna mais viável agora para os navegadores considerar o bloqueio de todo o conteúdo misto, mesmo os tipos de sub-recursos definidos na especificação de conteúdo misto como opcionalmente bloqueáveis.

Navegadores mais antigos

Alguns visitantes podem usar navegadores mais antigos. Diferentes versões de navegadores de diferentes fornecedores tratam o conteúdo misto de maneira diferente. No pior dos casos, navegadores e versões mais antigos não bloqueiam nenhum conteúdo misto, o que não é seguro para o usuário.

Ao carregar todos os recursos com segurança e corrigir os problemas de conteúdo misto, você garante que seu conteúdo fique visível e protege os usuários de conteúdo perigoso que navegadores mais antigos podem não bloquear.