قد يرفع المستخدم صورة أو مستندًا إلى الموقع، لكن اسم الملف ونوع المحتوى المعلن من المتصفح ليسا دليلًا كافيًا على سلامته. يحتاج نظام الرفع إلى التحقق من الحجم والمحتوى والصلاحيات وطريقة العرض والتخزين، مع عدم تحويل كل ملف غير مألوف إلى خطأ غامض للمستخدم.
عامل بيانات العميل على أنها وصف لا إثبات
يمكن للمتصفح إرسال Content-Type واسم ملف، لكن الخادم يجب أن يحدد ما إذا كان النوع مسموحًا عبر فحص بنية الملف أو استخدام مكتبة تعرف نوعه. لا تكتفِ بمطابقة الامتداد. ضع قائمة أنواع محددة حسب وظيفة المنتج؛ فموقع صور المقالات لا يحتاج قبول ملفات تنفيذية أو أرشيفات عامة دون سبب واضح.
ضع حدودًا للحجم والتعقيد
حدد أقصى حجم لكل ملف وإجمالي لكل مستخدم، واحمِ المعالجة من الصور ذات الأبعاد الضخمة أو الملفات المضغوطة التي تتمدد إلى أحجام غير متوقعة. افحص عدد الصفحات أو الإطارات عندما يكون ذلك مناسبًا، واضبط المهلات والذاكرة. لا تجعل عملية تحويل صورة واحدة تستهلك موارد العامل المشترك حتى تتأخر بقية طلبات الموقع.
افصل منطقة الاستقبال عن النشر
خزّن الملفات الجديدة مؤقتًا خارج مسار التنفيذ العام، ثم نفّذ التحقق والتحويل قبل إتاحتها. استخدم اسمًا داخليًا مولدًا بدل الاعتماد على اسم المستخدم، واضبط ترويسات التنزيل والعرض المناسبة. عندما تكون الملفات خاصة، يجب التحقق من صلاحية الوصول عند كل تنزيل؛ إخفاء الرابط الطويل وحده ليس آلية تفويض.
حوّل الصور والمستندات وفق سياسة واضحة
قد يكون من الأفضل إعادة ترميز الصور المسموح بها إلى صيغة مدعومة لتقليل التعقيد وإزالة بيانات وصفية غير لازمة، مع مراعاة اتجاه الصورة وشفافيتها. لا تعد المستخدم بأن إعادة الترميز تضمن خلو الملف من كل المخاطر. بالنسبة للمستندات، استخدم أدوات معاينة معزولة وحدود موارد مناسبة بدل فتح الملف مباشرة داخل عملية التطبيق الأساسية.
صمم حالات الفشل بحيث يمكن علاجها
أظهر سبب الرفض للمستخدم: نوع غير مدعوم، حجم زائد، ملف تالف، أو تعذر الفحص مؤقتًا. لا تعرض تفاصيل داخلية حساسة أو مسارات الخادم. احتفظ بسجل تشخيصي محدود يوضح مرحلة الفشل ومعرف العملية دون حفظ محتوى الملفات في السجلات. وفر إعادة محاولة عند انقطاع الشبكة دون إنشاء نسخ مكررة.
مثال رفع صورة لمقال
يختار الكاتب ملفًا باسم cover.jpg لكنه يحتوي تنسيقًا مختلفًا أو بيانات غير صالحة. يجب أن يرفضه النظام برسالة مفهومة أو يحوله إذا كان النوع الأصلي مسموحًا وآمن المعالجة. بعد النجاح، افحص أن الصورة تظهر في المقال ومعاينة الرابط وأن النسخ المصغرة متاحة؛ فالتحقق عند الرفع خطوة من سلسلة جودة كاملة.
شارك في تقييم ونقاش المقال
رأيك يضيف قيمة للمقال ويساعدنا على تحسين المحتوى والنقاش حوله.
النقاش
جارٍ تحميل التعليقات…