एमपी 3 क्या है इसका सवाल थोड़ा ऊन है। एमपी 3 फ़ाइलों में आम तौर पर स्टार्ट और/या अंत में चाफ का एक गुच्छा होता है जो मान्य एमपी 3 फ्रेम नहीं है। आम तौर पर यह आईडी 3 टैग धारण करने के लिए है, लेकिन अन्य कारणों के लिए अंत में बकवास डेटा के साथ एमपी 3 को पूरा करना असामान्य नहीं है (उदाहरण के लिए। भद्दा स्ट्रीम चॉपिंग)।
अभ्यास में लगभग कुछ भी एमपी 3 हो सकता है, और कई मनमानी बाइनरी फाइलों में कुछ होगा जो इसमें एमपी 3 फ्रेम की तरह दिखता है।आईडी 3 और लम्बाई जानकारी (जैसे पेक्का के उत्तर में) एक अच्छा विचार है, यदि कोई फ़ाइल एमपी 3 होने के लिए एक विचार प्राप्त करने के लिए एक अच्छा हेरिस्टिक दृष्टिकोण है, लेकिन यदि आपके मन में जो कुछ है, वह सुरक्षा से संबंधित है तो यह पर्याप्त नहीं है।
यह विस्तार के आधार पर फ़ाइल प्रकार रिटर्न
वास्तव में यह रिटर्न प्रकार स्ट्रिंग उपयोगकर्ता के वेब ब्राउज़र इसे भेजा है, जो विंडोज पर से निर्धारित किया जाएगा (मैं इसे केवल खिड़कियों पर परीक्षण) मूल फ़ाइल एक्सटेंशन, लेकिन मैक या लिनक्स पर अन्य स्रोतों से आ सकता है। किसी भी तरह से, फ़ाइल नाम की तरह ही, यह भरोसा नहीं किया जाना चाहिए। उपयोगकर्ता का कंप्यूटर गलत स्थापित किया जा सकता है या जानबूझ कर फ़ाइल के लिए गलत मीडिया प्रकार स्ट्रिंग भेज सकता है।
PHP मूल कार्यों के साथ ऐसा करने का एक सुरक्षित तरीका है ??
'सुरक्षित' के साथ आपका इरादा क्या है? यदि आपका उद्देश्य उन लोगों को एमपी 3 फ़ाइलों को अपलोड करना बंद करना है जो वास्तव में अन्य फाइल प्रकारों को छिपाने में हैं- आम तौर पर क्रॉस-साइट-स्क्रिप्टिंग हमलों के लिए HTML, जावा या फ़्लैश सामग्री को इंजेक्शन देने के प्रयोजनों के लिए- तो ऐसा करने का कोई यथार्थवादी तरीका नहीं है। आप उन फाइलें बना सकते हैं जो वैध एमपी 3 हैं और फिर भी एक ही समय में एक और प्रकार के रूप में व्याख्या की जा सकती है। ('गिफर' हमले देखें; एमपी 3 के साथ भी यही संभव है।)
अंत में एक्सएसएस हमलों से विश्वसनीय रूप से आपकी रक्षा करने वाला एकमात्र दृष्टिकोण एक अलग होस्टनाम से अविश्वसनीय उपयोगकर्ता द्वारा अपलोड की गई फ़ाइलों को सेवा प्रदान करना है जो कोई सुरक्षा संदर्भ साझा नहीं करता है मुख्य साइट, इसलिए इसमें क्रॉस-साइट-स्क्रिप्टिंग कुछ हासिल नहीं करती है। एक आंशिक समाधान जिसे आप Content-Disposition: attachment
शीर्षलेख के साथ अपनी सभी फ़ाइलों को सेवा देने के लिए भी विचार कर सकते हैं (यदि आपको छवियों को होस्ट करने की आवश्यकता नहीं है जो किसी पृष्ठ में इनलाइन प्रदर्शित की जाएंगी)।
[यह जांचने के लिए कि फ़ाइल छवि या वीडियो प्रकार PHP संस्करण 5.2.9 में है या नहीं?] (Http://stackoverflow.com/questions/3074527/how-to-check-whether-file-is-image-or -विडियो-टाइप-इन-php-version-5-2-9) getID3 के लिए – Gordon