मान लीजिए कि मेरे पास एक छवि अपलोडर स्क्रिप्ट है, मैं अपलोड निर्देशिका को PHP या यहां तक कि एचटीएमएल को निष्पादित करने से रोकना चाहता हूं, केवल इसे सादा पाठ के रूप में दिखाकर, मैंने कई वेबसाइटों में यह चाल देखी है लेकिन मुझे नहीं पता कि वे कैसे करते हैं यह।किसी विशिष्ट निर्देशिका को PHP, HTML, और जावास्क्रिप्ट भाषाओं को चलाने से कैसे रोकें?
संक्षेप में, अगर मैं उस निर्देशिका में evil.php
अपलोड करता हूं, और मैं इसे एक्सेस करने का प्रयास करता हूं तो मुझे केवल एक सादा पाठ स्रोत दिखाई देगा, कोई HTML या php निष्पादित नहीं किया जाएगा। (लेकिन मैं अभी भी छवियों को सामान्य रूप से दिखाना चाहता हूं)
मुझे पता है कि मैं header("content-type:text/plain");
द्वारा ऐसा कर सकता हूं लेकिन यह उपयोगी नहीं होगा, क्योंकि मैं चाहता हूं कि content-type:text/plain
स्वचालित रूप से आउटपुट की गई प्रत्येक चीज़ के लिए सर्वर द्वारा सेट करना है छवियों को छोड़कर अपलोड निर्देशिका से।
नोट: मैं PHP 5.3.2/सेंट ओएस और नवीनतम सीपीनल चला रहा हूं।
Options -Indexes
Options -ExecCGI
AddHandler cgi-script .php .php3 .php4 .phtml .pl .py .jsp .asp .htm .shtml .sh .cgi
.htaccess फ़ाइल से समस्या है अपने अपलोड करता है, तो:
धन्यवाद
क्या यह मानना सुरक्षित है कि आप अपाचे का उपयोग अपने HTTP सर्वर के रूप में कर रहे हैं? चूंकि सभी समाधान अब तक मानते हैं कि – Gareth
जावास्क्रिप्ट केवल तब तक निष्पादित होगा जब HTML फ़ाइल से कहा जाता है, जहां तक मुझे पता है। अपने ब्राउज़र से जेएस फ़ाइल लिंक पर क्लिक करने का प्रयास करें, और यह सादे टेक्स्ट को खींचता है। कुछ ब्राउज़र फ़ाइल डाउनलोड करने का प्रयास कर सकते हैं, इसलिए उस प्रकार को टेक्स्ट/सादे को उस खाते में सेट करना सबसे अच्छा है, लेकिन किसी के द्वारा स्वयं को जेएस अपलोड करने और किसी अन्य उपयोगकर्ता को चोट पहुंचाने का कोई वास्तविक खतरा नहीं है। (फिर भी, किसी भी तरह से बेअसर करने के लिए अच्छी कॉल, लेकिन चूंकि आपने विशेष रूप से जेएस का उल्लेख किया है ...) – Anthony
@ गैरेथ, अगर वे सेंटोस से कुछ और चला रहे थे तो मैं बहुत चौंक गया। क्या लिनक्स के लिए कोई अन्य मुख्यधारा HTTP सर्वर है? – Anthony