2009-11-03 16 views
6

कहें कि मैंने एक PHP वेबैप विकसित किया है और इसे दूसरों के लिए स्वामित्व सॉफ्टवेयर के रूप में उपयोग करने के लिए वितरित करना चाहता हूं। क्या कोई ऐसा लाइसेंस है जो मैं किसी प्रकार के लाइसेंस से कम कर सकता हूं या सिर्फ होस्टेड समाधान प्रदान करने से बचने के लिए ग्राहक पर भरोसा कर सकता हूं? स्पष्ट रूप से अगर मैं स्वतंत्र रूप से होस्ट करने के लिए ग्राहकों को भुगतान करने के लिए आवेदन वितरित करता हूं, तो मैं कोड को लीक करने का जोखिम चलाता हूं।एक PHP आवेदन व्यावसायीकरण?

अद्यतन:

प्रतिक्रियाओं में से कुछ अब तक कहानियो को सुझाव देते हैं। हालांकि, यह किसी अन्य उपयोगकर्ता को अपने सर्वर पर लीक किए गए obfuscated कोड को बस खींचने और इसे पुन: उपयोग करने से नहीं रोकेगा। माना जाता है कि वे इसे संशोधित करने में सक्षम नहीं होंगे .. लेकिन मैं कुछ और पूरा करने की तलाश में हूं। कोई विचार?

उत्तर

4

इसे खराब करना एक लंबा सफर तय कर सकता है। कई उपयोगकर्ता तर्क को समझने की कोशिश नहीं करेंगे।

आप एक पंजीकरण कुंजी भी जोड़ सकते हैं - कुछ जो मातृत्व कहता है और डोंगल की तरह कार्य करता है।

संपादित करें: मैं पंजीकरण के साथ क्या कर रहा था: आप डोमेन द्वारा लाइसेंस बेच सकते हैं, और उपयोगकर्ताओं को खरीदने के बाद अपनी वेबसाइट पर अपना डोमेन पंजीकृत करने की आवश्यकता होती है।

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

मुझे मैकेनिक्स नहीं पता है लेकिन मूल विचार यह है कि आप यह गारंटी देना चाहते हैं कि स्क्रिप्ट डोमेन पर चल रही है, खरीदार ने कहा था कि यह चल रहा था।

+3

ध्यान दें कि कोड कुंजी भी खराब होने पर पंजीकरण कुंजी केवल एक उचित दृष्टिकोण है। – jheddings

+0

क्या आप पंजीकरण कुंजी पर विस्तार कर सकते हैं? क्या कोड में कुछ तर्क हो सकता है जब तक कि किसी अन्य सर्वर से वैध पंजीकरण कुंजी प्राप्त नहीं हो जाती है? –

0

http://www.google.com/search?q=php+code+obfuscator&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

इसे लो ...

यह कहानियो को आम तौर पर पूरी तरह से असंभव करने के लिए इसे बनाने के लिए हर चर और इस तरह का नाम बदलने के लिए अगले तरह की टिप्पणियां और रिक्त स्थान को, बेस 64 एन्कोडिंग, और कभी कभी अन्य छोटे चाल अलग करना के होते हैं मनुष्यों द्वारा समझने के लिए

1

क्या आप पंजीकरण कुंजी पर विस्तार कर सकते हैं? क्या कोड में कुछ तर्क हो सकता है जब तक कि किसी अन्य सर्वर से वैध पंजीकरण कुंजी प्राप्त नहीं हो जाती है?

ऐसा करने के लिए, जब आप एप्लिकेशन खरीदा तो उपयोगकर्ता के लिए एक कुंजी उत्पन्न करनी होगी। एप्लिकेशन तब एक मास्टर सर्वर के साथ संवाद करेगा जो बदले में कुंजी को देखता है और उस डोमेन को चेक करता है जिस पर कुंजी आ रही है और एक साधारण सत्य या झूठी पढ़ाई भेजती है। अगर प्रतिक्रिया सही है, तो आवेदन उसके संचालन को जारी रखेगा, अन्यथा यह बंद हो जाएगा।

इस विधि के साथ एकमात्र समस्या यह है कि यदि आपका मास्टर सर्वर कभी नीचे जाना था, तो आपके सभी क्लाइंट लॉक हो जाएंगे (जब तक कि आप कोई शर्त नहीं बनाते हैं, जहां मास्टर सर्वर डाउन था, तो डिफ़ॉल्ट प्रतिक्रिया सच होगी)।

+1

ग्राहक स्थानीय वेबसर्वर से कुंजी सत्यापन सर्वर पर आउटगोइंग कनेक्शन को अवरुद्ध करने के लिए बस अपने फ़ायरवॉल को कॉन्फ़िगर करेगा। – yfeldblum

+0

ओह मैं समझता हूँ। एक और समस्या, जैसा कि मुझे लगता है कि किसी और ने इंगित किया है, यह है कि यह अनुमान लगाता है कि कोड obfuscated है और उपयोगकर्ता कुंजी के बिना चलाने से कोड को रोकने से तर्क को उजागर नहीं कर सकता (और हटा)। मैं इस के आसपास एक रास्ता के साथ आने के लिए प्रतीत नहीं कर सकता। –

+1

कोड को obfuscating बिना वास्तव में इसके आसपास एक रास्ता नहीं है। जब तक उपयोगकर्ता के पास कच्चे स्रोत तक पहुंच हो, तब तक वे जो भी चाहें कर सकते हैं। – Iainzor

0

ज़ेंड में एक उत्पाद "ज़ेंड गार्ड" (http://shop.zend.com/en/zend-guard.html) है जो obfuscation से अधिक कुछ प्रदान कर सकता है।

एन्कोडिंग, मुश्किल होता और लाइसेंसिंग के अपने प्रमुख घटक के साथ, Zend गार्ड वहाँ भी ionCube है रिवर्स इंजीनियरिंग, अनधिकृत अनुकूलन, बिना लाइसेंस का उपयोग करें और पुनर्वितरण

0

से अपने PHP अनुप्रयोगों सुरक्षा करता है। आम तौर पर इन समाधानों को सर्वर साइड एक्सटेंशन को लोड करने की आवश्यकता होती है लेकिन अधिकांश होस्ट उन्हें पहले ही लोड कर लेते हैं।

आयनक्यूब आपको पसंद करते समय किसी विशेष डोमेन को लाइसेंस देने की अनुमति देता है, और आपको स्क्रिप्ट पर समय सीमा निर्धारित करने की अनुमति देता है (लाइसेंस नवीनीकरण की आवश्यकता के लिए)।

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

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