然而我正在寻找一些不同的东西...我不想加密我的代码甚至混淆它。有许多PHP脚本没有加密或混淆的代码,但它们是商业应用程序,例如vBulletin和/或IP.Board论坛应用程序。
我只是想知道这些人用于他们应用程序的方法...
另外,我也开放接受任何其他建议。
请注意,我是个人并非为公司工作。我的产品非常特定,销量不会很高。我只是想让大家知道我没有足够的财力咨询法律专业人员起诉某人或准备商业许可证。如果可能的话,我只是在寻找一种简单的方法来保护我的简单产品...
您需要考虑以下目标:
1) 您是否试图防止他人阅读/修改您的代码?如果是,您将需要一个混淆/加密工具。我使用过Zend Guard,效果很好。
2) 您是否试图防止未经授权再分发您的代码? EULA/专有许可协议将赋予您法律权力来阻止这一点,但实际上并不能完全防止。密钥/激活方案将允许您积极监控使用情况,但除非您还加密您的代码,否则它可以被删除。如果您想这样做,Zend Guard也有锁定特定脚本到特定客户机器和/或创建时限版本的功能。
我不熟悉vBulletin等论坛软件,但它们要么需要加密/混淆,要么需要信任其用户做正确的事情。在后一种情况下,他们拥有EULA的保护,禁止他们认为不良的行为,并且有法律制度来支持EULA的违反。
如果您没有准备好/能够采取法律行动来保护您的软件,而且您不想加密/混淆,那么您的选择是a)发布带有EULA的软件,以便在需要时具备法律选项,并希望一切顺利,或者b)考虑使用开源许可证可能更合适,只需允许再分发即可。
要真正保护你的 PHP 应用程序不被他人窃取,唯一的方法就是不分享源代码。如果你在网上发布你的代码或通过某种媒介将其发送给客户,那么除了你之外的其他人都可以访问该代码。
你可以为每个副本添加一个独特的水印。这样,你就可以追踪泄漏到单个客户的代码。(但既然代码已经超出了你的控制范围,这是否有帮助呢?)
我看到的大多数代码都附带有许可证和可能的保修条款。在脚本顶部加上一行告诉人们不要更改脚本的内容,可能就足够了。当我发现非开源代码时,我自己不会在我的项目中使用它。也许我有点天真,但我期望别人不会使用我的非开源代码!
我认为,但是如果你的PHP代码程序是为独立模式编写的...最好的解决方案是c) 你可以将PHP包装在像Phalanger (.NET)这样的容器中。众所周知,它与系统紧密绑定,特别是如果你的程序面向Windows用户。你只需要用Windows编程语言如.NET/VB/C#或者你在.NET编程语言家族中了解的任何语言来制作自己的保护算法。
Zend Guard不支持php 5.5,并且很容易被反向破解,请考虑使用http://www.ioncube.com进行混淆。http://wwww.phplicengine.com可以远程或本地授权脚本。
请查看我们的SD PHP混淆器。可以处理大型PHP文件系统。PHP服务器上没有运行时要求。没有额外的运行时开销。
[2016年5月编辑]最近的一个答案指出Zend不能处理PHP5.5。SD PHP混淆器可以。