2010-12-02 15 views
7

कुछ दिन पहले मुझे एक भयानक समस्या थी। मैं अपने यूबंटू सर्वर पर अपडेट इंस्टॉल कर रहा था, जो लगभग 10 वेबसाइटों के लिए मेजबान है। अद्यतन के दौरान, कुछ गलत हो गया, और mod_php अपाचे अक्षम हो गया। नतीजतन, PHP समर्थन समाप्त हो गया था, और कुछ मिनटों तक (जब तक मुझे पता नहीं चला कि क्या गलत है) उपयोगकर्ताओं को वेबसाइट देखने के बजाय, PHP स्क्रिप्ट डाउनलोड करने का निमंत्रण मिला। कहने की जरूरत नहीं है, तो पूरी दुनिया में अपने स्क्रिप्ट स्रोतों को उजागर करने के अलावा कुछ और भी बुरा नहीं है, खासकर जब डेटाबेस प्रमाण-पत्रों को अंदर रखा जाता है।PHP स्क्रिप्ट सुरक्षा

प्रश्न: मैं अपाचे को कैसे कॉन्फ़िगर कर सकता हूं, इसलिए भविष्य में यह स्थिति संभव नहीं होगी? Apache2.conf में मुझे किन लाइनों को जोड़ना चाहिए, ताकि mod_php अक्षम होने पर PHP फ़ाइलों को डाउनलोड नहीं किया जा सके?

+2

मुझे लगता है कि जब आप उन्नयन कर रहे हों तो आपको शायद अपने अपाचे को नीचे रखना चाहिए। –

उत्तर

9

बस इस मामले उपयोगकर्ता में रूट निर्देशिका

php_admin_flag engine on 

में .htaccess के लिए निम्न जोड़ने के इस निर्देशिका से किसी भी फाइल को पढ़ने के लिए और नीचे क्योंकि कोई मॉड्यूल मामले में php_admin_flag निर्देश को परिभाषित करता है की कोशिश कर रहा HTTP 500 त्रुटि प्राप्त होगी mod_php बंद है।

+0

हाहा, मुझे लगता है कि काम करता है। थोड़ा बदसूरत लेकिन यह नौकरी करता है। – VDVLeon

+0

यह बहुत अच्छा है। –

+1

दिलचस्प दृष्टिकोण; मुझे लगता है कि मैं जो प्रस्ताव देता हूं वह अभी भी एक बेहतर दृष्टिकोण है, क्योंकि यह बिना किसी .htaccess फ़ाइलों को सक्षम किए बिना काम करेगा। –

5

एक और सुरक्षित तरीका केवल उन चीज़ों को न रखने के लिए होगा जिन्हें आप दस्तावेज़ रूट में पहली बार एक्सेस नहीं करना चाहते हैं। मेरा उत्तर here देखें जो अधिक जानकारी प्रदान करता है; मूल विचार यह है कि, यदि आप कभी भी यूआरएल के माध्यम से फ़ाइल तक पहुंचना नहीं चाहते हैं, तो डर फ़ाइल को यूआरएल सुलभ जगह में न रखें। आपके ऐप कोड का 99% दस्तावेज़ रूट के नीचे नहीं होना चाहिए; तो यह वास्तव में कोई फर्क नहीं पड़ता कि आप अपने अपाचे/PHP सेटअप के साथ क्या करते हैं, आप अभी भी सुरक्षित हैं।

+0

से शुरू करने वाला सर्वर एक बहुत अच्छी सलाह, धन्यवाद। यह समस्या को हल नहीं करता है, क्योंकि मुझे कम से कम index.php को दस्तावेज़ रूट में रखना होगा, है ना? –

+0

हां, लेकिन आप इसकी रक्षा करने की कोशिश नहीं कर रहे हैं; या बल्कि, कुछ भी महत्वपूर्ण नहीं होगा। मेरी index.php में लगभग 2 लाइनें हैं, जो सिर्फ नियंत्रक बनाती हैं और इसे कॉल करती हैं; यह सब कुछ का ख्याल रखता है। –

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