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

▢ التعليقات (0)