P粉7764125972023-08-07 10:37:48
您需要考虑您的目标:
1)您是否试图防止他人阅读/修改您的代码?如果是的话,您将需要一个混淆/加密工具。我使用过Zend Guard取得了很好的效果。
2)您是否试图防止未经授权的代码重新分发?EULA/专有许可证将赋予您法律权力来阻止这种行为,但实际上无法完全阻止。密钥/激活方案将允许您积极监控使用情况,但如果不对代码进行加密,这些方案可以被移除。Zend Guard还具有将特定脚本锁定到特定客户机器和/或创建时间限制版本的功能,如果这符合您的需求。
我不熟悉vBulletin等软件,但他们要么需要加密/混淆,要么需要信任他们的用户做正确的事情。在后一种情况下,他们通过EULA禁止不希望出现的行为,并依靠法律系统来支持对EULA的违约行为进行追究。
如果您没有准备/能力采取法律行动来保护您的软件,并且不想加密/混淆,您的选择是:a)发布带有EULA的软件,这样如果需要的话,您就有了法律选择,并希望一切顺利,或者b)考虑是否使用开源许可证可能更合适,允许重新分发。
P粉0119126402023-08-07 09:00:04
混淆事物只会给您合法、守法的客户带来不便,而那些可能欺骗您的人并不是您的目标付费客户。(编辑掉了关于混淆的其他想法)
保护您的软件的另一个建议是:创建一个商业模式,其中代码是您提供的价值的不完整部分。例如,销售产品许可证,并提供对您在网站上管理的某些数据的访问,或者以订阅模式或客户支持的方式许可产品。
设计用户许可协议(EULA)是一个法律问题,而不是编码问题。您可以从您使用的产品和网站的一些EULA文本开始阅读。您可能会发现一些有趣的细节!
创建专有许可证非常灵活,可能超出了StackOverflow的预期范围,因为它不仅仅涉及编码。
我想到的一些EULA的部分内容包括:
如果产品存在错误或造成损害,限制您的责任。
明确规定客户可以如何使用其许可的软件,使用多长时间,在多少台机器上使用,是否具有再分发权利等等。
赋予您审核其网站的权利,以便您可以执行许可证。
如果他们违反了EULA,例如他们失去了使用您软件的特权,将会发生什么。
您应该咨询法律专业人士以准备商业EULA。
编辑:如果这个项目无法证明请律师的费用,请查看以下资源:
joelonsoftware上的“EULA建议”
“如何编写最终用户许可协议”