2011-02-09 23 views
8

मैंने इस प्रश्न को दो बार मुझसे पूछा है, लेकिन यह पहली बार है जब मैंने इसे बंद कर लिया है। मैं उपयोगकर्ताओं को अपनी फाइलें अपलोड करने और डाउनलोड करने की अनुमति देने की योजना बना रहा हूं (.pdf, .doc, .exl, .ppt, .png, .jpg, .gif)।सुरक्षित PHP फ़ाइल अपलोड स्क्रिप्ट

इन सुझावों पर्याप्त होगा:

http://blogs.sans.org/appsecstreetfighter/2009/12/28/8-basic-rules-to-implement-secure-file-uploads/

इसके अलावा, वहाँ एक स्क्रिप्ट मैं उपयोग कर सकते हैं, मैं PHP के लिए नया हूँ।

+1

क्या लिपि? मैं देखता हूं कि उचित संचालन के लिए कुछ नियम हैं। –

+0

क्षमा करें, मतलब ट्यूटोरियल। – AAA

+1

युक्तियाँ मुझे ठीक लगती हैं, कुछ आपकी विशेष आवश्यकताओं पर निर्भर हैं \ setup –

उत्तर

23

एक देर से प्रतिक्रिया है, लेकिन मैं अपनी स्क्रिप्ट इस पर आधारित होना चाहिए लगता है: http://blog.insicdesigns.com/2009/01/secure-file-upload-in-php-web-applications/

यह सुरक्षा के सभी पहलुओं को शामिल किया गया और सभी वैध अंक बताते हैं। आशा है कि ये आपकी मदद करेगा।

संपादित करें: उपर्युक्त लिंक मृत है, here is a cached version of that article

+0

यह एक महान गाइड है – CrandellWS

+0

यह अधिक अपवर्तनीय है। –

+4

यह एक मृत लिंक है –

3

वहाँ फाइलों की एक लाख अपलोड स्क्रिप्ट है। This one दूसरों की तुलना में बुरा नहीं है।

हालांकि पीएनजी के अलावा अन्य फ़ाइलों को अपलोड करने से "सुरक्षा" काम नहीं करेगा (यह केवल फ़ाइल का नाम जांचता है)।

फाइल अपलोड करना काफी सुरक्षित है - यह दूसरों को उनको डाउनलोड करने का मौका दे रहा है जो आपके सर्वर को कुछ प्रकार के हमलों में खुलता है। लेख आपको संदर्भित दो महत्वपूर्ण बिंदुओं का उल्लेख नहीं करता:

  • अपने वेबपेज उसी डोमेन से फ़ाइलें प्रदान की किसी भी उपयोगकर्ता की सेवा कभी नहीं। डाउनलोड के लिए एक अलग डोमेन है। इस तरह अगर कोई फ्लैश एनीमेशन या एचटीएमएल का एक टुकड़ा अपलोड करने का प्रबंधन करता है, तो भी आपका डोमेन क्रॉस डोमेन अटैक से पीड़ित नहीं होगा (उदाहरण के लिए यदि आपके एप्लिकेशन में example.org का डोमेन है, तो आपको डाउनलोड, कहने, डाउनलोड करने के लिए उपयोगकर्ता सामग्री की सेवा करनी चाहिए। example.com);
  • हमेशा अच्छी तरह से नियंत्रित शीर्षकों के साथ अपलोड की गई फाइलों की सेवा करते हैं।
+0

अपलोड करने में खतरा तब होता है जब प्रोग्रामर दस्तावेज़ पेड़ में अपलोड की गई फ़ाइल को संग्रहीत करते हैं और न तो प्रत्यय (* .php) और न ही सामग्री को चेक करते हैं। एक बार ऐसा करने से दुर्भावनापूर्ण उपयोगकर्ताओं को आपके सर्वर पर एक अनियंत्रित स्क्रिप्ट चलाने की क्षमता मिलती है। ओह। फ़ाइल अपलोडर को हमेशा यह सुनिश्चित करने के लिए फ़ाइल नाम और सामग्री की जांच करनी चाहिए कि फाइल वास्तव में प्रोग्रामर की अपेक्षा की जाती है। – JBH

+0

@JBH और यह टिप्पणी मेरे उत्तर से कैसे जुड़ी है? ... – fdreger

+0

आपका उत्तर कथन की व्याख्या नहीं करता है, "फाइल अपलोड करना काफी सुरक्षित है - यह दूसरों को उनको डाउनलोड करने का मौका दे रहा है जो आपके सर्वर को कुछ प्रकार के हमलों में खुलता है । " मैंने एक उदाहरण प्रदान किया। – JBH

8

भविष्य पाठकों, जो भी php के लिए नए हैं के लिए: गाइड है, जो एक अच्छा मार्गदर्शक का उल्लेख है और बेखटके एक सिफारिश पढ़ने मैं पहली बार इस जवाब को पढ़ने के लिए सलाह देंगे है https://stackoverflow.com/a/7065880/1815624 पर Ricki और जवाब में बताया गया पढ़ने से पहले

:

http://blog.insicdesigns.com/2009/01/secure-file-upload-in-php-web-applications/

:

https://security.stackexchange.com/a/32853/31943

तो कम से गाइड Ricki ने उल्लेख पढ़ा

यदि आपको और सुरक्षा की आवश्यकता है, तो आपको इंटरनेट से डिस्कनेक्ट करने पर विचार करना चाहिए। : पी

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