تخطى إلى المحتوى الرئيسي
دليل تأمين وإغلاق ملف phpinfo.php: المخاطر الأمنية وإعادة ضبط بيئة السيرفر

دليل تأمين وإغلاق ملف phpinfo.php: المخاطر الأمنية وإعادة ضبط بيئة السيرفر

محتوى الدليل

يُعتبر دليل تأمين وإغلاق ملف phpinfo.php مرجعاً أمنياً حاسماً لمهندسي النظام ومطوري الويب ومدراء سيرفرات cPanel. يُعد تشغيل دالة phpinfo() في بيئة الإنتاج الحية من أبرز الأخطاء الشائعة التي تؤدي إلى ثغرات كشف المعلومات (Information Disclosure Risk). يعرض هذا الملف عند زيارته في المتصفح خريطة تفصيلية وشاملة لكافة إعدادات بيئة تشغيل PHP، والمسارات المطلقة على السيرفر، والإصدارات الدقيقة للبرمجيات والمكتبات المدمجة. يستغل المهاجمون والماسحات التلقائية هذه البيانات لتوجيه هجمات دقيقة ومستهدفة ضد موقعك.

عندما ينسى المطورون ملفات مثل phpinfo.php أو info.php أو test.php في مجلدات الويب العامة (Public HTML)، فإنهم يمنحون مخترقي الأنظمة الميزة الأساسية في مرحلة الاستطلاع الرقمي (Reconnaissance Phase). يقدم هذا الدليل التفصيلي تحليلاً كاملاً للمخاطر التي يسببها ترك هذا الملف، مع إرشادات خطوة بخطوة لإزالته، وتعطيل الدالة من ملف php.ini، وحظر الوصول عبر جدران النارية لضمان حماية سيرفرك كلياً.

المخاطر الأمنية الناجمة عن كشف ملف phpinfo.php

لا يحتوي ملف phpinfo.php على ثغرة تنفيذ كود مباشر بنفسه، ولكنه يوفر المعلومات الحساسة التي تمكّن المخترق من تحويل الثغرات البسيطة إلى اختراق كامل للأنظمة (LFI to RCE Chain). إليك أبرز المخاطر البرمجية الناتجة عن عرضه:

  • كشف الإصدارات الدقيقة (Software Version Leakage): يعرض الملف رقم الإصدار الفرعي لـ PHP ومكتبات cURL و OpenSSL و GD. يتيح ذلك للمهاجم البحث في ثغرات الأمان المعلنة (CVEs) الخاصة بهذا الإصدار الدقيق.
  • المسارات المطلقة للنظام (Absolute Path Disclosure): يكشف الملف المسار الكامل لمجلد الموقع على السيرفر (مثل /home/username/public_html). تُستغل هذه المعلومات في ثغرات التضمين المحلي (LFI) لقراءة ملفات النظام الحساسة.
  • قائمة التوجيهات المعطلة (disable_functions): يوضح الملف التوابع البرمجية المعطلة والمتاحة. إذا وجد المهاجم أن توابع مثل exec أو shell_exec أو system غير معطلة، فسيستخدمها فوراً لتنفيذ أوامر السطر البرمجي.
  • مسار المجلد المؤقت للرفوعات (upload_tmp_dir): يكشف المجلد المؤقت الذي تُحفظ فيه الملفات المرفوعة، وهو ما يساعد في هجمات رفع الملفات الخبيثة وتجاوز فلاتر الفحص.
  • التوجيهات الأمنية الحرجة: يكشف حالة التوجيهات الحساسة مثل allow_url_fopen و allow_url_include و open_basedir و display_errors.

التحليل العميق للتوجيهات الأمنية الحساسة وإمكانية استغلالها

