2012-11-17 9 views
8

मेरे विश्वविद्यालय है जो एक ही डेटा उन्हें भर में नजर आता है कई सर्वरों है, तो मैं उदाहरणको अक्षम करने से डाउनलोड करता है, तो पीएचपी स्थापित नहीं है

foo.uni.edu/file.php 
bar.uni.edu/file.php 

बात है के लिए उपयोग कर सकते हैं, नहीं सभी सर्वरों पीएचपी स्थापित , इसलिए कोई भी संभवतः मेरी PHP फ़ाइलों को डाउनलोड कर सकता है अगर उन्होंने एक सर्वर के माध्यम से कनेक्शन बनाया है जिसमें PHP स्थापित नहीं है। क्या इससे बचने के लिए संभवतः .htaccess के साथ कोई तरीका है? जैसा कि PHP सर्वर स्थापित होने पर केवल PHP फ़ाइलों को खोलने की अनुमति है?

+1

आप '' का उपयोग करने में सक्षम हो सकते हैं। – mario

+0

क्यों न केवल एक (लोड संतुलन) सर्वर तक पहुंच प्रतिबंधित करें? – Kubee

उत्तर

1

यदि दस्तावेज़ रूट के बाहर फ़ाइलों को संग्रहीत करना संभव है, तो आप डॉक्रूट के बाहर सभी संवेदनशील डेटा संग्रहीत करके समस्या के आसपास काम कर सकते हैं। तब आपकी सार्वजनिक रूप से सुलभ स्क्रिप्ट्स उन फ़ाइलों तक पहुंचने के लिए include का उपयोग करेंगी।

तो, आप /username/public_html को अपलोड करें, और public_html अपने दस्तावेज़ जड़ है अगर (जैसे, foo.uni.edu/file.php/username/public_html/file.php है), तो आप /username/file.php के बजाय अपलोड करें और /username/public_html में एक और स्क्रिप्ट जगह जो केवल तरह include('../file.php');

यह कुछ शामिल होगा किसी भी मामले में अच्छा अभ्यास है, अगर सर्वर पर कॉन्फ़िगरेशन त्रुटि कभी भी PHP को पार्स होने से रोकती है।

तुम भी PHP फ़ाइलों में पहुंचने से रोका, तो mod_php सक्षम नहीं है IfModule और FilesMatch का उपयोग कर की कोशिश कर सकते:

<IfModule !mod_php.c> 
    <FilesMatch "\.php$"> 
     Order Deny,Allow 
     Deny from All 
    </FilesMatch> 
</IfModule> 

अगर यह काम नहीं करता है, !mod_php5.c आज़मा सकते हैं।

+0

किसी भी फ़ाइल में किसी PHP फ़ाइल (सर्वर में जिसने php स्थापित किया है) तक पहुंचने का प्रयास करते समय अनुमति अस्वीकार कर दी है – vascoFG

+0

क्या यह संभव है कि सर्वर एक पुरातन PHP4 स्थापित कर रहे हों? यदि ऐसा है, तो '! Mod_php4.c' आज़माएं। अगर यह काम नहीं करता है, तो मुझे डर है कि मैं फंस गया हूं। – Kelvin

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