Detector de Tipo MIME
Extensões de arquivo mentem, qualquer um pode renomear malware.exe para photo.jpg. A maneira confiável de saber o que um arquivo realmente é, é ler seus primeiros bytes, onde a maioria dos formatos coloca uma assinatura (“número mágico”) que identifica o formato independentemente do nome. Este detector lê a assinatura de qualquer arquivo solto e retorna o tipo MIME canônico além do mapeamento de extensão mais comum, para que você possa verificar se um upload é o que o cliente afirma.
Como funciona a detecção de MIME
-
1
Solte um arquivo
Qualquer tamanho; apenas os primeiros 4–16 KB são lidos.
-
2
Leia os bytes mágicos
A maioria dos formatos começa com uma assinatura conhecida.
-
3
Compare com um banco de dados de assinaturas
O detector usa as mesmas regras que `file(1)` / libmagic.
-
4
Retorne MIME + extensão
Mostra o tipo de mídia RFC 6838, a extensão canônica e um rótulo humano.
Assinaturas de exemplo
| Formato | Primeiros bytes (hex) | MIME |
|---|---|---|
| JPEG | FF D8 FF |
image/jpeg |
| PNG | 89 50 4E 47 0D 0A 1A 0A |
image/png |
| GIF87a | 47 49 46 38 37 61 |
image/gif |
| GIF89a | 47 49 46 38 39 61 |
image/gif |
| WebP | 52 49 46 46 ... 57 45 42 50 |
image/webp |
25 50 44 46 (%PDF) |
application/pdf |
|
| ZIP / JAR / ODT / DOCX | 50 4B 03 04 |
application/zip (ou específico) |
| gzip | 1F 8B 08 |
application/gzip |
| MP4 (ISO BMFF) | 00 00 00 XX 66 74 79 70 |
video/mp4 |
| MP3 | 49 44 33 ou FF FB |
audio/mpeg |
| FLAC | 66 4C 61 43 |
audio/flac |
| WAV | 52 49 46 46 ... 57 41 56 45 |
audio/wav |
| ELF (binário Linux) | 7F 45 4C 46 |
application/x-executable |
| Windows PE (exe) | 4D 5A |
application/x-msdownload |
Por que extensões não são suficientes
- Segurança. Um
resume.pdfenviado que na verdade é um.execontorna filtros de extensão ingênuos. A detecção de MIME do lado do servidor é a solução. - Desvio de Content-Type. Um navegador pode enviar o MIME errado para um upload; ler bytes mágicos diz o que os dados realmente são.
- Backups restaurados. Extensões às vezes se perdem ou são removidas; a detecção de conteúdo permite identificar o que cada arquivo é.
A família baseada em ZIP
Muitos formatos modernos são arquivos ZIP por baixo, eles começam com PK\x03\x04 como qualquer ZIP:
- Office Open XML:
.docx,.xlsx,.pptx. - OpenDocument:
.odt,.ods,.odp. - EPUB:
.epub. - Android APK:
.apk. - Java JAR:
.jar.
Para distingui-los, o detector espiará dentro do ZIP em busca de um arquivo de manifesto ([Content_Types].xml para OOXML, mimetype para ODF / EPUB).
Combinações úteis
- Primeiros 512 bytes cobrem a maioria das assinaturas de formato.
- Primeiros 4 KB cobrem formatos baseados em ZIP onde o manifesto aparece mais adiante.
- Primeiros 16 KB cobrem casos extremos como alguns contêineres multimídia.
Não é perfeito
- Arquivos de texto simples não têm bytes mágicos. O detector recorre a heurísticas (é válido UTF-8? parece JSON ou XML?).
- Arquivos criptografados / ofuscados podem parecer bytes aleatórios sem assinatura reconhecível.
- Ambiguidade de formato.
audio/wavevideo/aviambos começam comRIFF; o detector verifica o identificador secundário (WAVEvs.AVIquatro bytes depois).
Perguntas frequentes
Não. A detecção ocorre no seu navegador, apenas os primeiros poucos KB são lidos e comparados com um banco de dados de assinaturas do lado do cliente. Nada sai do seu dispositivo.
Porque OOXML, ODF, EPUB e JAR todos começam com a assinatura ZIP. O detector espiará dentro para encontrar o manifesto específico do formato e retornar o MIME mais específico (application/vnd.openxmlformats-...).
Ele pega renomeações ingênuas, um .exe renomeado para .jpg aparecerá como executável pelos seus bytes mágicos. Atacantes sofisticados embutem cargas úteis dentro de arquivos de mídia reais ou usam arquivos poliglotas que correspondem a várias assinaturas; esses derrotam a detecção simples.
Texto simples não tem bytes mágicos. O detector executa heurísticas: válido UTF-8? válido JSON? declaração XML? estrutura CSV? Caso contrário, recorre a text/plain.
O banco de dados de assinaturas é semelhante (derivado das regras do Unix libmagic). Os resultados devem coincidir para formatos comuns. Formatos obscuros ou personalizados podem diferir.
Ferramentas relacionadas
Consulta DNS
Consulte os registros DNS A, AAAA, MX, TXT, NS, CNAME e SOA de qualquer domínio sem abrir um terminal.
Consulta de endereço IP
Consulte um endereço IPv4 ou IPv6 público para ver país, região, cidade, coordenadas, ISP, ASN, organização e fuso horário aproximados.
Verificador de Endpoint de API
Teste no navegador um endpoint HTTP ou HTTPS com CORS. Confira o status final, os cabeçalhos expostos, o tempo e uma prévia limitada do corpo.
Domínio para IP
Resolva qualquer nome de domínio para seus endereços IPv4 (A) e IPv6 (AAAA) e copie-os em qualquer ferramenta de rede.
Verificador de Idade de Domínio
Verifique quando um domínio foi registrado pela primeira vez e sua idade em anos, meses e dias usando dados WHOIS do registro.
Teste de velocidade
Faça um teste de velocidade da internet rápido, gratuito e no navegador. Meça a velocidade de download em Mbps, além da latência e do jitter, e veja se a sua conexão está pronta para streaming 4K, jogos e videochamadas. Sem app e sem cadastro.
Ferramenta disponível em outros idiomas
- MIME-typdetektor [SV]
- أداة كشف نوع ملفات MIME [AR]
- Bộ phát hiện loại MIME [VI]
- Détecteur de type MIME [FR]
- Detektor Jenis MIME [ID]
- MIME 타입 감지기 [KO]
- MIME-type detector [NL]
- MIME-Typ-Detektor [DE]
- เครื่องตรวจจับประเภทไฟล์ MIME [TH]
- Detektor typu MIME [PL]
- Detector de tipo MIME [ES]
- MIMEタイプ検出器 [JA]
- MIME Type Detector [EN]
- Rilevatore di tipo MIME [IT]
- Определение MIME-типа файла [RU]
- MIME Tür Tespit Cihazı [TR]
- MIME类型检测器 [ZH]