MIME Sniffing
O que é MIME Sniffing?
MIME SniffingComportamento do navegador de adivinhar o tipo de conteudo de uma resposta a partir dos seus bytes, explorado para executar ficheiros carregados como scripts.
O MIME sniffing e uma funcionalidade legada dos navegadores em que o navegador inspeciona os primeiros bytes de uma resposta e sobrepoe o cabecalho Content-Type declarado pelo servidor para renderizar o recurso de forma mais util. Os atacantes abusam disto quando uma aplicacao serve ficheiros carregados pelos utilizadores com um tipo incorreto ou generico: um ficheiro que contem HTML ou JavaScript pode ser detetado como text/html e executado na origem da vitima, permitindo um XSS armazenado.
Este comportamento remonta as primeiras versoes do Internet Explorer, cujo sniffing agressivo foi uma fonte notoria de XSS por "confusao de tipo de conteudo"; a Microsoft introduziu a opcao de exclusao X-Content-Type-Options: nosniff no IE8 (2008), e hoje esta padronizada pelo MIME Sniffing Standard da especificacao WHATWG Fetch. Enviar nosniff forca o navegador a respeitar o tipo declarado e a recusar executar um script ou folha de estilos cujo Content-Type nao corresponda ao destino do pedido. O reforco moderno sobrepoe varios controlos: servir cada ficheiro fornecido pelo utilizador com um Content-Type correto e especifico e um Content-Disposition: attachment quando apropriado, alojar o conteudo do utilizador numa origem sandbox separada e aplicar uma Content-Security-Policy restritiva. Os scanners de seguranca e os avaliadores de cabecalhos (por exemplo, o Mozilla Observatory) assinalam qualquer resposta HTML sem nosniff.
flowchart TD
A[O utilizador carrega um ficheiro] --> B[A app devolve-o<br/>com tipo errado/generico]
B --> C{X-Content-Type-Options:<br/>nosniff definido?}
C -- Nao --> D[O navegador analisa os bytes<br/>e renderiza como text/html]
D --> E[O XSS armazenado executa<br/>na origem da vitima]
C -- Sim --> F[O navegador respeita<br/>o tipo declarado]
F --> G[Ficheiro descarregado, nao executado]● Exemplos
- 01
X-Content-Type-Options: nosniff
- 02
Um endpoint de carregamento de avatar que devolve image/png mas o ficheiro e HTML; sem nosniff, o navegador executa-o como uma pagina.
● Perguntas frequentes
O que é MIME Sniffing?
Comportamento do navegador de adivinhar o tipo de conteudo de uma resposta a partir dos seus bytes, explorado para executar ficheiros carregados como scripts. Pertence à categoria Segurança de aplicações da cibersegurança.
O que significa MIME Sniffing?
Comportamento do navegador de adivinhar o tipo de conteudo de uma resposta a partir dos seus bytes, explorado para executar ficheiros carregados como scripts.
Como se defender contra MIME Sniffing?
As defesas contra MIME Sniffing costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.