Scanverra

Como Corrigir Avisos de Conteúdo Misto

O conteúdo misto acontece quando uma página servida via HTTPS carrega mesmo apenas um recurso - um script, uma imagem, uma folha de estilos, um iframe - via HTTP simples. Esse único pedido não encriptado compromete a garantia de segurança que o resto da página estava a dar, e os navegadores respondem bloqueando o recurso, quebrando o ícone do cadeado, ou ambos.

Porque é que o Conteúdo Misto Aparece

  • URLs http:// fixos deixados de uma migração para HTTPS anterior. Marcação antiga, conteúdo do CMS, ou uma base de dados de URLs de recursos armazenados escritos quando o site ainda funcionava em HTTP simples e nunca atualizados.
  • Embeds e widgets de terceiros ainda servidos via HTTP. Uma rede de anúncios, um widget de comentários, ou um snippet de analítica antigo que nunca migrou a sua própria entrega para HTTPS.
  • URLs de CDN ou de servidor de recursos esquecidos durante uma migração de protocolo. O domínio principal migrou para HTTPS, mas um subdomínio ou um servidor de recursos de terceiros a servir imagens ou fontes não foi atualizado ao mesmo tempo.
  • Conteúdo gerado por utilizadores com ligações HTTP coladas. Um utilizador submete conteúdo (uma publicação num fórum, uma avaliação de produto, um campo do CMS) contendo um URL de imagem ou embed http:// que é renderizado tal como está.

Como Identificar Cada Ocorrência

O Scanverra deteta conteúdo misto carregando a sua página num navegador real e capturando a sua atividade de rede real - tanto o Browser Test como a verificação de segurança assinalam qualquer pedido que comece por http:// enquanto a própria página é servida via HTTPS. Por se basear em pedidos de rede reais capturados em vez de uma análise estática do código-fonte HTML, deteta recursos carregados dinamicamente por JavaScript após a renderização da página, não apenas os fixados diretamente na sua marcação.

Como Corrigir

1. Substitua URLs http:// fixos por https://

Antes: um URL de imagem http:// fixotypescript
1<img src="http://cdn.example.com/testimonial-1.jpg" alt="Customer headshot" />
Depois: servido via https, ou relativo ao protocolo se o host suportar ambostypescript
1<img src="https://cdn.example.com/testimonial-1.jpg" alt="Customer headshot" />

2. Adicione upgrade-insecure-requests como salvaguarda

Esta diretiva CSP diz ao navegador para reescrever automaticamente quaisquer pedidos http:// restantes para https:// antes de os enviar, apanhando URLs que tenha esquecido - embora só funcione se o recurso estiver genuinamente acessível via HTTPS nesse mesmo host:

Atualize automaticamente qualquer pedido http:// perdido para https://typescript
1Content-Security-Policy: upgrade-insecure-requests

3. Audite especificamente embeds de terceiros

Scripts e widgets de terceiros são a fonte mais comum de conteúdo misto que não controla diretamente - verifique a documentação de cada um para um URL de embed HTTPS, e remova qualquer um que não ofereça um.

4. Sanitize ou reescreva o protocolo em conteúdo submetido por utilizadores

Se os utilizadores puderem submeter conteúdo contendo URLs, reescreva http:// para https:// no momento da renderização (ou rejeite a submissão) em vez de renderizar o protocolo que foi colado.

Como o Scanverra Deteta Isto

Tanto o Browser Test do Scanverra como a sua verificação de segurança capturam os pedidos de rede reais da sua página num navegador em tempo real e assinalam qualquer um que comece por http:// numa página servida via HTTPS - uma verificação genuína em tempo de execução contra tráfego real, não uma pesquisa de texto no seu código-fonte.

FAQ

Frequently asked questions

Porque é que uma única imagem http:// compromete a segurança de toda a página, não apenas essa imagem?

Porque esse único pedido não está encriptado nem autenticado, um atacante na mesma rede (wifi público, um router comprometido) pode intercetá-lo ou alterá-lo em trânsito - e, dependendo do que é (um script, em particular), isso pode comprometer o resto da página mesmo que tudo o resto tenha carregado corretamente via HTTPS.

O navegador bloqueia automaticamente o conteúdo misto, ou apenas avisa?

Depende do tipo de recurso. O conteúdo misto "ativo" - scripts, folhas de estilos, iframes - é bloqueado diretamente pelos navegadores modernos. O conteúdo misto "passivo" - imagens, vídeo, áudio - normalmente ainda é carregado, mas desencadeia um aviso de cadeado partido na barra de endereços, que é exatamente o tipo de sinal de confiança que faz os visitantes hesitar.

Como é que o Scanverra encontra conteúdo misto - apenas analisa o meu HTML à procura de ligações http://?

Não, é mais robusto do que isso. O Scanverra carrega a página num navegador real e captura os pedidos de rede reais que a página faz, assinalando depois qualquer pedido que comece por http:// numa página servida via https. Isto deteta recursos carregados dinamicamente por JavaScript, não apenas os fixados na sua marcação.

Posso simplesmente adicionar upgrade-insecure-requests e deixar de me preocupar com URLs individuais?

Ajuda como rede de segurança - diz ao navegador para reescrever automaticamente pedidos http:// para https:// antes de os enviar - mas só funciona se o recurso estiver realmente disponível via HTTPS nesse mesmo host. É uma boa salvaguarda, não um substituto para corrigir os URLs fixos.

Free - no sign-up required

Encontre os seus avisos de conteúdo misto

Execute uma auditoria de segurança gratuita e veja cada pedido http:// que a sua página https ainda está a fazer.

Run free audit