2011-03-16 11 views
8

मैं एक CSV फ़ाइल लेने के लिए एक वेब फ़ॉर्म बना रहा हूं ताकि सामग्री को संपर्क डेटाबेस में आयात कर सकें। हालांकि, विकास के दौरान मैंने देखा है कि एक CSV फ़ाइल अपलोड करते समय मेरे लिए उपलब्ध एमआईएमई प्रकार application/octet-stream है।क्या CSV फ़ाइलों को स्वीकार करते समय स्वीकार करने के लिए एप्लिकेशन/ऑक्टेट-स्ट्रीम एक सुरक्षित MIME प्रकार है?

गूगल पर एक त्वरित वेब खोज मुझसे कहता है कि application/octet-stream बाइनरी फ़ाइलें के लिए एक सामान्य MIME प्रकार, एक .exe फ़ाइल है, जो तब के रूप में मेरे लिए सुरक्षित नहीं लगता है की केवल अन्य टुकड़ा करने के लिए एक .csv से कुछ भी हो सकता है जानकारी मुझे फ़ाइल प्रकार निर्धारित करना है मूल फ़ाइल नाम है। और यह मूल कंप्यूटिंग ज्ञान के साथ किसी भी व्यक्ति द्वारा आसानी से बदला जा सकता है।

मैं कैसे सुनिश्चित कर सकता हूं कि PHP में वेब फ़ॉर्म के माध्यम से अपलोड की गई एक CSV फ़ाइल वास्तव में उपरोक्त जानकारी के साथ एक CSV फ़ाइल है?

+0

क्या आपने अभी तक कोई प्रगति की है? अगर मैं आपकी मदद कर सकता हूं तो कृपया मुझे बताएं। –

उत्तर

6

यह सही है, application/octet-stream एक सामान्य एमआईएम प्रकार है।

आप यह जांच सकते हैं कि फ़ाइल में CSV एक्सटेंशन है या नहीं, यह निर्धारित करने के लिए कि फ़ाइल की सामग्री मान्य है या नहीं, fgetcsv() फ़ंक्शन का उपयोग करें। सीएसवी के रूप में फ़ाइल पढ़ने में समस्याएं होने पर यह फ़ंक्शन न्यूल या बूलियन झूठी वापस आ जाएगा।

+0

धन्यवाद, Michiel। मैं अनिश्चित था कि वास्तव में कैसे कहना है कि मुझे सीएसवी मिल रहा है और अकेले फ़ाइल एक्सटेंशन और फ़ाइल नाम पर आराम करने पर असहज है, लेकिन 'fgetcsv() 'त्रुटि पर झूठी वापसी जानना अच्छा है और मैं उस दृष्टिकोण को ले जाऊंगा। –

0

फ़ाइलों को अपलोड करते समय, आपको कभी भी कभी नहीं MIME-प्रकारों पर भरोसा करना चाहिए। उन्हें उपयोगकर्ता द्वारा बदला जा सकता है।

1

फ़ाइल को सत्यापित करने के लिए, आपको माइम-प्रकार पर निर्भर नहीं होना चाहिए क्योंकि इसे आसानी से छेड़छाड़ की जा सकती है। फ़ाइल एक्सटेंशन के लिए एक ही बात है। इस तरह के "सुरक्षा जांच" को बाईपास करने में बस 15 सेकंड लगते हैं।

केवल सुरक्षित तरीका फ़ाइल की सामग्री को जांचने के लिए है कि यह वैध सीएसवी-डेटा है या नहीं।

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