最佳解決方案:保護PHP程式碼而不加密
P粉442576165
2023-08-06 15:02:19
<p>首先,我並不尋求奇蹟……我知道PHP的工作原理,也知道沒有真正的方法可以在不使用加密的情況下隱藏我的程式碼。但這需要在運行伺服器上安裝一個擴展,這是有成本的。 <br /><br />然而,我正在尋找一些不同的東西…我並不是在尋求加密我的程式碼,甚至不是混淆程式碼。有許多PHP腳本沒有加密/混淆的程式碼,但它們是商業應用程式。例如,vBulletin和/或IP.Board論壇應用程式。 <br /><br />我只是想知道這些人在他們的應用程式中使用了什麼方法…<br /><br />我也對任何其他建議持開放態度。 <br /><br />請注意,我是一個獨立個人,不代表任何公司。我的產品也非常特定,銷售量不會很高。我只是想讓你們知道,我無法負擔請律師起訴他人或準備商業許可證。我只是在尋找一種簡單的方式來保護我的簡單產品,如果可能的話…</p><p><br /></p>
您需要考慮您的目標:
1)您是否試圖防止他人閱讀/修改您的程式碼?如果是的話,您將需要一個混淆/加密工具。我使用過Zend Guard取得了很好的效果。
2)您是否試圖防止未經授權的程式碼重新分發? EULA/專有許可證將賦予您法律權力來阻止這種行為,但實際上無法完全阻止。金鑰/啟動方案將允許您積極監控使用情況,但如果不對程式碼進行加密,這些方案可以被移除。 Zend Guard還具有將特定腳本鎖定到特定客戶機器和/或建立時間限製版本的功能,如果這符合您的需求。
我不熟悉vBulletin等軟體,但他們要么需要加密/混淆,要么需要信任他們的用戶做正確的事情。在後一種情況下,他們透過EULA禁止不希望出現的行為,並依靠法律系統來支持對EULA的違約行為進行追究。
如果您沒有準備/能力採取法律行動來保護您的軟體,並且不想加密/混淆,您的選擇是:a)發布帶有EULA的軟體,這樣如果需要的話,您就有了法律選擇,並希望一切順利,或b)考慮是否使用開源許可證可能更合適,允許重新分發。
混淆事物只會給您合法、守法的客戶帶來不便,而那些可能欺騙您的人並不是您的目標付費客戶。 (編輯掉了關於混淆的其他想法)
保護您的軟體的另一個建議是:創建一個商業模式,其中程式碼是您提供的價值的不完整部分。例如,銷售產品許可證,並提供對您在網站上管理的某些資料的訪問,或以訂閱模式或客戶支援的方式授權產品。
設計使用者授權協議(EULA)是一個法律問題,而不是編碼問題。您可以從您使用的產品和網站的一些EULA文字開始閱讀。您可能會發現一些有趣的細節!
建立專有授權非常靈活,可能超出了StackOverflow的預期範圍,因為它不僅涉及編碼。
我想到的一些EULA的部分內容包括:
如果產品有錯誤或造成損害,限制您的責任。
明確規定客戶可以如何使用其許可的軟體,使用多長時間,在多少台機器上使用,是否具有再分發權利等等。
賦予您審核其網站的權利,以便您可以執行許可證。
如果他們違反了EULA,例如他們失去了使用您軟體的特權,會發生什麼。
您應該諮詢法律專業人士以準備商業EULA。
編輯:如果這個專案無法證明請律師的費用,請查看以下資源:
joelonsoftware上的「EULA建議」
「如何撰寫最終使用者授權協議」