MIME类型检测器
文件扩展名具有欺骗性,任何人都可以将 malware.exe 重命名为 photo.jpg。要准确识别文件的真实格式,最可靠的方法是读取其前几个字节:大多数文件格式都会在其中嵌入一个标识符(“魔数”),该标识符可独立于文件名称识别其格式。此检测工具可读取任意上传文件的魔数,并返回对应的标准 MIME 类型及最常见的扩展名映射关系,从而帮助您验证上传文件是否与客户端声明的内容一致。
MIME检测的工作原理
-
1
拖放文件
任意大小;仅读取前4–16 KB数据。
-
2
读取魔数字节
大多数格式均以已知签名开头。
-
3
与签名数据库进行匹配
该检测器采用与`file(1)`/libmagic相同的规则。
-
4
返回 MIME+扩展名
显示RFC 6838媒体类型、标准扩展名及人工标注标签。
示例签名
| 格式 | 前几位字节(十六进制) | 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(或特定版本) |
| gzip | 1F 8B 08 |
application/gzip |
| MP4(ISO BMFF) | 00 00 00 XX 66 74 79 70 |
video/mp4 |
| MP3 | 49 44 33 或 FF FB |
audio/mpeg |
| FLAC | 66 4C 61 43 |
audio/flac |
| WAV | 52 49 46 46 ... 57 41 56 45 |
audio/wav |
| ELF(Linux二进制文件) | 7F 45 4C 46 |
application/x-executable |
| Windows PE (exe) | 4D 5A |
application/x-msdownload |
为什么仅凭扩展名还不够
- 安全性。 上传的文件
resume.pdf实际上是.exe,可绕过基础扩展名过滤机制;通过服务器端 MIME 检测即可解决该问题。 - Content-Type不匹配。 浏览器可能为上传文件发送了错误的MIME类型;通过解析魔数字节可了解数据的实际内容。
- 已恢复的备份。 扩展名有时可能丢失或被移除;通过内容解析功能可识别每个文件的具体类型。
基于 ZIP 的格式家族
许多现代格式本质上都是ZIP压缩包,它们的文件名以PK\x03\x04开头,与普通ZIP文件完全相同:
- Office Open XML:
.docx、.xlsx、.pptx。 - OpenDocument:
.odt,.ods,.odp. - EPUB格式:
.epub。 - 安卓 APK :
.apk。 - Java JAR文件:
.jar。
为区分这些文件,检测器会扫描ZIP压缩包内部以查找清单文件(OOXML 对应[Content_Types].xml, ODF / EPUB 对应mimetype)。
实用组合
- 前 512 字节涵盖了大多数格式特征码。
- 前4 KB包含基于ZIP格式的文件,其清单文件位于该区域的后续部分。
- 前16 KB涵盖了一些特殊场景(如某些多媒体容器)。
不完美
- 纯文本文件不含特殊字节。检测器会采用启发式方法进行判断(例如:是否符合 UTF -8规范?是否呈现 JSON 或XML格式?)。
- 加密/混淆后的文件可能呈现为无明显特征的随机字节序列。
- 格式歧义。
audio/wav与video/avi均以RIFF开头;检测器会检查次级标识符(分别为WAVE及后续四个字节处的AVI)。
常见问题
不。检测过程在您的浏览器中运行,仅读取前几KB数据并与客户端签名数据库进行比对,不会有任何数据离开您的设备。
由于 OOXML 、 ODF 、 EPUB 和JAR文件均以ZIP签名开头,检测器会解析其内部内容以识别特定格式的清单文件,并返回更具体的MIME类型(application/vnd.openxmlformats-...)。
该机制可检测简单的重命名行为,例如将.exe重命名为.jpg后,其魔数字节仍会显示为可执行文件。高阶攻击者则会在真实媒体文件中嵌入有效载荷,或使用能匹配多种特征码的多语言文件;这些手段均可规避简单的检测机制。
纯文本不含特殊编码字节。检测器采用启发式算法:符合 UTF -8规范?符合 JSON 格式?符合XML声明?符合CSV结构?否则默认使用text/plain编码。
签名数据库结构相似(基于Unix libmagic规则推导而来)。对于常见格式,结果应一致;而对于复杂或自定义格式,则可能出现差异。
相关工具
DNS 查询
无需打开终端,即可查询任意域名的 A、AAAA、MX、TXT、NS、CNAME 和 SOA 记录。
WHOIS 查询
查询域名的公开 WHOIS 注册数据:注册商、名称服务器、状态代码和到期日期。
域名到IP地址
解析任意域名的IPv4(A)和IPv6(AAAA)地址,并复制到任何网络工具中使用。
反向 DNS 查询
查询 IPv4 或 IPv6 地址的 PTR 记录。适合排查邮件服务器、分析日志以及调查垃圾邮件过滤问题。
域名年龄检查器
利用注册局的 WHOIS 数据,查询域名首次注册时间及其具体年、月、日信息。
API Endpoint 检查器
在浏览器中测试允许 CORS 的 HTTP 或 HTTPS 端点,查看最终状态、公开的响应头、耗时和限量正文预览。
此工具还提供其他语言版本
- Detector de Tipo MIME [PT]
- Bộ phát hiện loại MIME [VI]
- MIME 타입 감지기 [KO]
- أداة كشف نوع ملفات MIME [AR]
- MIME-typdetektor [SV]
- MIME-Typ-Detektor [DE]
- Détecteur de type MIME [FR]
- Detektor Jenis MIME [ID]
- เครื่องตรวจจับประเภทไฟล์ MIME [TH]
- Detector de tipo MIME [ES]
- MIME-type detector [NL]
- MIMEタイプ検出器 [JA]
- Detektor typu MIME [PL]
- MIME Type Detector [EN]
- Rilevatore di tipo MIME [IT]
- Определение MIME-типа файла [RU]
- MIME Tür Tespit Cihazı [TR]