2008-09-19 9 views
24

मुझे आश्चर्य है कि स्रोत कोड के बिना उत्पादन उपयोग के लिए आरओआर ऐप वितरित करना संभव है? मैंने this post on SO देखा है, लेकिन मेरी स्थिति थोड़ा अलग है। यह कुछ सुराग वाले लोगों द्वारा प्रशासित एक ऐप होगा, इसलिए मैं अभी भी ग्राहक के अंत में अपाचे/मंगल/MySQL सेटअप की आवश्यकता के साथ शांत हूं। स्रोत की सुरक्षा के लिए मैं वास्तव में चाहता हूं। एन्कोडिंग PHP ऐप्स वितरित करने के लिए जाने का एक लोकप्रिय तरीका प्रतीत होता है (उदाहरण: Helpspot)।क्या आप बिना स्रोत के रेल आवेदन पर रूबी वितरित कर सकते हैं?

मैंने पाया इन संभावित समाधान:

  • Zenobfuscate - नहीं रूबी कोड के सभी प्रकार तथापि समर्थित है, ताकि कि बाहर में गिना जाता है
  • Ruby Encoder -, सबसे अच्छा विकल्प हो सकता है उनके पीएचपी एनकोडर के रूप में ठीक दिखता है (मैंने इसे आजमाया नहीं है) लेकिन यह अभी तक उपलब्ध नहीं है। मैंने पहले PHP के लिए IONcube का उपयोग किया है और यह अच्छी तरह से काम करता है, लेकिन it doesn't seem that IONcube is interested yet
  • Slingshot - इसका उल्लेख अन्य एसओ पोस्ट में किया गया था, लेकिन यह मेरे लिए एक अलग समस्या हल करता है और स्रोत अभी भी दिखाई देता है।
  • RubyScript2Exe - डॉको से, यह उत्पादन तैयार नहीं है, इसलिए यह गणना करता है।

मैंने सुना है कि संभावित रूप से जेआरबीई का उपयोग करना और बाइटकोड वितरित करना यह हासिल करने का एक तरीका हो सकता है, लेकिन मैंने कभी भी जरुबी का उपयोग नहीं किया है, इसलिए मुझे यकीन नहीं है कि इसमें क्या शामिल है।

क्या कोई भी कोई विचार और/या ज्ञात उदाहरण पेश कर सकता है? आदर्श रूप में मुझे कुछ प्रकार के स्वचालित निर्माण परिदृश्य भी पसंद आएगा।

उत्तर

24

अभी आपका सबसे अच्छा विकल्प JRuby का उपयोग करना है। पृष्ठभूमि का एक छोटा सा हिस्सा: मेरी कंपनी (BitRock) कई मालिकाना और वाणिज्यिक ओपन सोर्स विक्रेताओं के साथ काम करती है। हम उन्हें अपने सर्वर सॉफ़्टवेयर को पैकेज करने में मदद करते हैं, जो आम तौर पर एक वेब सर्वर या एप्लिकेशन सर्वर (अपाचे, टोमकैट), भाषा रनटाइम और डेटाबेस (आमतौर पर पोस्टग्रेस, माईएसक्यूएल) के साथ एक स्वयं निहित में PHP, जावा या रूबी पर आधारित होता है, इंस्टॉलर का उपयोग करने में आसान है। हमारे पास बड़ी संख्या में PHP- आधारित ग्राहक हैं (हेल्पस्पॉट सहित, जिसका आप उल्लेख करते हैं) लेकिन कई रेल-आधारित भी हैं। आरओआर ग्राहकों के मामले में मानदंड जेआरबीबी को टॉमकैट या ग्लासफ़िश के साथ उपयोग करना है, हालांकि कुछ मामलों में हम उन मूल स्क्रिप्ट्स को चलाने के लिए मूल रूबी दुभाषिया को भी बंडल करते हैं जो पुस्तकालयों पर भरोसा करते हैं जो अभी तक जेआरबीई (आमतौर पर एप्लिकेशन के लिए कोर नहीं) पर भरोसा करते हैं। । JRuby जल्दी परिपक्व हो गया है और कई मामलों में यह वास्तव में नियमित रूबी से अपने कोड तेजी से चलाता है। आपको यह भी विचार करने की आवश्यकता होगी कि यद्यपि आपका कोड JRuby को पोर्ट करना काफी सरल है, आपको उस पर कुछ समय निवेश करने की आवश्यकता होगी। आप JRuby Stack जांचना चाहेंगे जो शुरू करने के लिए आवश्यक सभी चीज़ों का एक निःशुल्क इंस्टॉलर है। सौभाग्य!

+0

जो जेआरबी स्टैक आप उपयोग करते हैं? मैंने टॉर्कबॉक्स 4 के साथ जार को संकलित करने की कोशिश की लेकिन यह चलते समय एक अस्थायी निर्देशिका में वास्तविक कोड को अनजिप करें, इसलिए इसे आसानी से पकड़ लिया जा सकता है। – micred

2

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

+24

