X-Content-Type-Options: o que é e como configurar

O X-Content-Type-Options é um cabeçalho pequeno, mas eficaz, contra ataques baseados em MIME sniffing. Neste artigo explicamos o que é, porque importa e como configurá-lo.

O que é o X-Content-Type-Options

O X-Content-Type-Options é um cabeçalho HTTP que, quando definido com o valor nosniff, impede que o navegador tente adivinhar (“sniff”) o tipo real de um ficheiro, forçando-o a respeitar exatamente o tipo de conteúdo (MIME type) declarado pelo servidor no cabeçalho Content-Type.

Porque é importante

Sem este cabeçalho, alguns navegadores tentam identificar automaticamente o tipo de um ficheiro analisando o seu conteúdo, mesmo que o servidor já tenha declarado um tipo diferente. Esta técnica, conhecida como MIME sniffing, pode ser explorada por um atacante para, por exemplo, fazer um navegador interpretar um ficheiro carregado pelo utilizador (como uma imagem de perfil) como código executável, abrindo caminho a ataques de Cross-Site Scripting.

Boas práticas

  • Ativar sempre o valor nosniff – é a única opção válida para este cabeçalho e não tem praticamente nenhum efeito colateral negativo.
  • Garantir que o servidor declara corretamente o Content-Type de cada tipo de ficheiro servido, já que o X-Content-Type-Options depende dessa declaração estar correta.
  • Aplicar este cabeçalho a todo o site, incluindo ficheiros carregados por utilizadores (uploads).

Como corrigir

  1. Aceda à configuração do seu servidor web ou aplicação.
  2. Adicione o cabeçalho com o único valor válido:

    X-Content-Type-Options: nosniff
  3. Confirme que o servidor está a declarar corretamente o Content-Type de todos os tipos de ficheiros servidos (HTML, CSS, JS, imagens, etc.), já que erros aqui podem causar problemas de carregamento depois de ativar o nosniff.
  4. Teste o site após a alteração, verificando na consola do navegador se algum recurso deixou de carregar corretamente.

Este cabeçalho só funciona corretamente se o servidor já declarar bem os tipos de conteúdo de cada ficheiro – algo que muitas configurações de alojamento genéricas não garantem. Na WebDig Host, os nossos planos de alojamento já vêm com esta e outras boas práticas de configuração de servidor implementadas por defeito.

Conhecer os serviços de alojamento e gestão de domínios da WebDig Host

Perguntas frequentes sobre o X-Content-Type-Options

Existe algum risco em ativar este cabeçalho?

O risco é mínimo. O único cuidado é garantir que o servidor já declara corretamente o Content-Type de todos os ficheiros – se isso já estiver correto, ativar o nosniff não deve causar problemas.

Este cabeçalho sozinho é suficiente para prevenir Cross-Site Scripting?

Não. É uma camada adicional de proteção, mas deve ser combinado com outras medidas, como um Content-Security-Policy bem configurado e validação adequada de conteúdo carregado por utilizadores.

Este cabeçalho aplica-se a todos os tipos de ficheiros?

Sim, aplica-se a todos os recursos servidos pelo site, incluindo scripts, folhas de estilo, imagens e ficheiros carregados por utilizadores.

Verifique agora os cabeçalhos de segurança do seu site

Com o Secure Check, pode confirmar gratuitamente se o X-Content-Type-Options e outros cabeçalhos de segurança do seu domínio estão configurados, em poucos segundos.

Analisar o meu domínio gratuitamente com o Secure Check