إن فهم آلية عمل التوجيهات البرمجية يساعد مهندسي الأمن على تقييم مستوى المخاطر بوضوح. على سبيل المثال، يحدد التوجيه open_basedir المسارات التي يُسمح لنصوص PHP بقراءتها والتعديل عليها. وعندما يكون هذا التوجيه غائباً أو غير مفعل في صفحة phpinfo()، يستطيع المهاجم استخدام ثغرات تضمين الملفات لقراءة ملفات النظام الحساسة مثل /etc/passwd أو ملفات الإعدادات المسؤولة عن ربط التطبيق بقواعد البيانات.

بالإضافة إلى ذلك، فإن توجيه session.save_path يحدد المجلد المؤقت الذي تُحفظ فيه جلسات المستخدمين. إذا كان هذا المجلد قابلاً للقراءة من قبل حسابات مشتركة على السيرفر، فقد يتمكن المهاجم من سرقة توكنات الجلسات (Session Tokens) والانتحال الشخصي لحسابات المدراء دون الحاجة لمعرفة كلمات المرور.

تؤثر قيمة التوجيه max_execution_time أيضاً على ثبات السيرفر؛ حيث تتيح القيم العالية المرتفعة استهلاك الموارد المفرط وإحداث تعطيل مؤقت للخدمات (DoS) عند استدعاء نصوص بطيئة بصورة متكررة.

علاوة على ذلك، يوضح التوجيه memory_limit الحد الأقصى للذاكرة المتاحة لكل نص برمجي. إذا تم رصد حدود ذاكرة ضخمة، قد يقوم المهاجم بإرسال مدخلات معقدة تتسبب في استهلاك ذاكرة السيرفر بالكامل وإسقاط بقية المواقع المستضافة على نفس البيئة.

أخطاء شائعة عند محاولة إخفاء معلومات PHP

يقع العديد من مدراء المواقع في خطأ الاعتماد على إعادة تسمية الملف (مثل تغيير phpinfo.php إلى info_123.php)، معتقدين أن الاختفاء الأمني (Security through Obscurity) كافٍ لحماية البيانات. في الحقيقة، توفر أدوات الفحص التلقائي خاصية التخمين الجماعي للقواميس (Brute-Force Directory Discovery)، حيث يتم فحص آلاف المسميات التلقائية في ثوانٍ معدودة واكتشاف اسم الملف الجديد بكل سهولة.

الخطأ الآخر هو حظر الوصول عن طريق التوجيهات الجغرافية أو عناوين IP محددة في جدار الحماية، مع إبقاء الملف مفتاحاً ومتاحاً في الخلفية. إذا تمكن المهاجم من استخدام شبكة وكيلة (Proxy Network) أو توظيف ثغرة انحراف الطلبات الجانبية (SSRF)، سيتمكن من قراءة محتويات الملف بالكامل رغم قيود جدار الحماية الخارجية.

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

خطوات إزالة وتعطيل ملف phpinfo.php نهائياً

لتأمين السيرفر وتطبيق دليل تأمين وإغلاق ملف phpinfo.php بالكامل، اتبع الخطوات العملية التالية:

الخطوة الأولى: البحث والحذف الفعلي للملفات التشخيصية

قم بالوصول إلى حسابك عبر لوحة التحكم cPanel وافتح مدير الملفات (File Manager)، أو قم بالاتصال المباشر عبر السطر البرمجي (SSH). ابحث عن أي ملف يحتوي على دالة phpinfo() وقم بحذفه فوراً. في السطر البرمجي، يمكنك تنفيذ الأمر التلقائي للبحث عن كافة الملفات التي تنادي هذه الدالة وحذفها من مجلدات الويب.

الخطوة الثانية: تعطيل الدالة سيرفرية عبر ملف php.ini

حتى لو تم حذف الملف، يجب منع أي نص برمجي مستقبلي من استدعاء الدالة. قم بتعديل ملف php.ini الرئيسي على السيرفر أو عبر خيار MultiPHP INI Editor في cPanel، وأضف phpinfo إلى قائمة التوابع المعطلة:

disable_functions = exec,shell_exec,system,passthru,popen,proc_open,phpinfo

