
स्वचालित PHP कॉन्फ़िगरेशन ऑडिटर जो सुरक्षा गलत कॉन्फ़िगरेशन के लिए php.ini को स्कैन करता है, CLI और वेब मोड का समर्थन करता है, और परिणामों को टेक्स्ट, HTML या JSON में आउटपुट करता है।
वर्तमान PHP कॉन्फ़िगरेशन में संभावित सुरक्षा खामियों की जाँच करें।
बस अपने वेबसर्वर से इस फ़ाइल का उपयोग करें या CLI पर चलाएँ।
यह सॉफ़्टवेयर Ben Fuhrmannek, SektionEins GmbH द्वारा लिखा गया था, ताकि php.ini जाँचों को स्वचालित किया जा सके और खुशनुमा कार्यों पर अधिक समय बिताया जा सके।
CLI: बस php phpconfigcheck.php कॉल करें। बस इतना ही। छिपे हुए परिणाम देखने के लिए -a जोड़ें, HTML आउटपुट के लिए -h और JSON आउटपुट के लिए -j।
WEB: इस स्क्रिप्ट को अपने वेबसर्वर के लिए सुलभ किसी भी निर्देशिका में कॉपी करें, जैसे आपकी दस्तावेज़ रूट। नीचे 'सुरक्षा उपाय' भी देखें।
गैर-CLI मोड में आउटपुट डिफ़ॉल्ट रूप से HTML होता है। इस व्यवहार को पर्यावरण चर PCC_OUTPUT_TYPE=text या PCC_OUTPUT_TYPE=json सेट करके बदला जा सकता है।
कुछ परीक्षण मामले डिफ़ॉल्ट रूप से छिपे होते हैं, विशेष रूप से skipped, ok और unknown/untested। सभी परिणाम दिखाने के लिए, 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 सेट करके अक्षम किया जा सकता है, उदाहरण: apache के .htaccess में SetEnv PCC_DISABLE_MTIME 1।
स्रोत IP जाँच: डिफ़ॉल्ट रूप से केवल localhost (127.0.0.1 और ::1) इस स्क्रिप्ट तक पहुँच सकता है। अन्य होस्ट को PCC_ALLOW_IP को आपके IP पते या वाइल्डकार्ड पैटर्न पर सेट करके जोड़ा जा सकता है, उदाहरण: .htaccess में SetEnv PCC_ALLOW_IP 10.0.0.*। आप SSH पोर्ट फ़ॉरवर्डिंग के माध्यम से भी अपने वेबसर्वर तक पहुँच सकते हैं, उदाहरण: ssh -D या ssh -L।
अक्षम फ़ंक्शन: इस स्क्रिप्ट को ठीक से काम करने के लिए कुछ फ़ंक्शनों की आवश्यकता होती है, जैसे ini_get() और stat()। यदि इनमें से कोई फ़ंक्शन ब्लैकलिस्टेड है (या व्हाइटलिस्टेड नहीं है) तो निष्पादन विफल हो जाएगा या अमान्य आउटपुट उत्पन्न करेगा। ऐसे मामलों में Suhosin को अस्थायी रूप से सिमुलेशन मोड में रखना और disable_functions को छोड़ना संभव है। सुरक्षित पक्ष पर रहने के लिए, एक अलग निर्देशिका में .htaccess के साथ ढीली सुरक्षा कॉन्फ़िगरेशन की जा सकती है। साथ ही, इस स्क्रिप्ट को आपके वेबसर्वर के कॉन्फ़िगरेशन के साथ कमांड लाइन से भी कॉल किया जा सकता है, उदाहरण: php -n -c /etc/.../php.ini phpconfigcheck.php।
CLI: पुराने PHP संस्करण SAPI नाम 'cli' के बारे में नहीं जानते और CLI पर भी CGI शैली आउटपुट का उपयोग करते हैं। समाधान: PCC_OUTPUT_TYPE=text /opt/php/php-5.1.6/bin/php phpconfigcheck.php
यह उपकरण केवल एक सुरक्षित PHP वातावरण स्थापित करने में आपकी सहायता करेगा। और कुछ नहीं। आपका सेटअप, सॉफ़्टवेयर या कोई संबंधित कॉन्फ़िगरेशन अभी भी असुरक्षित हो सकता है, भले ही इस उपकरण का आउटपुट इसके विपरीत सुझाव दे।