2010-07-05 11 views
5

क्या यह पता लगाने का कोई आसान तरीका है कि mod_security स्थापित है & केवल PHP का उपयोग कर सक्षम है? आदर्श रूप से बिना किसी निष्पादन() टर्मिनल प्रकार के आदेशों को निष्पादित किया जाना चाहिए।पता लगाएं कि क्या PHP_Security PHP के साथ स्थापित है?

कुछ लोगों ने apache_get_modules() का उपयोग करने की सिफारिश की है लेकिन यह विशिष्ट वेब-होस्ट इसे दिखाने की अनुमति नहीं देता है। यह अन्य उपयोगकर्ताओं द्वारा यहां भी उल्लेख किया गया है: http://www.devcomments.com/apache_get_modules-solution-to130703.htm

उत्तर

4

लोड किए गए मॉड्यूल की सरणी प्राप्त करने के लिए apache_get_modulesfunction आज़माएं। यहाँ तिनके पर लोभी

ob_start(); 
phpinfo(INFO_MODULES); 
$contents = ob_get_clean(); 
$moduleAvailable = strpos($contents, 'mod_security') !== false; 
+1

इस किया जा सकता है ध्यान दिया जाना चाहिए केवल अगर PHP को अपाचे मॉड्यूल के रूप में स्थापित किया गया है। – Artefacto

+0

यह फ़ंक्शन सभी होस्टों के लिए सही तरीके से काम नहीं कर रहा है। कुछ मेजबान कुछ कारणों से इस फ़ंक्शन का उपयोग करके सभी अपाचे मोड वापस नहीं लौटते हैं। इस पर एक और पोस्ट: http://www.devcomments.com/apache_get_modules-solution-to130703.htm कोई अन्य विचार? – user384030

2

: कि मॉड्यूल लोड किया जाता है लेकिन वहाँ सूचीबद्ध नहीं हैं, तो आप phpinfo(INFO_MODULES) बजाय साथ phpinfo की कोशिश करना चाहते हो सकता है।

अपनी स्क्रिप्ट को स्वयं से अनुरोध करने का प्रयास करें (file_get_contents या शायद कर्ल एक्सटेंशन के माध्यम से) जो mod_security की यात्रा करेगा। यह देता है, तो एक 403 (या जो भी mod_security के डिफ़ॉल्ट प्रतिक्रिया है), कि तुम पर जाने के लिए के लिए पर्याप्त जानकारी होना चाहिए ...

3

आप कर सकते हैं बस एक test.php फ़ाइल और उपयोग बना सकता हूँ ..

<?php phpinfo(); ?> 

और apache2handler को देखें, और देखो: लोड मॉड्यूल .. कुछ इस तरह ...

http://gyazo.com/bcba303469f23671f7213e1478788cbd.png

-माइक

+2

यह PHP-FPM के लिए काम नहीं करता प्रतीत होता है, इस स्थिति में कोई अपाचे 2 हैंडलर ब्लॉक नहीं है – vrijdenker

संबंधित मुद्दे