
مدقق تكوين PHP آلي يفحص ملف php.ini بحثًا عن أخطاء التهيئة الأمنية، يدعم وضعي CLI والويب، ويخرج النتائج بصيغة نص أو HTML أو JSON.
تحقق من تكوين PHP الحالي بحثًا عن ثغرات أمنية محتملة.
ما عليك سوى الوصول إلى هذا الملف من خادم الويب الخاص بك أو تشغيله عبر CLI.
تمت كتابة هذا البرنامج بواسطة Ben Fuhrmannek، SektionEins GmbH، في إطار جهود أتمتة فحوصات php.ini وقضاء المزيد من الوقت في المهام الممتعة.
CLI: ما عليك سوى استدعاء php phpconfigcheck.php. هذا كل شيء. أضف -a لعرض النتائج المخفية أيضًا، و-h لإخراج HTML، و-j لإخراج JSON.
WEB: انسخ هذا السكريبت إلى أي دليل يمكن لخادم الويب الوصول إليه، مثل جذر المستندات الخاص بك. انظر أيضًا 'الضمانات' أدناه.
الإخراج في وضع غير CLI يكون HTML افتراضيًا. يمكن تغيير هذا السلوك عن طريق تعيين متغير البيئة PCC_OUTPUT_TYPE=text أو PCC_OUTPUT_TYPE=json.
بعض حالات الاختبار تكون مخفية افتراضيًا، وتحديدًا: تم التخطي، ناجح، غير معروف/غير مختبر. لإظهار جميع النتائج، استخدم phpconfigcheck.php?showall=1. هذا لا ينطبق على إخراج JSON، الذي يعيد جميع النتائج افتراضيًا.
للتحكم في تنسيق الإخراج في وضع WEB، استخدم phpconfigcheck.php?format=...، حيث تكون قيمة format إحدى text أو html أو json. على سبيل المثال: phpconfigcheck.php?format=text. معامل format له الأسبقية على PCC_OUTPUT_TYPE.
في معظم الأحيان، من الجيد إبقاء الأمور المتعلقة بالأمان مثل تكوين PHP خاصة بك. تم تنفيذ الضمانات التالية:
التحقق من mtime: يتوقف هذا السكريبت عن العمل في وضع غير CLI بعد يومين. يمكن إعادة تفعيل الفحص عن طريق touch phpconfigcheck.php أو عن طريق نسخ السكريبت إلى خادمك مرة أخرى (مثل عبر SCP). يمكن تعطيل هذا الفحص عن طريق تعيين متغير البيئة: PCC_DISABLE_MTIME=1، مثل SetEnv PCC_DISABLE_MTIME 1 في .htaccess لأباتشي.
التحقق من عنوان IP المصدر: افتراضيًا، يمكن للمضيف المحلي فقط (127.0.0.1 و ::1) الوصول إلى هذا السكريبت. يمكن إضافة مضيفين آخرين عن طريق تعيين PCC_ALLOW_IP إلى عنوان IP الخاص بك أو نمط بدل، مثل SetEnv PCC_ALLOW_IP 10.0.0.* في .htaccess. يمكنك أيضًا اختيار الوصول إلى خادم الويب الخاص بك عن طريق إعادة توجيه منفذ SSH، مثل ssh -D أو ssh -L.
الوظائف المعطلة: يحتاج هذا السكريبت إلى بعض الوظائف للعمل بشكل صحيح، مثل ini_get() و stat(). إذا كانت إحدى هذه الوظائف مدرجة في القائمة السوداء (أو غير مدرجة في القائمة البيضاء) فسيفشل التنفيذ أو ينتج عنه إخراج غير صحيح. في هذه الحالات، من الممكن وضع Suhosin في وضع المحاكاة مؤقتًا وتجاهل disable_functions. ليكون الأمر آمنًا، يمكن عمل تكوين أمني مخفف باستخدام .htaccess في دليل منفصل. أيضًا، يمكن استدعاء هذا السكريبت من سطر الأوامر باستخدام تكوين خادم الويب الخاص بك، مثل php -n -c /etc/.../php.ini phpconfigcheck.php.
CLI: الإصدارات الأقدم من PHP لا تعرف اسم SAPI 'cli' وتستخدم نمط إخراج CGI حتى في CLI. حل بديل: PCC_OUTPUT_TYPE=text /opt/php/php-5.1.6/bin/php phpconfigcheck.php
هذه الأداة ستدعمك فقط في إعداد بيئة PHP آمنة. لا شيء غير ذلك. قد يظل الإعداد أو البرنامج أو أي تكوين ذي صلة ضعيفًا، حتى لو كان إخراج هذه الأداة يشير إلى عكس ذلك.