Detektor typu MIME
Rozszerzenia plików kłamią – każdy może zmienić nazwę pliku malware.exe na photo.jpg. Niezawodnym sposobem ustalenia, czym plik jest naprawdę, jest odczytanie jego pierwszych kilku bajtów, w których większość formatów umieszcza podpis (tzw. „magiczną liczbę“) identyfikujący format niezależnie od jego nazwy. Ten detektor odczytuje podpis każdego przesłanego pliku i zwraca kanoniczny typ MIME oraz najpowszechniejsze przypisanie rozszerzenia, umożliwiając weryfikację, czy przesłany plik odpowiada temu, co twierdzi klient.
Jak funkcjonuje wykrywanie MIME
-
1
Upuść plik
Dowolnej wielkości; czytane są wyłącznie pierwsze 4–16 KB.
-
2
Odczytaj magiczne bajty
Większość formatów rozpoczyna się od znanego podpisu.
-
3
Porównanie z bazą danych podpisów
Detektor stosuje te same zasady co `file(1)` / libmagic.
-
4
Zwróć MIME oraz rozszerzenie
Pokazuje typ multimediów według RFC 6838, kanoniczne rozszerzenie oraz czytelną etykietę.
Przykładowe podpisy
| Format | Pierwsze bajty (w postaci szesnastkowej) | 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 (lub konkretne) |
| gzip | 1F 8B 08 |
application/gzip |
| MP4 (ISO BMFF) | 00 00 00 XX 66 74 79 70 |
video/mp4 |
| MP3 | 49 44 33 lub FF FB |
audio/mpeg |
| FLAC | 66 4C 61 43 |
audio/flac |
| WAV | 52 49 46 46 ... 57 41 56 45 |
audio/wav |
| ELF (binarny plik Linuxa) | 7F 45 4C 46 |
application/x-executable |
| Windows PE (exe) | 4D 5A |
application/x-msdownload |
Dlaczego rozszerzenia nie wystarczają
– Bezpieczeństwo: Przesłany plik resume.pdf, który w rzeczywistości jest plikiem .exe, omija proste filtry rozszerzeń. Rozwiązaniem jest wykrywanie formatu MIME po stronie serwera.
– Niezgodność typu treści. Przeglądarka może wysłać niewłaściwy format MIME podczas przesyłania; odczytanie magicznych bajtów pokazuje, jakie są rzeczywiste dane.
– Odtworzone kopie zapasowe. Rozszerzenia mogą czasem zostać utracone lub usunięte; analiza treści umożliwia identyfikację każdego pliku.
Rodzina oparta na formacie ZIP
Wiele współczesnych formatów w istocie stanowi archiwa ZIP – zaczynają się od sygnatury PK\x03\x04, tak jak każde archiwum ZIP:
– Office Open XML: .docx, .xlsx, .pptx.
- OpenDocument:
.odt,.ods,.odp. – EPUB:.epub. – Pakiet APK dla Androida:.apk. – Java JAR:.jar.
Aby je odróżnić, detektor sprawdza zawartość pliku ZIP w poszukiwaniu pliku manifestu ([Content_Types].xml dla OOXML, mimetype dla ODF/EPUB).
Przydatne kombinacje
- Pierwsze 512 bajtów obejmują większość podpisów formatowych.
- Pierwsze 4 KB obejmują formaty oparte na ZIP, w których plik manifest znajduje się w większym miejscu w strukturze pliku.
- Pierwsze 16 KB obejmuje przypadki skrajne, takie jak niektóre kontenery multimedialne.
Nie jest doskonałe
- Pliki tekstowe typu „plain text“ nie zawierają bajtów magicznych. Detektor przywraca się do metody heurystycznej (czy jest to poprawny format UTF-8? Czy przypomina JSON lub XML?).
- Zaszyfrowane lub zasłonięte pliki mogą wyglądać jak przypadkowe bajty bez rozpoznawalnego podpisu.
– Niejednoznaczność formatu: zarówno
audio/wav, jak ivideo/avizaczynają się odRIFF; detektor sprawdza drugi identyfikator (WAVEw porównaniu zAVIpo czterech bajtach).
Najczęściej zadawane pytania
Nie. Proces wykrywania odbywa się w Twojej przeglądarce – czytane są tylko pierwsze kilka KB danych, które są porównywane z bazą podpisów po stronie klienta. Nic nie opuszcza Twojego urządzenia.
Ponieważ OOXML, ODF, EPUB i JAR wszystkie rozpoczynają się od podpisu ZIP, detektor sprawdza zawartość pliku w celu wykrycia manifestu specyficznego dla danego formatu i zwraca odpowiedni kod MIME (application/vnd.openxmlformats-...).
Wykrywa naiwne zmiany nazw – plik .exe, zmieniony na .jpg, zostanie rozpoznany jako wykonywalny dzięki swoim magicznym bajtom. Doświadczeni atakujący osadzają ładunki wewnątrz prawdziwych plików multimedialnych lub używają plików poliglotowych odpowiadających kilku podpisom; takie metody omijają proste mechanizmy wykrywania.
Tekst prosty nie zawiera bajtów magicznych. Detektor wykorzystuje kryteria heurystyczne: czy jest to ważny format UTF-8? ważny format JSON? deklaracja XML? struktura CSV? W przeciwnym przypadku przyjmuje standardowy kod text/plain.
Baza danych podpisów jest podobna (wywodzi się z zasad biblioteki libmagic w systemie Unix). Wyniki powinny być identyczne dla powszechnych formatów; dla nietypowych lub dostosowanych formatów mogą wystąpić różnice.
Powiązane narzędzia
Domen do adresu IP
Zamień dowolną nazwę domeny na jej adresy IPv4 (A) i IPv6 (AAAA) i skopiuj je do dowolnego narzędzia sieciowego.
Kalkulator CIDR
Oblicz adres sieci, adres rozgłoszeniowy, zakres hostów, użyteczne adresy IP i maskę podsieci dla dowolnego bloku CIDR w IPv4.
Sprawdzacz wieku domeny
Sprawdź, kiedy domena została po raz pierwszy zarejestrowana oraz jej wiek w latach, miesiącach i dniach, korzystając z danych WHOIS z rejestru.
Tester CORS
Wyślij żądanie preflight OPTIONS do dowolnego adresu URL i sprawdź nagłówki Access-Control-Allow-Origin, nagłówki i metody zwracane przez serwer. Szybko diagnozuj błędy cross-origin.
Wyszukiwanie adresu IP
Sprawdź publiczny adres IPv4 lub IPv6, aby zobaczyć przybliżony kraj, region, miasto, współrzędne, ISP, ASN, organizację i strefę czasową.
Tester endpointów API
Testuj w przeglądarce endpoint HTTP lub HTTPS ze zgodą CORS. Sprawdź stan końcowy, udostępnione nagłówki, czas i ograniczony podgląd treści.
Narzędzie jest dostępne w innych językach
- Bộ phát hiện loại MIME [VI]
- Detector de Tipo MIME [PT]
- Detector de tipo MIME [ES]
- أداة كشف نوع ملفات MIME [AR]
- Détecteur de type MIME [FR]
- MIMEタイプ検出器 [JA]
- MIME 타입 감지기 [KO]
- Detektor Jenis MIME [ID]
- MIME-type detector [NL]
- MIME-typdetektor [SV]
- เครื่องตรวจจับประเภทไฟล์ MIME [TH]
- MIME-Typ-Detektor [DE]
- MIME Type Detector [EN]
- Rilevatore di tipo MIME [IT]
- Определение MIME-типа файла [RU]
- MIME Tür Tespit Cihazı [TR]
- MIME类型检测器 [ZH]