2010-04-18 7 views
111
  1. मैं PHP में एक्स-पावर्ड-हेडर हेडर को कैसे हटा सकता हूं? मैं एक अपाचे सर्वर पर हूं और मैं PHP 5.21 का उपयोग करता हूं। मैं php में header_remove फ़ंक्शन का उपयोग नहीं कर सकता क्योंकि यह 5.21 द्वारा समर्थित नहीं है। मैंने हेडर अनसेट एक्स-पावर्ड-बाय का इस्तेमाल किया, यह मेरी स्थानीय मशीन पर काम करता था, लेकिन मेरे उत्पादन सर्वर पर नहीं।एक्स-पावर्ड-

  2. php के लिए header_remove() का समर्थन नहीं करता < 5.3 ver, वहाँ एक विकल्प है?

+0

पीएचपी उत्पादन पर संस्करण: PHP/5.2.13 पीएचपी संस्करण स्थानीय पर: PHP/5.2.11 अपाचे उत्पादन संस्करण: अपाचे /2.2.15 (यूनिक्स) स्थानीय पर अपाचे संस्करण: अपाचे 2.0.63 (मैक पर एमएएमपी का उपयोग करके) – Castor

+0

[ईस्टर अंडे] (http://www.0php.com/php_easter_egg.php) के लिए भी देखें। – Pacerier

उत्तर

194

मुझे लगता है कि PHP.ini में expose_php सेटिंग से नियंत्रित किया जाता है:

expose_php = off 

निर्णय लेता है कि पीएचपी तथ्य यह है कि यह सर्वर पर स्थापित किया गया है (करने के लिए अपने हस्ताक्षर जोड़कर जैसे बेनकाब कर सकते हैं वेब सर्वर हेडर)। यह किसी भी तरह से कोई सुरक्षा खतरा नहीं है, लेकिन यह निर्धारित करना संभव बनाता है कि आप अपने सर्वर पर PHP का उपयोग करते हैं या नहीं।

कोई प्रत्यक्ष सुरक्षा जोखिम है, लेकिन के रूप में डेविड सी नोट, पीएचपी का एक पुराना (और संभवतः कमजोर) संस्करण को उजागर लोग कोशिश करते हैं और यह हमला करने के लिए के लिए एक निमंत्रण हो सकता है।

+22

'किसी भी तरह से यह कोई सुरक्षा खतरा नहीं है'। होस्ट किए गए सर्वर पर चल रहे PHP के पुराने संस्करणों के लिए यह असत्य हो सकता है। मैंने सुना है कि हैकर्स पिछले संस्करणों में अच्छी तरह से प्रलेखित 'छेद' का फायदा उठा सकते हैं। इस तथ्य को छिपाना बेहतर है .... – David

+0

या विज्ञापित करें कि आप पूरी तरह से अद्यतित हैं और पैच किए गए हैं और कुछ भी मजेदार कोशिश नहीं करते हैं। –

+10

"पूरी तरह से अद्यतित" होने के नाते एक झूठी सकारात्मक आईएमओ है। पूरी तरह से जानकारी को अक्षम करना बेहतर है। यह संभव है कि कल जारी किए गए संस्करण में पहले से ही एक खुला खतरा हो सकता है, और यह निर्भर करता है कि आपका अपग्रेड चक्र कितना आक्रामक है, कुछ समय के लिए ऐसा हो सकता है। उन्हें पूरी तरह से अनुमान लगाने के लिए बेहतर है। मैं जितना ज्यादा कर सकता हूं उतना ही मैं nginx संस्करणों को भी छुपा सकता हूं। –

41

आप expose_php directive अक्षम नहीं कर सकते हैं PHP के मुखरता म्यूट करने के लिए, आप Apache’s Header directive इस्तेमाल कर सकते हैं हेडर फ़ील्ड दूर करने के लिए (php.ini के लिए उपयोग की आवश्यकता है):

Header unset X-Powered-By 
+2

यह मेरे उत्पादन सर्वर पर काम नहीं कर रहा है। यह हालांकि मेरी स्थानीय मशीन पर काम कर रहा है। ऐसा कोई विचार क्यों है कि यह क्यों हो रहा है? – Castor

+0

@Castor आप स्थानीय रूप से और उत्पादन मशीन पर किस सर्वर संस्करण का उपयोग कर रहे हैं? PHP सेटअप में कोई अंतर? –

+0

उत्पादन पर PHP संस्करण: PHP/5.2.13 स्थानीय पर PHP संस्करण: PHP/5.2.11 उत्पादन पर अपाचे संस्करण: अपाचे/2.2.15 (यूनिक्स) स्थानीय पर अपाचे संस्करण: अपाचे 2.0.63 (एमएएमपी का उपयोग करना मैक पर) – Castor

13

आप php के लिए एक पहुँच है, तो .ini, expose_php = Off सेट करें।

+3

ठीक है, मुझे यह php कोड से काम मिल गया है। हैडर ("एक्स-संचालित-द्वारा:"); सेटिंग एक्स संचालित-तक कुछ भी नहीं करने के लिए शीर्ष लेख इसे हटा दिया। सभी अपना समय और सुझाव के लिए धन्यवाद। – Castor

19
if (function_exists('header_remove')) { 
    header_remove('X-Powered-By'); // PHP 5.3+ 
} else { 
    @ini_set('expose_php', 'off'); 
} 
0

आप FastCGI कोशिश का उपयोग करते हैं:

fastcgi_hide_header X-Powered-By; 

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

  • कोई संबंधित समस्या नहीं^_^