首先,我並不是在尋找奇蹟...我知道 PHP 是如何運(yùn)作的,並且沒有真正的方法可以在不使用加密的情況下向客戶端隱藏我的程式碼。但這需要在運(yùn)行的伺服器上安裝擴(kuò)充的成本。
我正在尋找不同的東西...我不想加密我的程式碼,甚至不打算混淆它。有許多 PHP 腳本沒有加密/混淆程式碼,但它們是商業(yè)應(yīng)用程式。例如,vBulletin 和/或 IP.Board 論壇應(yīng)用程式。
我只是想知道這些人在他們的應(yīng)用程式中使用什麼方法...
我也願(yuàn)意接受任何其他建議。
請(qǐng)注意,我是單身人士,不為公司工作。我的產(chǎn)品也很具體,賣不了那麼多。我只是想讓你們知道,我無(wú)力諮詢法律專業(yè)人士來(lái)起訴某人或準(zhǔn)備商業(yè)許可證。我只是在尋找一種簡(jiǎn)單的方法來(lái)保護(hù)我的簡(jiǎn)單產(chǎn)品,如果確實(shí)可能的話,不知何故......
您需要考慮您的目標(biāo):
1) 您是否試圖阻止人們閱讀/修改您的程式碼? 如果是,您將需要一個(gè)混淆/加密工具。我使用 Zend Guard 並取得了良好的成功。
2) 您是否試圖阻止未經(jīng)授權(quán)的程式碼重新分發(fā)? EULA/專有許可證將賦予您防止這種情況發(fā)生的法律權(quán)力,但實(shí)際上並不能阻止這種情況。金鑰/啟動(dòng)方案將允許您主動(dòng)監(jiān)控使用情況,但可以刪除,除非您也加密您的程式碼。 Zend Guard 還具有將特定腳本鎖定到特定客戶電腦和/或建立程式碼的時(shí)間限製版本(如果您想要這樣做)的功能。
我不熟悉 vBulletin 之類的東西,但他們要么需要加密/混淆,要么相信他們的用戶會(huì)做正確的事情。在後一種情況下,他們受到 EULA 的保護(hù),該 EULA 禁止他們認(rèn)為不良的行為,並且有法律體系支持違反 EULA 的行為。
如果您不準(zhǔn)備/無(wú)法採(cǎi)取法律行動(dòng)來(lái)保護(hù)您的軟體,並且您不想加密/混淆,您的選擇是a) 通過(guò)EULA 發(fā)布它,這樣您就有合法的選擇,如果您曾經(jīng)需要它並希望得到最好的結(jié)果,或者b) 考慮開源許可證是否更合適並且只允許重新分發(fā)。
混淆事物只會(huì)給您的合法守法客戶帶來(lái)不便,而那些會(huì)敲詐您的人無(wú)論如何都不是您的目標(biāo)付費(fèi)客戶。 (刪除了其他有關(guān)混淆的想法)
保護(hù)軟體的另一個(gè)建議:建立一個(gè)商業(yè)模型,其中程式碼是您產(chǎn)品價(jià)值的不完整部分。例如,出售產(chǎn)品許可證以及對(duì)您在網(wǎng)站上管理的某些資料的存取權(quán)限,或透過(guò)訂閱模式或透過(guò)客戶支援來(lái)授權(quán)產(chǎn)品。
設(shè)計(jì) EULA 是一個(gè)法律問(wèn)題,而不是編碼問(wèn)題。您可以先閱讀您使用的產(chǎn)品和網(wǎng)站的一些 EULA 文字。您可能會(huì)發(fā)現(xiàn)一些有趣的細(xì)節(jié)!
建立專有授權(quán)非常靈活,而且可能超出了 StackOverflow 的預(yù)期範(fàn)圍,因?yàn)樗鼇K不嚴(yán)格涉及編碼。
我想到的 EULA 的一些部分:
您應(yīng)該諮詢法律專業(yè)人士來(lái)準(zhǔn)備商業(yè) EULA。
編輯:如果該項(xiàng)目無(wú)法證明律師費(fèi)用合理,請(qǐng)查看以下資源: