تبدأ معاينة Base64 بعدم الثقة في التسمية وحدها
تخفي قيمة Base64 شكل محتواها الأصلي. قد تبدو الأحرف المرمزة الأولى مألوفة، لكن قراءتها بالعين ليست طريقة موثوقة لمعرفة ما إذا كانت النتيجة PNG أو PDF أو أرشيف ZIP أو مقطعاً صوتياً أو ملف نص UTF-8 أو بيانات ثنائية مجهولة. يضيف Data URL الكامل تعريفاً لنوع الوسائط، إلا أن هذا التعريف كتبه منشئ القيمة وقد يكون مفقوداً أو عاماً جداً أو خاطئاً بالصدفة أو مضللاً عمداً. لذلك تتحقق أداة المعاينة المفيدة من الترميز وتعيد بناء البايتات وتفحص بصمتها قبل اختيار طريقة العرض.
يجيب نجاح فك الترميز عن سؤال واحد فقط: يمكن تفسير الأحرف بأبجدية Base64. ولا يثبت أن الملف المعاد بناؤه آمن أو كامل أو مسمى بالنوع الصحيح. تعتمد المعاينة الآمنة أيضاً على طريقة عرض الصيغة. يمكن للصور النقطية والصوت والفيديو المدعومين وPDF استخدام روابط Blob محلية يديرها المتصفح، بينما يمكن طباعة النصوص والشيفرة كنص مهرب. ولا ينبغي إدراج HTML أو JavaScript أو XML أو SVG كعلامات حية في الصفحة لمجرد نجاح فك بايتاتها. أما الأرشيفات والخطوط ومستندات المكتب والبيانات الثنائية غير المعروفة فمن الأنسب إتاحتها للتنزيل وفتحها بالتطبيق الملائم.
معاينة Base64: الطريقة والافتراضات
ابدأ بفصل ترويسة رابط `data:` عن حمولته، واشترط وجود العلامة `;base64` لهذا النوع من الإدخال. احذف المسافات المسموح بها في ASCII من الحمولة دون حذف علامات ترقيم أخرى بصمت. ارفض خلط أبجدية Base64 المعيارية ذات `+` و`/` مع أبجدية URL الآمنة ذات `-` و`_`، ثم أضف فقط الحشو الذي تحتاجه قيمة صحيحة غير محشوة. احسب الحجم بعد الفك قبل حجز الذاكرة وطبّق حد المتصفح. فك القيمة في أجزاء يقبل طولها القسمة على أربعة، وافحص ترويسة البايتات المعاد بناؤها بحثاً عن بصمات معروفة، وقارنها بنوع MIME المعلن، واجعل دليل البايتات يتحكم في المعاينة عند الاختلاف.
يعرّف RFC 4648 أبجديتي Base64 المعيارية والآمنة للرابط والحشو والتعامل مع الأحرف الخارجة عن الأبجدية. ويعرّف RFC 2397 بنية رابط `data:` ويحذر من أن نوع الوسائط يحمل اعتبارات أمان ذلك المحتوى. يقدم معيار MIME Sniffing من WHATWG دليلاً قائماً على البصمات ويشرح أثر اختلاف تفسير الأنواع في الأمان. ويوثق MDN روابط Blob المحلية للصور والوسائط وPDF والتنزيل، بما في ذلك ضرورة إبطال الرابط عندما لا يعود المحتوى متاحاً. تدعم هذه المصادر التحليل الصارم والاكتشاف القائم على البايتات والعرض الحذر والتنظيف الصريح.
مثال قابل للتحقق باستخدام معاينة Base64
الصق `data:text/plain;charset=utf-8;base64,VE9PTEZJTkE=`. تعلن الترويسة نصاً عادياً بترميز UTF-8، وتحتوي الحمولة على اثني عشر حرفاً من Base64. بعد احتساب الحشو يكون الحجم المفكوك ثمانية بايتات. ينتج الفك نص ASCII وهو `TOOLFINA`، لذلك تتفق معاينة النص وملف `decoded.txt` مع التعريف. ولاختبار التعارض، أبق تعريف `text/plain` واستبدل الحمولة بقيمة PNG صالحة تبدأ بـ`iVBORw0KGgo`. يجب أن تتقدم بصمة PNG المفكوكة وأن تعرض الصفحة تنبيهاً عن التعريف وأن يستخدم التنزيل امتداد PNG.
في Base64 المعياري بعد استكمال الحشو: عدد البايتات المفكوكة = `3 × (عدد الأحرف ÷ 4) − عدد علامات الحشو`. لا يشمل العدد المسافات ولا ترويسة Data URL. تحتوي `VE9PTEZJTkE=` على اثني عشر حرفاً وعلامة حشو واحدة، لذلك تكون النتيجة `3 × (12 ÷ 4) − 1 = 8` بايتات. يمكن تطبيق الحساب نفسه على Base64URL غير المحشو بعد إعادة صفر أو علامة أو علامتي `=` اللازمتين. وإذا كان باقي طول القيمة غير المحشوة واحداً فلا يمكن أن تمثل قيمة Base64 كاملة ويجب رفضها بدلاً من التخمين.
مواضع تحتاج إلى عناية إضافية في معاينة Base64
تُعد فواصل الأسطر المنسوخة من محتوى بريد MIME مسافات صالحة، لكن علامات الترقيم أو تسلسلات النسبة المئوية أو النص المبتور من أدوات المطور أو علامة `=` في موضع خاطئ قد تشير إلى تلف القيمة. لا يملك النص الخام رقماً سحرياً موثوقاً، لذلك قد يؤدي غياب التعريف إلى النتيجة المحافظة `text/plain`. وتشترك الصيغ المبنية على ZIP في بصمة حاوية واحدة ولا يمكن دائماً تحديدها بدقة دون اسم ملف. يختلف دعم AVIF وترميزات الصوت والفيديو وعارض PDF المضمن بين المتصفحات، ولذلك قد تحتاج النتيجة الصالحة إلى التنزيل بدلاً من العرض. وتبقى معاينة النص محدودة عمداً مع إتاحة البايتات الكاملة للتنزيل. كما تظل البرمجيات الخبيثة ضارة بعد فكها؛ المعالجة المحلية تمنع الرفع لكنها لا تستبدل برنامج الحماية أو عزل المستندات.
قارن نوع MIME المكتشف بالتعريف وتأكد من عدد البايتات المفكوكة وافتح الملف المنزّل في التطبيق المتوقع ونفذ اختبار ذهاب وعودة للبيانات المهمة. وانتبه إلى خطأ متكرر: الثقة في بادئة data: دون فحص البايتات أو تنفيذ HTML أو SVG بعد فكهما أو افتراض أن نجاح الفك يثبت سلامة الملف.
فحوص قبل اعتماد النتيجة
- Base64 معياري خام أو Base64URL دون حشو أو Base64 Data URL أو ملف نصي محلي يحتوي على إحدى هذه القيم.
- قارن نوع MIME المكتشف بالتعريف وتأكد من عدد البايتات المفكوكة وافتح الملف المنزّل في التطبيق المتوقع ونفذ اختبار ذهاب وعودة للبيانات المهمة.
- لا تستطيع بصمات الملفات تحديد كل صيغة ويختلف دعم الترميزات بين المتصفحات ومعاينة النص موجهة إلى UTF-8 ومحدودة وقد يظل الملف الصالح للتنزيل محتوى غير آمن.
- سجل مصدر Base64 الأصلي ونوع MIME المعلن والنوع المكتشف وعدد البايتات المفكوكة وقيمة تحقق عندما تكون الاستعادة جزءاً من اختبار قابل للتكرار.
- استخدم تحويل ملف إلى Base64 للعملية العكسية ومرمّز النصوص لقيم UTF-8 ومنسق JSON بعد تنزيل JSON المفكوك أو نسخه.
مصادر معاينة Base64
- RFC 4648: ترميزات Base-N
RFC Editor
يعرف ترميز Base64 وحروفه وعلامات الحشو المستخدمة في شرح سلوك الترميز وفك الترميز.
- RFC 2397: مخطط روابط data
RFC Editor
يعرّف صيغة نوع الوسائط والمعلمات وعلامة Base64 والحمولة في Data URL ويحذر من بقاء اعتبارات الأمان المعتادة للمحتوى المفكوك.
- معيار MIME Sniffing
مجموعة WHATWG
يعرّف مطابقة البصمات وقواعد تحديد موارد الصور والصوت والفيديو والخطوط والأرشيف والنص والبيانات الثنائية المجهولة مع توضيح القيود الأمنية.
- روابط Blob
توثيق MDN Web Docs
يوثق روابط الكائنات المحلية للملفات والوسائط والمعاينات والتنزيلات في الذاكرة، بما في ذلك تنظيفها باستخدام URL.revokeObjectURL.
استخدم معاينة Base64 من TOOLFINA
افتح أداة معاينة Base64 في TOOLFINA والصق Base64 الخام أو Base64URL أو Base64 Data URL كاملاً. وإذا كانت القيمة محفوظة في ملف نصي فاستخدم تحميل ملف Base64 نصي. اختر فك الترميز والمعاينة، ثم راجع صيغة الإدخال وعدد الأحرف والحجم المفكوك ونوع MIME المكتشف ومصدر الاكتشاف وتعريف Data URL. تعامل مع تنبيه عدم التطابق كسبب للتحقق من المصدر. افحص النص غير النشط أو معاينة الوسائط التي يدعمها المتصفح، ثم استخدم التنزيل لحفظ البايتات المعاد بناؤها بدقة. وفي المتصفحات المدعومة يمكنك تغيير الاسم المقترح داخل نافذة الحفظ الأصلية عند الحاجة.
المدخلات: قيمة Base64 واحدة لا يتجاوز محتواها بعد الفك 20 MiB. قد يحتوي الإدخال المعياري على مسافات بين الأسطر، وقد يحذف Base64URL الحشو، ويجب أن يتضمن Data URL العلامة `;base64`. المخرجات: بايتات جرى التحقق منها ونوع MIME مكتشف ومقارنة بالنوع المعلن ومقاييس للأحرف والبايتات ومعاينة مناسبة لصورة أو صوت أو فيديو أو PDF أو نص UTF-8 غير نشط وملف قابل للتنزيل لكل نتيجة صالحة. لا تجلب الأداة موارد بعيدة ولا تفحص البرمجيات الخبيثة ولا تصلح البيانات المبتورة ولا تفك تشفير المحتوى ولا تضمن عرض كل ترميز وسائط صالح في كل متصفح.
تبقى قيمة Base64 والبايتات المعاد بناؤها داخل المتصفح وتُحذف عند مسح النتيجة أو إغلاق الصفحة. يفصل المتصفح بيانات Data URL الوصفية ويتحقق من أبجدية Base64 واحدة وحشوها ويفكها في أجزاء محدودة ويفحص بصمات البايتات المعروفة ويختار سياق معاينة لا ينفذ المحتوى.
جرّب هذه الأداة
فك Base64 أو Data URL واكتشف نوع MIME من البايتات وعاين المحتوى المدعوم بأمان ونزّل الملف المعاد بناؤه.
معاينة Base64