2012-12-21 17 views
14

डाउनलोड करने और हॉटलिंक करने से रोकने के लिए मैं thefuture.fm के समान साइट बना रहा हूं। डीजे एमपी 3 फाइलें अपलोड करने में सक्षम हैं और सेट करते हैं कि फ़ाइल केवल स्ट्रीम या स्ट्रीम और डाउनलोड की जा सकती है या नहीं।जेप्लेयर स्ट्रीम एमपी 3 लेकिन

साइट के आगंतुकों को संगीत सुनने के लिए लॉग इन करने की आवश्यकता नहीं है। वे उपयोगकर्ताओं की सेटिंग्स के आधार पर इन एमपी 3 गाने को स्ट्रीम/डाउनलोड करने में सक्षम होना चाहिए।

मैं गाने चलाने के लिए जेप्लेयर का उपयोग कर रहा हूं। मैंने पूरे वेब पर खोज की है लेकिन कोई समाधान नहीं मिल रहा है। क्या जेप्लेयर में एमपी 3 फाइलों को डाउनलोड करने से रोकने की कोई सुविधा है? या क्या मैं इसे रोक सकता हूं?

+5

आप गाने को स्ट्रीम करना चाहते हैं, लेकिन नहीं चाहते कि उपयोगकर्ता डेटा डाउनलोड कर सके? – Daniel

+0

हाँ @ डैनियल, क्या आपको कोई विचार है? –

+4

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

उत्तर

14

डाउनलोड करना बंद करना वास्तव में असंभव है। आप किसी के लिए इसे कठिन बना सकते हैं, लेकिन फिर भी उसे गाने सुनने के लिए सभी डेटा डाउनलोड करने की आवश्यकता है। इसलिए यदि आप फ़्लैश प्लेयर को डेटा भेजने के लिए कुछ एन्क्रिप्शन का उपयोग करते हैं तो भी आप इसे लिखते हैं, खिलाड़ी को इसे डिक्रिप्ट करना होगा और ऑडियो चलाएं। और चूंकि आप फ़्लैश को डीकंपाइल कर सकते हैं, इसलिए एल्गोरिदम को ढूंढना मुश्किल नहीं होगा। वह इसे खेलने के दौरान फिर से संगीत रिकॉर्ड कर सकता था (पहले डीवीडी डिक्रिप्ट टूल्स के समान, जिन्होंने लाखों डॉलर सुरक्षा माप पास करने के लिए 30 बार/सेकंड स्क्रीनशॉट लिया था)

तो लक्ष्य इसे कठिन बनाना है, नहीं असंभव।

व्यक्तिगत रूप से मैं एक कुकी के साथ संयोजन में अस्थायी उपलब्ध लिंक के लिए जाऊंगा, इसलिए मैं अभी भी jplayer का उपयोग कर सकता हूं और पहिया को फिर से शुरू करने की आवश्यकता नहीं है। URL को पढ़ने में कठोर बनाने के लिए कुछ obfuscating का भी उपयोग करें।

जब कोई मुख्य URL (जहां आप अपना प्लेयर दिखाते हैं) का अनुरोध करते हैं तो एक अनूठी कुंजी उत्पन्न करें और उसे कुकी में सहेजें। अद्वितीय कुंजी को आईपी पते से लिंक करना चाहिए और सत्र में संग्रहीत समय का अनुरोध करना चाहिए।

अब playfile.php जैसे फ़ाइल फ़ाइल का एक लिंक बनाएं? File = music.mp3 या जो भी हो। बस सुनिश्चित करें कि PHP फ़ाइल अनुरोध को संभालेगा। यदि आप इस लिंक को खराब करते हैं तो इसे ढूंढना थोड़ा कठिन होगा।

playfile.php में कुकी में अद्वितीय कोड की जांच करें और जांचें कि यह सत्र में आईपी पते से मेल खाता है और अनुरोध समय कम है तो ईजी 15 सेकंड (अब और संगीत धीमा इंटरनेट कनेक्शन के साथ नहीं खेलेंगे)। यदि यह है, तो फ़ाइल स्ट्रीम करें। यदि ऐसा नहीं है, तो इसे अवरुद्ध करें।

अब अगर कोई संगीत डाउनलोड करने के लिए कोई प्रोग्राम/स्क्रिप्ट लिखता है, तो वह कर सकता है। लेकिन अगर किसी के पास ऐसा करने का ज्ञान और समय है, तो उसे डाउनलोड करने से कुछ भी नहीं रोकेगा।

यह किसी भी सामान्य उपयोगकर्ता को इसे डाउनलोड करने से रोक देगा।

+0

वाह, यह अच्छा विचार है :) –

4

जो आप खोज रहे हैं वह जावास्क्रिप्ट समाधान के साथ प्राप्त नहीं किया जा सकता है। यदि आप जावास्क्रिप्ट को कुछ खेलना चाहते हैं, तो इसे डाउनलोड करना होगा और इसे डाउनलोड करने के लिए, जावास्क्रिप्ट को एक यूआरएल चाहिए।

इस समस्या से निपटने का सबसे आम तरीका एडोब फ्लैश का उपयोग करना और इसमें एक खिलाड़ी बनाना है। आप उपयोगकर्ता को वास्तविक डेटा स्थान का खुलासा करते हुए स्पष्ट रूप से बिना अपने प्लेयर स्ट्रीम सामग्री (आपके मामले में एमपी 3) बना सकते हैं।

5

हॉटलिंकिंग को रोकना थोड़ा आसान है, क्योंकि आम तौर पर आपके पास जांच करने के लिए एक रेफरर स्ट्रिंग होगी। यदि यह मौजूद है तो आप सामग्री की सेवा न करने के बारे में जानेंगे। Here एक कोड उदाहरण है।

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

परिशिष्ट: मैंने पाया है कि फ्लैश के बाद के संस्करणों में आप एक बफर (see here) से गतिशील रूप से जेनरेट की गई ध्वनि चला सकते हैं। इसलिए, यदि आप कुछ फ़्लैश/फ्लेक्स विकास में फंसने के इच्छुक हैं, तो समाधान एक दृष्टि में है। मुझे कुछ भी नहीं मिला जो कम-स्तरीय एमपी 3 रूटीन तक पहुंचता है, लेकिन यह न भूलें कि फ़ाइलों को आपके सर्वर से प्रेषित एमपी 3 होने की आवश्यकता नहीं है - उन्हें अपनी ऐप की ज़रूरतों में परिवर्तित करें।

4

फ़ाइल को ऐसे स्थान पर रखें जो ब्राउज़र से उपलब्ध नहीं है और HTTP/1.1 206 Partial Content का उपयोग करके भाग की श्रृंखला के रूप में उन्हें स्ट्रीम करने के लिए PHP का उपयोग करें। फिर 'save as' को जोड़ने/निकालने के लिए संदर्भ मेनू को संपादित करने के लिए this जैसी विधि का उपयोग करें।

प्रत्यक्ष लिंकिंग को समाप्त करने के लिए सत्र var का उपयोग करें।

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