जवाबों:
क्या आपको ध्यान रखना चाहिए? नहीं।
क्यों? क्योंकि ऐसा कुछ नहीं है जो आप वास्तव में इसके बारे में कर सकते हैं।
कुछ ने अनुमानित रूप से मोटापे का सुझाव दिया है। यह जावा और .Net के लिए काम करता है लेकिन पायथन, जावास्क्रिप्ट और पर्ल सभी सादे पाठ हैं इसलिए बहुत कम हैं जो आप वास्तव में कर सकते हैं। आपकी साइट का मूल्य निस्संदेह सर्वर साइड है इसलिए जावास्क्रिप्ट के बारे में चिंता न करें।
आप जो सबसे अच्छा कर सकते हैं वह कोड को बाधित करना है ताकि दूसरों को इसे संशोधित करने में कठिन समय हो। बेशक, आप मूल की एक प्रति रखते हैं।
एक बोनस के रूप में, ओफ़्स्कुसेटेड कोड छोटा होना चाहिए और इसलिए लोड करने के लिए तेज होना चाहिए।
आप चिंता क्यों करते हैं? मुझे लगता है कि दो कारण हो सकते हैं: 1) आप एक वाणिज्यिक जावास्क्रिप्ट पुस्तकालय लिख रहे हैं। समाधान: एक और व्यवसाय योजना प्राप्त करें, जावास्क्रिप्ट लिबास मुक्त हो जाते हैं। शायद आप उद्यमों के एक छोटे से क्षेत्र में पैसा कमा सकते हैं, लेकिन वे सबसे अधिक संभावना है कि वैसे भी अवैध रूप से कॉपी किए गए कोड का उपयोग नहीं करेंगे।
2) आपको चिंता है कि आपका प्रतियोगी आपकी साइट को कॉपी करने जा रहा है। यदि वे करते हैं, तो आप निश्चिंत हो सकते हैं कि आप हमेशा उनसे एक कदम आगे रहेंगे। अधिक संभावना है, वे अपना कोड लिखने जा रहे हैं और आपकी साइट के रूप और व्यवहार को कॉपी कर रहे हैं और कुछ भी आपको इससे नहीं बचा सकता है, इसके अलावा बेवकूफ सॉफ्टवेयर पेटेंट प्राप्त करने के लिए, जैसे कि अमेज़ॅन वन-क्लिक खरीदारी।
IOW, चिंता न करें। एक कॉपीराइट नोटिस डालें, जो लोगों को यह बताने के लिए कहें कि क्या वे आपके सामान का उपयोग करते हैं। यदि पर्याप्त लोग ऐसा करते हैं, तो इस तथ्य का उपयोग करें कि आपने गीक्स के बीच क्रेडिट पाने के लिए एक उपयोगी पुस्तकालय बनाया है, जो संभवतः लंबे समय में फायदेमंद होगा।
नहीं। कोशिश करें और एक क्लाइंट-साइड स्क्रिप्टिंग भाषा की "रक्षा" करें। काम नहीं करता है। न्यूनतम उपयोग इसके उपयोग हैं (लेकिन एंटी-पायरेसी उनमें से एक नहीं है)
जब तक आपको प्रति दिन हज़ारों हिट नहीं मिल जाते, मैं आपके कोड को छोटा करने की सिफारिश करूंगा , जहां प्रति अनुरोध कुछ अतिरिक्त किलोबाइट एक ध्यान देने योग्य अंतर होंगे (और केवल यही करते हैं कि एक बार आप उन सभी छवियों को संकुचित कर दें जिनका आप सही उपयोग कर रहे हैं, जो आपको बचाएगा। कुछ केबी से कहीं अधिक, सेटअप कैशिंग ठीक से और इतने पर) ।।
यहां तक कि अगर आप जावास्क्रिप्ट को छोटा / छोटा करते हैं, तो भी लोग इसे बहुत ही मामूली रूप से अपनी साइट पर कॉपी कर सकते हैं। इसे संशोधित करना थोड़ा और मुश्किल होगा, लेकिन स्क्रिप्ट क्या करती है, इस पर निर्भर करता है कि कोई फर्क नहीं पड़ता। उदाहरण के लिए, WMD संपादक ने जिन लोगों का उल्लेख किया है, उन्हें सार्वजनिक उपयोग के लिए आपूर्ति की जाती है, कीमा बनाया हुआ है।
Obfuscation और Minification समान हो सकते हैं, लेकिन यदि आप कोड को ठीक से बाधित करना चाहते थे, तो आपको मूल रूप से इसके बड़े सेगमेंट को फिर से लिखना होगा, इसे समझना मुश्किल होगा .. यह कोड को अधिक जटिल बनाता है, और इससे निपटने के लिए बहुत कठिन है (के लिए) आप), इसलिए बगों को पेश करेंगे .. यदि आपका जावास्क्रिप्ट छोटी गाड़ी बन जाती है, तो यह समुद्री डकैती को रोक देगा, क्योंकि कोई भी इसका उपयोग (या चोरी) नहीं करना चाहेगा .. लेकिन, गलत है, यह अच्छा नहीं है।
जावास्क्रिप्ट के बारे में महान चीजों में से एक यह है कि कोई भी व्यक्ति राइट-क्लिक / व्यू-सोर्स और जावास्क्रिप्ट को लाइव, वर्किंग कोड को देखकर सीख सकता है .. यदि आप कोड को देखने वाले लोगों के बारे में चिंतित हैं, और इसे कॉपी कर रहे हैं, तो वेब / जावास्क्रिप्ट आइएनएन t सही भाषा ।।
मैं आपकी जानकारी (नाम, वेबसाइट) और किसी प्रकार के लाइसेंस के साथ आपकी सभी .js
फाइलों और <script>
ब्लॉकों की शुरुआत में एक टिप्पणी डालने की सलाह दूंगा । कोड क्या है, इस पर निर्भर करते हुए, शायद यह कहते हुए कि "यदि आप किसी परियोजना में इस कोड के सभी या कुछ भाग का उपयोग करते हैं, तो कृपया उसे इसके बारे में बताएं!" "कभी भी किसी अन्य उद्देश्य के लिए इस कोड का उपयोग न करें" की तुलना में कहीं अधिक प्रभावी हो सकता है!
आप इसे हतोत्साहित करने के लिए कोड को कम से कम (या कम से कम बता सकते हैं) (हालांकि यह किसी ऐसे व्यक्ति के लिए अजेय नहीं है जिसके पास समय है। उदाहरण के लिए, डब्ल्यूएमडी संपादक के स्टैकऑवरफ्लो के डीओफ़सकेशन (लेकिन यह एक अच्छे कारण के लिए था!))।
वास्तव में आपके द्वारा सामने रखा गया कोई भी कोड सार्वजनिक और सभी को देखने / उपयोग करने के लिए उपलब्ध होने वाला है।
इसकी चिंता आखिर क्यों? यदि आपकी स्क्रिप्ट्स चोरी करने लायक हैं, तो आप उन्हें खुला स्रोत बना सकते हैं और उन्हें सम्मानित करने में सहायता प्राप्त कर सकते हैं।
आप वास्तव में एक व्याख्या की गई भाषा नहीं हैं, जो हमेशा स्रोत कोड रूप में वितरित की जाती है। यहां तक कि अगर समुद्री डाकू पर्याप्त रूप से प्रेरित है, तो भी बहुत मदद नहीं करेगा।
(केस-उदाहरण: स्टैकऑवरफ्लो WMD संपादक , जो हो सकता है - सख्ती से बोलना - पाइरेसी के रूप में देखा जा सकता है, हालांकि मुझे पता है कि जेफ और डाना के पास केवल अच्छे इरादे थे)
मैं वेब एप्लिकेशन लिखने के लिए GWT (Google वेब टूलकिट) का उपयोग करता हूं , जिसमें कोड सभी जावा में लिखा जाता है और इसे जावा-केंद्रित टूल के साथ डीबग और परीक्षण किया जा सकता है, लेकिन रिलीज के लिए जावास्क्रिप्ट में बदल दिया जाता है।
जब PRETTY
या DETAILED
मोड में नहीं होता है, तो GWT द्वारा उत्पन्न जावास्क्रिप्ट बहुत अधिक अनुकूलित और बाधित होता है, जो रिवर्स-इंजीनियर के लिए बेहद अव्यावहारिक होता है। (एक पारंपरिक जावास्क्रिप्ट पर्यवेक्षक इन लाभों का एक हिस्सा प्रदान करेगा - लेकिन नहीं जहां अनुकूलन विस्तृत शाखा प्रूनिंग और कोड-पथ विश्लेषण करने के लिए जीडब्ल्यूटी की क्षमता पर निर्भर हैं)।
उस ने कहा, सामान्य तौर पर, मैं obfuscation पर -1 हूं - इसका मतलब है, उदाहरण के लिए, वैध ग्राहक आपकी समस्याओं का पता लगाने में मदद करने में कम सक्षम हैं, भले ही उनके पास विकास कौशल और फायरबग की एक प्रति हो। आप मूल लेखक हैं - आप किसी और की तुलना में कोड को बेहतर जानते हैं, और यह आपको किसी ऐसे व्यक्ति पर एक प्रतिस्पर्धात्मक लाभ देता है जो एक सस्ता नॉकऑफ चलाने की कोशिश कर रहा है; इसके अलावा, अगर कोई भी प्रतियोगी वास्तव में बिना अनुमति के चुराया हुआ असली पैसा बना रहा है, तो इससे उन पैसों को खोले जाने की संभावना है (या, संभावित रूप से, उस राशि को वापस ले लेना) जो मुकदमा में लिया गया है; वैध और गंभीर प्रतियोगिता उस मार्ग पर नहीं जाएगी, और दूसरी तरह की चिंता क्यों करें?
हम अपने वेब एप्लिकेशन के लिए बहुत सारे जावास्क्रिप्ट (और बहुत सारे सर्वर-साइड) कोड का उपयोग करते हैं, और हमने "सफेद" करने के लिए चुना, जावास्क्रिप्ट किसी भी व्हाइट-स्पेस, लाइन ब्रेक आदि को हटा सकता है - यह वास्तव में आपके कोड की रक्षा नहीं करेगा। लेकिन इसे पढ़ना और समझना बहुत कठिन है, और सबसे अधिक संभावना है कि अन्य लोग इसमें शामिल प्रयास के कारण परेशान नहीं होंगे।
हालाँकि, हम ऐसा करते हैं, इसलिए इतना नहीं है कि हम नहीं चाहते हैं कि कोई हमारे कोड के कुछ हिस्सों की नकल करे, बल्कि हम अपने सहयोगियों / ग्राहकों को हतोत्साहित करें, जिन्हें हम कोड को सीधे "हमारी फाइलों" में बनाने से रोकते हैं ( अगला अद्यतन स्थापित होने पर परेशानियों से बचें) ...
नोट: यदि आप को उस स्क्रिप्ट कोड को डीबग करने की आवश्यकता है, तो ओब्यूसकेशन के एक नुकसान के बारे में पता होना चाहिए: यदि आप कभी भी ओफ्यूसेटेड इंफ़ॉर्मेशन के साथ काम नहीं कर पाएंगे, तो इसमें हमेशा 'पठनीय' फ़ाइल को कॉपी करना शामिल होगा। पहले सर्वर।
इस धारणा पर जा रहे हैं कि किसी भी पर्याप्त अच्छी जावास्क्रिप्ट को दूसरों द्वारा उठाया जाएगा, कैसे सिर्फ वर्तमान के साथ तैरना और इसे सबसे अधिक बनाना है?
इस पर एक लाइसेंस थप्पड़ जो उदाहरण के लिए आवश्यकता होती है जबकि उपयोग के लिए अनुमति देता है। शायद कुछ क्रिएटिव कॉमन्स जैसे नॉन-कमर्शियल क्लॉज़ के साथ भी, अगर आपको वास्तव में चाहिए।
आपके अधिकांश एप्लिकेशन तर्क सर्वर-साइड होने चाहिए। जावास्क्रिप्ट को केवल जीयूआई सामान और सर्वर के साथ सरल इंटरैक्शन को संभालना चाहिए। यदि आपके जावास्क्रिप्ट कोड में पर्याप्त एप्लिकेशन लॉजिक है, जिसे आप किसी व्यक्ति द्वारा इसे चोरी करने के बारे में चिंतित हैं, तो आप शायद कुछ गलत कर रहे हैं।
यदि आपके पास व्यापार रहस्य हैं, तो आप कोड के सबसे संवेदनशील भागों को एक्शनस्क्रिप्ट (फ्लैश) में स्थानांतरित कर सकते हैं। यह अनिवार्य रूप से जावास्क्रिप्ट के समान भाषा है, और यह टोकन रूप में संग्रहीत है।
यदि आप निर्धारित हार्डकोर हैकर्स को आपके कोड को चुराने के बारे में चिंतित हैं, तो क्षमा करें, ऐसा कुछ भी नहीं है जो आप कर सकते हैं। लेकिन आकस्मिक चोरों के लिए इसे असुविधाजनक बनाने के तरीके हैं। एक अपेक्षाकृत आसान तरीका यह करने के लिए का उपयोग कर कुछ भागों लोड करने के लिए है XMLHttpRequest
और eval()
उन्हें; इसे JSON डेटा के रूप में (या शामिल) कुछ के रूप में प्रच्छन्न किया जा सकता है और पृष्ठ को पॉप्युलेट करने के लिए उनका उपयोग करता है।