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
Calculadora de Sub-rede IP
Calcule o intervalo de sub-rede, rede, broadcast, hosts utilizáveis e máscara wildcard para qualquer bloco CIDR IPv4 com cobertura total de /0 a /32.
Consulta de Registro MX
Pesquise registros MX para qualquer domínio para ver os servidores de e-mail que gerenciam seu e-mail, suas prioridades e identificar configurações incorretas.
Escaneador de Portas Abertas
Escaneie uma lista fixa de portas TCP comuns em um host público para ver quais estão abertas e quais serviços estão acessíveis. Uma verificação rápida e básica, não um escaneador completo.
Conversor de IPv4 para IPv6
Converta endereços IPv4 para IPv6 em formatos mapeados, compatíveis, 6to4 e embutidos com o mapeamento reverso de volta para IPv4.
Consulta DNS reversa
Consulte o registro PTR de um endereço IPv4 ou IPv6. Útil para depurar servidores de email, analisar logs e investigar filtros antispam.
Testador de CORS
Envie uma solicitação OPTIONS de pré-verificação para qualquer URL e inspecione Access-Control-Allow-Origin, cabeçalhos e métodos retornados pelo servidor. Depure falhas de origem cruzada rapidamente.
Ferramenta disponível em outros idiomas
- MIMEタイプ検出器 [JA]
- Detektor typu MIME [PL]
- เครื่องตรวจจับประเภทไฟล์ MIME [TH]
- MIME-typdetektor [SV]
- MIME-Typ-Detektor [DE]
- Detektor Jenis MIME [ID]
- Bộ phát hiện loại MIME [VI]
- MIME-type detector [NL]
- Détecteur de type MIME [FR]
- MIME 타입 감지기 [KO]
- Detector de tipo MIME [ES]
- أداة كشف نوع ملفات MIME [AR]
- MIME Type Detector [EN]
- Rilevatore di tipo MIME [IT]
- Определение MIME-типа файла [RU]
- MIME Tür Tespit Cihazı [TR]
- MIME类型检测器 [ZH]