How to prevent unwanted files when a website offers image upload using PHP? -


  अगर (($ $ _FILES ["अपलोडफ़ाइल"] ["प्रकार"] == "छवि / जीआईएफ" ) ($ _FILES ["uploadfile"] ["प्रकार"] == "छवि / जेपीईजी") || ($ _FILES ["अपलोडफ़ाइल"] ["टाइप"] == "छवि / पीजेपीएजी")) & amp;  

जब मैं उपर्युक्त कोड का परीक्षण करता हूं, तो मुझे पता चला कि कोई उपयोगकर्ता फ़ाइल प्रकार की जांच को बाईपास कर सकता है बस एक्सटेंशन नाम को संशोधित करके, वास्तविक फ़ाइल एक्सटेंशन नाम कैसे प्राप्त किया जा सकता है?

इसके अलावा, जब कोई उपयोगकर्ता बहुत बड़ी फ़ाइल अपलोड करता है, तो सर्वर पक्ष पर अपलोड को तत्काल कैसे अस्वीकार करना है?

< / Div>

आप वास्तव में फ़ाइल प्रकार को mimetype से प्राप्त नहीं कर सकते क्योंकि यह एक उपयोगकर्ता इनपुट है और हो सकता है आसानी से भूल जाओ यह सुनिश्चित करने के लिए कि यह एक असली जेपीईजी या जीआईएफ फाइल है, आप इसे करने के लिए फ़ाइल कमांड का उपयोग कर सकते हैं। उसी फैशन पर आप इसे (छवि एक्सटेंशन) या इसके साथ लोड करने का प्रयास कर सकते हैं

फ़ाइल आउटपुट का एक उदाहरण

  ओलिवियर @ ओलिवियर-लैपटॉप: ~ / trust / public / images $ फ़ाइल verisign_sample.gif verisign_sample.gif: GIF छवि डेटा, संस्करण 89a , 100 x 60  

बैकटीस ऑपरेटर का उपयोग करके आप परिणाम प्राप्त कर सकते हैं और इसे पार्स कर सकते हैं

  $ line = `file $ filepath`  

आपके दूसरे प्रश्न के लिए यह ब्राउज़र पर निर्भर करता है, आरएफसी में ब्राउजर को अनुरोध करते समय सामग्री आकार की आपूर्ति नहीं होती है, इसलिए आप अपलोड को रोक नहीं सकते हैं अगर फाइल बहुत बड़ी है । जब तक यह आपके PHP अपलोड (upload_max_filesize पैरामीटर का php.ini) तक पहुंचता है, तब तक यह अपलोड होगा और PHP अनुरोध को मार डालेगा।


Comments

Popular posts from this blog

c# - How to capture HTTP packet with SharpPcap -

php - Multiple Select with Explode: only returns the word "Array" -

php - jQuery AJAX Post not working -