caramelosec. SCAN

X-Content-Type-Options Value

Checker ID: #13

v1.0.0-alpha

X-Content-Type-Options Value

Descrição

Essa diretiva instrui o navegador a não tentar “adivinhar” o tipo de um arquivo, devendo respeitar exclusivamente o tipo informado pelo servidor. Se um arquivo parecer um script, isso não é suficiente. Ele só será tratado como script se o servidor declarar explicitamente. Em outras palavras, não basta parecer, tem que provar. O navegador passa a operar de forma altamente desconfiada.

Importância

Em alguns ataques, hackers enviam arquivos maliciosos disfarçados de imagem, por exemplo, com extensão .jpg, mas que na verdade contêm código perigoso. Se o navegador tentar “adivinhar” o conteúdo real do arquivo, pode acabar executando esse código. Essa regra obriga o navegador a confiar estritamente no tipo de arquivo declarado pelo servidor, impedindo que arquivos disfarçados sejam interpretados como programas.

Requisitos de Sucesso
  • • O cabeçalho X-Content-Type-Options deve estar presente e seu valor deve ser exatamente nosniff (Não dê uma de vidente).

Cenários de Teste
Cenário Aprovado: O cabeçalho X-Content-Type-Options está presente e seu valor é exatamente nosniff:
HTTP/1.1 200 OK
Date: Wed, 17 Dec 2025 11:45:00 GMT
Server: nginx/1.18.0
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Content-Type-Options: nosniff
Last-Modified: Mon, 01 Dec 2025 10:00:00 GMT
ETag: "5f8c-60d4-1a2b"
Cache-Control: max-age=3600
Content-Length: 1540
Cenário Reprovado: O cabeçalho X-Content-Type-Options está ausente:
HTTP/1.1 200 OK
Date: Wed, 17 Dec 2025 11:45:00 GMT
Server: nginx/1.18.0
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Strict-Transport-Security: max-age=31536000
Last-Modified: Mon, 01 Dec 2025 10:00:00 GMT
ETag: "5f8c-60d4-1a2b"
Cache-Control: max-age=3600
Content-Length: 1540
Cenário Reprovado: O cabeçalho X-Content-Type-Options está presente mas seu valor é diferente de nosniff:
HTTP/1.1 200 OK
Date: Wed, 17 Dec 2025 11:45:00 GMT
Server: nginx/1.18.0
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Content-Type-Options: none
Last-Modified: Mon, 01 Dec 2025 10:00:00 GMT
ETag: "5f8c-60d4-1a2b"
Cache-Control: max-age=3600
Content-Length: 1540