14

पहली चीजें पहले, मैंने nwsnapshot देखा है। और इसकी मदद नहीं कर रहा है।किसी नोड-वेबकिट डेस्कटॉप एप्लिकेशन में स्रोत कोड को सुरक्षित करना

मैं node-webkit का उपयोग कर डेस्कटॉप ऐप के रूप में एक इन्वेंट्री प्रबंधन प्रणाली का निर्माण कर रहा हूं। प्रोजेक्ट बनाया जा रहा है कंपाउंडज (एमवीसी जावास्क्रिप्ट लाइब्रेरी) का उपयोग कर रहा है। जिसमें एक निश्चित फ़ोल्डर संरचना है (आप एमवीसी जानते हैं) और उनके अंदर कई जावास्क्रिप्ट फ़ाइलें हैं।

समस्या nwsnapshot ऐप को केवल एक स्नैपशॉट फ़ाइल रखने की अनुमति देती है लेकिन एप्लिकेशन का तर्क विभिन्न जावास्क्रिप्ट फ़ाइलों में सभी फ़ोल्डरों पर फैलता है।

तो मैं इसे क्लाइंट को भेजने से पहले अपना स्रोत कोड कैसे सुरक्षित करूं? या कोई अन्य काम-चारों ओर या स्मार्ट तरीका (हाँ, मुझे obfuscating के बारे में पता है)।

उत्तर

20

आप को निर्दिष्ट करने के लिए किसी भी JS फ़ाइल

nwsnapshot --extra-code application.js application.bin 

अपने package.json में जोड़ने के बिना बाइनरी में जावास्क्रिप्ट कोड जो एप्लिकेशन में लोड किया जाएगा संकलित करने के लिए nodewebkit आदेश nwsnapshot कहा जाता है का उपयोग कर सकते:

snapshot: 'application.bin' 
+3

यह वास्तव में स्वीकार्य उत्तर होना चाहिए। nwsnapshot जेएस स्रोत को बाइटकोड में संकलित करेगा और इसे नोड प्रक्रिया में इंजेक्ट करेगा। स्वीकार्य उत्तर एक कोड minifier और obfuscater का उपयोग करता है जो आसानी से दूर करने के लिए बहुत आसानी से हैं। –

+0

क्या अन्य संसाधनों को फ़ॉन्ट फ़ाइलों जैसे बाइनरी में परिवर्तित करना संभव है? –

+0

अपडेट: [nwjc] का उपयोग करें (https://github.com/nwjs/nw.js/wiki/Protect-JavaScript-source-code-with-v8- स्नैपशॉट)। nwsnapshot की तुलना में बहुत छोटी बाइनरी फ़ाइल बनाता है – sunnyvilles

0

आप जेएस फ़ाइलों को निर्माण प्रक्रिया में एक में विलय करने और इसे संकलित करने पर विचार कर सकते हैं।

+0

किसी भी संदर्भ या उदाहरण या उपकरण>? – sunnyvilles

+1

http://requirejs.org/docs/optimization.html – pfried

+0

अभी भी मुझे अपेक्षित नहीं है लेकिन _requirejs_ अभी के लिए पर्याप्त है। धन्यवाद @pfried। – sunnyvilles

2

यह वास्तव में "सुरक्षित" से आपका क्या मतलब है इस पर निर्भर करता है।

Google Closure Compiler का उपयोग करके आप अपने जावास्क्रिप्ट कोड को काफी अच्छी तरह से खराब कर सकते हैं (साथ ही संभावित रूप से प्रदर्शन में सुधार कर सकते हैं)।

मुझे आपके जावास्क्रिप्ट को एन्क्रिप्ट/डिक्रिप्ट करने के लिए किसी भी ऑफ-द-शेल्फ समाधान से अवगत नहीं है, और ईमानदारी से मैं इसकी आवश्यकता पर सवाल उठाऊंगा।

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

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

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