أداة كشف نوع ملفات MIME

التالي

الامتدادات المضافة إلى الملفات غير دقيقة؛ فكل شخص يمكنه تغيير اسم ملف malware.exe إلى photo.jpg. الطريقة الموثوقة لمعرفة طبيعة الملف الحقيقية هي قراءة أول بایتين منه، حيث تحتوي معظم التنسيقات على توقيع (يُعرف بـ“الرقم السحري“) يحدد تنسيقه بغض النظر عن اسمه. يقوم هذا الكاشف بقراءة هذا التوقيع في أي ملف مُرفع، ويُرجع نوع MIME القياسي مع أقرب امتداد مطابق، مما يسمح لك بالتحقق من أن الملف المرفوع هو نفس الملف الذي ذكره العميل.

كيف يعمل كشف تنسيق MIME؟

  1. 1

    أسقِط ملفًا

    أي حجم؛ يتم قراءة الجزء الأول فقط الذي يتراوح بين 4 و16 كيلوبايت.

  2. 2

    اقرأ البايتات السحرية

    تبدأ معظم التنسيقات بتوقيع معروف.

  3. 3

    قارن مع قاعدة بيانات التوقيعات

    يستخدم الكاشف نفس القواعد المستخدمة في `file(1)` / libmagic.

  4. 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
PDF 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 (ملف ثنائي لليونكس) 7F 45 4C 46 application/x-executable
Windows PE (ملف تنفيذي) 4D 5A application/x-msdownload

لماذا لا تكفي الامتدادات؟

  • الأمان: ملف resume.pdf المُحمَّل، والذي يُعد في الواقع ملفًا من نوع .exe، يتخطى مرشحات التوسعة البسيطة؛ ويُعد كشف تنسيق MIME على جانب الخادم الحل المناسب لذلك.
  • عدم تطابق نوع المحتوى: قد يرسل المتصفح نوع 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 للعثور على ملف المنشور ([Content_Types].xml بالنسبة إلى تنسيق OOXML، وmimetype بالنسبة إلى تنسيقي ODF/EPUB).

التركيبات المفيدة

  • تغطي البايتات الأولى البالغ عددها 512 معظم توقيعات التنسيق.
  • تشمل الملفات التي يبلغ حجمها أول 4 كيلوبايت تنسيقات قائمة على تنسيق ZIP، حيث يظهر ملف المانيفست في أجزاء متقدمة من الملف.
  • تغطي الجزء الأول البالغ حجمه 16 كيلوبايت حالات خاصة مثل بعض حاويات الوسائط المتعددة.

ليست مثالية تمامًا

  • ملفات النص العادي لا تحتوي على أي بايتات سحرية؛ في هذه الحالة، يعود النظام إلى استخدام أساليب تقديرية (هل يتوافق النص مع تنسيق UTF-8؟ وهل يبدو كنص من نوع JSON أو XML؟).
  • قد تبدو الملفات المشفرة أو المُخفية كأحرف عشوائية لا تحتوي على توقيع مميز يمكن التعرف عليه. – غموض التنسيق: يبدأ كل من audio/wav وvideo/avi بالرمز RIFF؛ ويقوم جهاز الكشف بفحص المعرّف الثانوي (WAVE مقابل AVI بعد أربعة بايتات).

الأسئلة الشائعة

لا: عملية الكشف تتم مباشرةً في متصفحك؛ حيث يتم قراءة أول بضع كيلوبايت فقط ومقارنتها مع قاعدة بيانات التوقيعات الموجودة على جانب العميل، ولا يغادر أي بيانات جهازك أبدًا.

نظرًا لأن صيغ OOXML وODF وEPUB وJAR جميعها تبدأ بتوقيع ZIP، فإن أداة الكشف تفحص محتوى هذه الصيغ للعثور على الملف التوضيحي الخاص بكل صيغة، ثم تُرجع قيمة MIME الأكثر تحديدًا وهي application/vnd.openxmlformats-....

يُكتشف هذا النهج حالات إعادة التسمية البسيطة؛ فمثلاً، عندما يُعاد تسمية ملف من نوع .exe إلى .jpg، قد يظهر كملف قابل للتنفيذ بناءً على قيم بايتاته الخاصة. أما المهاجمون المتقدمون فيُدرجون بيانات مخربة داخل ملفات وسائط حقيقية، أو يستخدمون ملفات متعددة اللغات تتطابق مع عدة توقيعات رقمية، مما يجعل من المستحيل اكتشاف هذه التغييرات بسهولة.

النص العادي لا يحتوي على أي بايتات سحرية. يقوم أداة الكشف باستخدام أساليب تقييم تقريبية: هل النص يتوافق مع تنسيق UTF-8؟ أم مع تنسيق JSON؟ أم مع هيكل XML؟ أم مع هيكل CSV؟ وفي حال عدم توافق أي من هذه الشروط، يتم الاعتماد على التنسيق text/plain.

قاعدة بيانات التوقيعات متشابهة (ومنشأها قواعد libmagic في نظام يونكس)، ويجب أن تتطابق النتائج بالنسبة للصيغ الشائعة؛ أما الصيغ الغامضة أو المخصصة فقد تختلف.

أدوات ذات صلة

مُقيّم عمر النطاق

تحقق من تاريخ تسجيل النطاق لأول مرة وعمره بالسنوات والأشهر والأيام باستخدام بيانات WHOIS المتوفرة في السجل.

تحويل النطاق إلى عنوان IP

حوّل أي اسم نطاق إلى عناوينه في IPv4 (A) وIPv6 (AAAA)، ثم انسخها في أي أداة شبكة.

اختبار السرعة

أجرِ اختبار سرعة إنترنت سريعًا ومجانيًا من المتصفح. قِس سرعة التنزيل بوحدة ميغابت في الثانية إضافةً إلى زمن الاستجابة والتذبذب، واعرف ما إذا كان اتصالك جاهزًا للبثّ بدقة 4K والألعاب ومكالمات الفيديو. دون تطبيق ودون تسجيل.

أداة فحص سجلات DMARC

استعلام عن سجل DMARC TXT لأي نطاق وتحليل سياسة التحقق، ومواقع المطابقة، وعناوين الإبلاغ، بالإضافة إلى نسبة التنفيذ، وذلك بصيغة قابلة للقراءة.

حاسبة CIDR

حساب عنوان الشبكة والبث ونطاق المضيف وعناوين IP القابلة للاستخدام وقناع الشبكة الفرعية لأي كتلة IPv4 CIDR.

فاحص API

اختبر نقطة نهاية HTTP أو HTTPS تسمح بـ CORS من متصفحك، وافحص الحالة النهائية والترويسات المتاحة والزمن ومعاينة محدودة للجسم.

الأداة متاحة بلغات أخرى