"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنك تحديد نوع الملف الذي تم تحميله بدقة في PHP؟

كيف يمكنك تحديد نوع الملف الذي تم تحميله بدقة في PHP؟

تم النشر بتاريخ 2024-11-11
تصفح:530

How Can You Accurately Determine the Type of an Uploaded File in PHP?

كيفية تحديد نوع الملف الذي تم تحميله بدقة في PHP

مع تزايد شعبية مشاركة الملفات وتحميلاتها عبر الإنترنت، يجب التحقق من الملف يعد نوع الملفات التي تم تحميلها إجراءً أساسيًا للأمان وسلامة البيانات. في PHP، هناك عدة طرق متاحة للقيام بذلك. ومع ذلك، فإن الخيارات التي ذكرتها لها حدودها.

وظائف PHP المضمنة: القيود

تتحقق وظائف is_uploaded_file() و move_uploaded_file() فقط مما إذا كان الملف موجودًا أم لا. تم الرفع. أنها لا توفر معلومات حول نوع الملف.

التحقق من نوع MIME: معيب وقابل للتغيير

يمكن استخدام أنواع MIME (ملحقات بريد الإنترنت متعددة الأغراض) لتحديد الملفات، لكنها غالبًا ما تكون غير دقيقة أو مزيفة. يمكن للمتصفحات وأنظمة التشغيل أيضًا تفسير أنواع MIME بشكل مختلف.

التحقق من الامتدادات: قابل للتغيير بسهولة

التحقق من امتداد الملف لا يمكن الاعتماد عليه بالمثل، حيث يمكن للمستخدمين إعادة تسمية الملفات بسهولة لتغييرها. الامتداد.

الحل: نوع MIME ومعلومات الملف

لتحديد نوع الملف بدقة، فكر في استخدام امتدادات mime_content_type أو Fileinfo الخاصة بـ PHP. تقوم هذه الأوامر بفحص محتويات الملف بدلاً من الاعتماد على الرؤوس أو الامتدادات.

طريقة بديلة باستخدام النظام("file -bi $uploadedfile")

كما ذكرت، فإن يمكن أن يكون الأمر system("file -bi $uploadedfile") فعالاً أيضًا في تحديد أنواع الملفات. ومع ذلك، لاحظ أن النتائج قد لا تكون دقيقة دائمًا، خاصة إذا كان الملف تالفًا أو لم يكن النظام مزودًا بالأدوات اللازمة مثبتة. بالإضافة إلى الطرق التي تمت مناقشتها، إليك بعض النصائح العامة للتحقق من أنواع الملفات:

استخدم مجموعة من الطرق لتحسين الدقة.

السماح بأنواع ملفات محددة فقط.

تطهير أسماء الملفات قبل الحفظ.
  • تنفيذ التحقق من نوع الملف من جانب الخادم وكذلك التحقق من جانب العميل.
  • استخدام التحقق الصارم من صحة الإدخال والتطهير لمنع تحميل الملفات الضارة.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3