الخطوة الثالثة: حظر الوصول البرمجي عبر ملف .htaccess أو Nginx

يمكنك إضافة قواعد حظر صارمة في ملف .htaccess لمنع وصول أي زائر لأي ملف يحوي كلمة info عبر توجيهات الجدار الناري المحلي.

الخطوة الرابعة: إعداد جدار حماية تطبيقات الويب (WAF) والتنظيف الآلي

يمكن إضافة قواعد حظر في جدار الحماية (ModSecurity) لحظر أي طلب HTTP يحتوي على استعلامات لـ phpinfo.php، بالإضافة لإعداد مهمة مجدولة (Cron Job) تنفذ فحصاً يومياً لحذف أي ملفات تشخيص حديثة.

السلسلة الاستكشافية من الثغرات البسيطة إلى الاختراق الكامل

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

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

تأمين بيئة استضافة PHP والحفاظ على سلامة التطبيق

إن إغلاق الملفات التشخيصية يشكل جزءاً من منظومة حماية شاملة تبدأ من البنية التحتية للاستضافة. استكشف باقات الاستضافة المدارة من VavaHost التي توفر بيئة CloudLinux المعزولة وتقنيات LiteSpeed الأحدث لضمان أعلى مستويات الأمان والأداء لموقعك.

كما يمكنك التعرف على خطوات تأمين لوحات التحكم وحماية الحسابات من خلال قراءة دليل تأمين وإعادة الوصول للوحة تحكم وردبريس.

إعدادات بيئة التطوير مقابل بيئة الإنتاج (Development vs Production)

يجب الفصل التام بين بيئات العمل. في بيئة التطوير المحلية (Localhost)، يتيح phpinfo() متابعة الإعدادات بسهولة، ولكن قبل نقل الموقع للإنتاج الحي، يجب التأكد من ضبط display_errors = Off و expose_php = Off في ملف الإعدادات لمنع إرسال الترويسات التي تكشف عن إصدار PHP لمصفحات المهاجمين.

الفحص الدوري وتأمين شهادات التشفير

تأكد دائماً من تشغيل أدوات الفحص المدمجة وتأمين كافة الاتصالات عبر شهادات SSL/TLS لحماية البيانات الحساسة أثناء النقل. يمكنك الاطلاع على التفاصيل في دليل شهادات SSL وتأمين النقل من VavaHost.

الأسئلة الشائعة حول تأمين ملف phpinfo.php

إليك أهم الأسئلة الشائعة المتعلقة بالملفات التشخيصية وإدارتها:

  • هل يحتاج موقعي لملف phpinfo.php للعمل بشكل طبيعي؟ لا مطلقاً، ملف phpinfo.php هو ملف تشخيصي موقت للمطورين فقط ولا تحتاج أي منشأة أو نظام إدارة محتوى لتشغيله.
  • كيف يمكنني البحث عن ملفات phpinfo المنسية في حسابي؟ عبر مدير الملفات في cPanel باستخدام خاصية البحث، أو عبر أمر find في السطر البرمجي للوصول المباشر.
  • هل يؤدي تعطيل دالة phpinfo() إلى إيقاف إضافة أو قالب في وردبريس؟ لا، نظام وردبريس والإضافات القياسية لا يعتمدون على دالة phpinfo() لعرض صفحات الموقع أو أداء الوظائف.
  • ما هو التوجيه الأهم لتأمين PHP بعد تعطيل phpinfo؟ توجيه expose_php = Off لمنع السيرفر من إرسال إصدار PHP في ترويسات HTTP الهيدر.

في الخلاصة، يمثل حذف وتعطيل ملف phpinfo.php خطوة أمنية أساسية لا غنى عنها لحماية موقعك وسيرفرك من هجمات كشف المعلومات وضمان بيئة تشغيل آمنة ومستقرة.

جاهز للبدء؟

اختر الباقة المناسبة وفعّل استضافتك دون رسوم إعداد. يمكنك الإلغاء في أي وقت.

أطلق موقعك الآن