मुझे नहीं लगता कि oblusticating perl की आवश्यकता है perl अपने आप से पर्याप्त है ... – UnkwnTech

+1

जो भी समाधान है, यह किसी भी ऐप को देने के रूप में सुरक्षित नहीं है। मैं सिर्फ यह समझने की कोशिश कर रहा हूं कि किसी भी व्यक्ति के सामने जितना संभव हो उतना बड़ा बाधा डालना है जो स्रोत तक पहुंचने की कोशिश कर रहा है। वहां ट्रस्ट का एक छोटा सा तत्व है क्योंकि ग्राहकों ने सॉफ्टवेयर का उपयोग करने के लिए भुगतान किया है। –

2

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

ZenObfuscate एक साइट लाइसेंस के लिए 2500 $ लागत या अन्य लाइसेंस योजनाओं के लिए अलग-अलग परक्राम्य है। हाँ, यह महंगा है। वह उद्देश्य पर था। लेकिन यह आपको बहुत ज्यादा नाकाम करने दें। यदि आपका उत्पाद वास्तव में अच्छा है और हम इसे सफल देखना चाहते हैं, तो हम इसे काम करेंगे। "वास्तव में अच्छा" फ्रीसेल नहीं है।

बेशक, $ 2500 (या अधिक) के लिए, आप संकलक को कुछ बदलाव प्राप्त करने की उम्मीद करेंगे जो आपके कोडबेस को पूरी तरह से समर्थित करेगा। वार्तालाप में उन्हें शामिल करने के लायक हो सकता है।

+0

मैंने यह नहीं देखा, धन्यवाद पीट, शायद इसके बारे में उनसे बात करने लायक है। –

0

JumpBox पर एक नज़र डालें।

मैंने विषय पर उनके साथ बातचीत की है, और उनके पास ऐसा समाधान प्रतीत होता है जो जल्द ही रेल ऐप्स के लिए काम करेगा।

+0

जंपबॉक्स कैसे मदद करता है? –

7

यदि आप स्रोत को छोड़ देते हैं, तो obfuscated या अन्यथा, आपका ऐप पायरेट किया जाएगा। देखें, उदाहरण के लिए, Mint। यह आपके द्वारा बनाई जा रही चीज़ों पर निर्भर करता है, लेकिन आप पाएंगे कि आप ऐप को हाइब्रिड के रूप में रिलीज़ करने से बेहतर हैं: एक अच्छी तरह से परिभाषित एपीआई वाला होस्टेड ऐप, और एक घटक जो ग्राहक के सर्वर पर चलता है। जब तक आपके उत्पाद का वास्तविक मूल्य सर्वर पक्ष पर रहता है, तो आपको अपने कोड को खराब करने की आवश्यकता नहीं होती है, और आप केवल स्रोत कोड को असम्बद्ध कर सकते हैं।इसके अतिरिक्त, यह आपको रुबी के बजाय PHP कहने वाले ग्राहकों तक पहुंचने का मौका भी दे सकता है। उदाहरण के लिए, Google Analytics, HopToad, Scout, आदि के लिए देखें, आदि

+3

++ यह वेब एप्लिकेशन की नई खुली/बंद स्रोत दुनिया है। यह वास्तव में डेवलपर्स के लिए वास्तव में एक महान परिदृश्य का प्रतिनिधित्व करता है - आपके एप्लिकेशन का मूल्य आपकी सेवा और निष्पादन में है, जरूरी नहीं कि कोड में ही। आप खुले कोड की स्वतंत्रता और सीमित आपूर्ति के लाभ दोनों का आनंद ले सकते हैं। प्रश्न का उत्तर नहीं देने के लिए – guns

+4

-1। यह वास्तुकला डिजाइन, व्यापार मॉडल, या ऐप को पायरेट किया जाएगा या नहीं, इसका सवाल नहीं है। –

+2

मुझे लगता है कि इस समस्या के लिए कोई वास्तविक समाधान नहीं है, और यह आमतौर पर एक स्वाभाविक रूप से दोषपूर्ण दृष्टिकोण है, विकल्प प्रदान करना काफी उचित है। –

1

आप भी इस के लिए JRuby का उपयोग करने का एक उदाहरण के रूप ThoughtWorks studios से Mingle पर एक नज़र ले जा सकते हैं। यह रेल ऐप पर रूबी है, वे इसे JRuby का उपयोग करके चलाते हैं। उन्होंने एन्क्रिप्टेड। आरबी फाइलों को लोड करने के लिए jruby को अनुकूलित किया है।

0

मुझे आश्चर्य है कि क्या आप RubyScript2Exe जैसे कुछ का उपयोग करके रूबी कोड को निष्पादन योग्य में "संकलित" कर सकते हैं?

ईमानदार होने के लिए मैंने इसका उपयोग नहीं किया है, लेकिन ऐसा लगता है कि यह वही हो सकता है जो आप चाहते हैं, भले ही यह केवल दुभाषिया के साथ स्क्रिप्ट को एक निष्पादन योग्य में पैकेज करता है।

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