2009-05-06 15 views
15

मेरे वेब एप्लिकेशन के लिए, लोग वेब फ़ॉर्म से छवियों को अपने वेब सर्वर पर अपलोड कर सकते हैं।मैं वेब सर्वर की छवि अपलोड निर्देशिका कैसे सुरक्षित करूं?

मुझे उस छवि अपलोड निर्देशिका के लिए CHMOD सेटिंग्स को सेट करना चाहिए ताकि लोग छवियों (वेब ​​सर्वर से) को उस निर्देशिका में अपलोड कर सकें लेकिन सुरक्षा कारणों से अपलोड की गई किसी भी फ़ाइल को निष्पादित न करें।

क्या chmod सेटिंग्स होगी? :

chmod 744 directory/ 

उत्तर

0

Chmod निर्देशिका पर ऐसा नहीं कर सकते, और इसके अलावा अपने वेब सर्वर कोई बात नहीं क्या विधा है निष्पादन योग्य के रूप में .php व्याख्या कर सकते हैं। आप शायद यह निर्दिष्ट करना चाहते हैं कि आप किस सर्वर का उपयोग कर रहे हैं, वहां एक .htaccess या इसी तरह का निर्देश हो सकता है जिसका आप उपयोग कर सकते हैं।

ध्यान दें कि 'अमल' निर्देशिकाओं पर अर्थ है 'निर्देशिका के अंदर फ़ाइलें एक्सेस कर सकते', इसलिए है कि यदि आप अपने वेब सर्वर के अंदर फ़ाइलों की एक्सेस करना चाहते हैं निर्धारित किया जाना चाहिए ...

22

वहाँ दो संभव हो रहे हैं इस संदर्भ में "निष्पादन योग्य" के लिए अर्थ, और दोनों चीजें हैं जिनके लिए आपको कॉन्फ़िगर करने की आवश्यकता है। कि एक खोल

  • एक फाइल हो सकता है कि में फ़ाइल का नाम लिखकर कमांड लाइन से चला सकते हैं

    1. एक निष्पादन बाइनरी फ़ाइल पढ़ सकते हैं और किसी वेब सर्वर द्वारा स्क्रिप्ट के रूप में संसाधित।

    हैंडलिंग बाइनरी-निष्पादन

    एक संयुक्त राष्ट्र * x सिस्टम पर मामला 1 के खिलाफ कॉन्फ़िगर करने के लिए आप यह सुनिश्चित करना है कि आपकी अपलोड निर्देशिका कि जरूरत है, और फ़ाइलों उसमें, वेब सर्वर उपयोगकर्ता के स्वामित्व में हैं और केवल उस उपयोगकर्ता द्वारा पठनीय। निर्देशिका निष्पादन योग्य होना चाहिए; इसका मतलब है कि उस निर्देशिका के अंदर की फ़ाइलों को एक्सेस किया जा सकता है)। यदि वेब उपयोगकर्ता को निर्देशिका में फ़ाइलों को सूचीबद्ध करने की आवश्यकता है, तो इसे भी पठनीय होना चाहिए। यह निश्चित रूप से, नई फ़ाइलों को बनाने की अनुमति देने के लिए भी लिखने योग्य होना चाहिए।

    इस प्रकार अष्टाधारी सेट आप चाहते हैं होगा

    chown <web-server-user> <upload-dir> 
    chmod 0700 <upload-dir> 
    

    फ़ाइलों निष्पादन योग्य नहीं होना चाहिए और केवल पठनीय और वेब सर्वर द्वारा लिखने योग्य होना चाहिए, इसलिए इन होना चाहिए

    chmod 0600 <uploaded-file> 
    

    कृपया ध्यान दें इसका मतलब है कि केवल वेब सर्वर उपयोगकर्ता इन फ़ाइलों को देखने में सक्षम होंगे। सुरक्षा के लिए यह सबसे अच्छी स्थिति है। हालांकि, अगर आप वास्तव में अन्य स्थानीय उपयोगकर्ताओं की जरूरत है, इन फ़ाइलों को देखने के लिए सक्षम होने के लिए क्या तो

    chmod 0755 <upload-dir> 
    chmod 0644 <uploaded-file> 
    

    का उपयोग हैंडलिंग वेब सर्वर excutable

    मामले 2 के खिलाफ कोडिंग वेब सर्वर विशिष्ट है।

    एक विकल्प वेब निर्देशिका के बाहर अपलोड निर्देशिका को स्थानांतरित करना है, अपलोड की गई फ़ाइलों तक सीधे यूआरएल पहुंच को पूरी तरह से सीमित करना और केवल सर्वर-साइड कोड के माध्यम से उनकी सेवा करना है।आपका कोड फ़ाइल सामग्री को पढ़ता है और छेड़छाड़ करता है, इस प्रकार यह सुनिश्चित करता है कि इसे वेब सर्वर

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

    <Directory "path-to-upload-dir"> 
        AllowOverride None 
        Options -ExecCGI 
    </Directory> 
    

    AllowOverride कोई भी महत्वपूर्ण है, के रूप में यह अपने अपलोड निर्देशिका और वेब फिर से विन्यस्त करने के लिए एक .htaccess फाइल अपलोड करने किसी को भी बंद हो जाता है उस निर्देशिका के लिए सर्वर अनुमतियाँ।

  • +0

    विशेषज्ञता का मेरा क्षेत्र नहीं, लेकिन मेरे पास php_admin_flag को जोड़ने के लिए कुछ और के रूप में हाइलाइट किया गया था। विकल्प पंक्ति के नीचे "php_admin_flag इंजन बंद करें" जोड़ें। <निर्देशिका "पथ करने वाली अपलोड-निर्देशिका"> \t AllowOverride कोई नहीं \t विकल्प -ExecCGI \t php_admin_flag बंद इंजन – Jake

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