Uma página tem conteúdo misto 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. 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. Com 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 mostrem avisos de conteúdo misto ao usuário, o relatório geralmente chega tarde demais: as solicitações não seguras já foram feitas e a segurança da página está comprometida.
A maioria dos navegadores agora bloqueia conteúdo misto por motivos de segurança. Mude as solicitações de conteúdo não seguro para conteúdo seguro e garanta que sua página continue carregando corretamente.
Os dois tipos de conteúdo misto
Há dois tipos de conteúdo misto: ativo e passivo.
O conteúdo misto passivo, incluindo imagens, vídeo e áudio, não interage com o restante da página. Assim, um ataque man-in-the-middle tem restrições quanto ao que pode fazer se interceptar ou mudar 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. Com ataques a conteúdo misto ativo, um invasor pode fazer quase tudo na página.
Conteúdo misto passivo
O conteúdo misto passivo é menos arriscado que o 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.
- Substitua as imagens nos botões para que os usuários se confundam e, por exemplo, excluam conteúdo que pretendiam salvar.
- Mudar a aparência do site substituindo as imagens por conteúdo pornográfico.
- Substitua as imagens dos produtos por anúncios de outra coisa.
Mesmo que o invasor não mude o conteúdo do site, ele pode rastrear os usuários por 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 houver conteúdo misto passivo, a maioria dos navegadores vai indicar na barra de endereço que a página não é segura, mesmo quando ela é carregada por HTTPS. Confira esse comportamento nesta demonstração.
Até recentemente, o conteúdo misto passivo era carregado em todos os navegadores porque o bloqueio dele prejudicaria muitos sites. Isso está começando a mudar, então é 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 detecta conteúdo misto ou faz upgrade automático de conteúdo misto passivo, ele registra mensagens detalhadas na guia Problemas do DevTools para orientar você na correção do problema específico.
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 mostrar conteúdo diferente, roubar senhas de usuários ou outras credenciais de login, roubar cookies de sessão do usuário ou redirecionar o usuário para um site completamente diferente.
Como os riscos do 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.
Esta demonstração mostra exemplos de conteúdo misto ativo. Carregue o exemplo por HTTP para ver o conteúdo bloqueado quando você carrega o exemplo por HTTPS. O conteúdo bloqueado também é detalhado na guia Problemas do DevTools.
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 é superado pelo risco de quebrar partes significativas da Web". Esse é um subconjunto do conteúdo misto passivo.
Todo o conteúdo misto que não é opcionalmente bloqueável é considerado bloqueável e deve ser bloqueado pelo navegador.
Nos últimos anos, o uso do HTTPS aumentou muito e se tornou o padrão claro na Web. Isso torna mais viável para os navegadores considerar o bloqueio de todo o conteúdo misto, mesmo aqueles tipos de subrecursos definidos na especificação de conteúdo misto como opcionalmente bloqueáveis.
Navegadores mais antigos
Alguns visitantes podem usar navegadores mais antigos. Versões diferentes de navegadores de fornecedores diferentes tratam o conteúdo misto de maneiras distintas. No pior dos casos, navegadores e versões mais antigos não bloqueiam nenhum conteúdo misto, o que é perigoso 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.