6

我正在考虑制作一个商业应用程序来出售给客户以安装在他们的服务器上,但我想用 PHP 和 MySQL 来做。

我应该怎么做才能确保源代码(和数据库)不会被打开或复制。最重要的是代码将托管在客户服务器上。以及如何确保客户不会转售 Web 应用程序(例如将代码和 Db 复制给其他人)

谢谢

4

5 回答 5

6

关于 SO 上的 PHP 代码混淆/加密/编译存在很多问题。去看一下。

有许多产品可以保护 PHP 代码,例如Zend Guardioncube 编码器等。

相关的SO问题:

于 2010-04-02T18:02:56.850 回答
2

只要软件以源代码形式(相对于二进制)分发,就无法阻止客户打开/更改它。甚至二进制文件也可以通过反编译来或多或少地进行逆向工程。

人们可以混淆代码以使其难以阅读/理解其工作原理,但作为每一种对策,它都不会阻止盗版——迟早会有足够动力的人绕过它。

你有几个选择:

  1. 销售您的软件即服务 (SAAS)。

  2. 只是不关心盗版,高调/如果价格合理,大多数用户可能无论如何都会支付。

  3. 将其授权为免费(自由)并通过销售支持等获利。

于 2010-04-02T18:18:15.260 回答
1

您可以在应用程序中使用Zend Guard和一些控件来尝试减少 PHP WEB 应用程序的盗版。

数据库可能会保持打开状态。

于 2010-04-02T18:01:08.670 回答
0

IMO,如果没有完全托管的环境,这是不可能的。一旦在客户的服务器上,他们就可以访问,那么这是一个决心和资源的问题。我这样说是因为即使是强大的本机代码许可保护也一直被颠覆,只是谷歌可以看到所有破解的密钥。

如果您确实想保护您的代码,使用本地语言或混淆版本(至少)只会改变难度的大小,但不会降低风险。

保护数据库更加困难。即使是允许完全数据库加密的引擎也需要密钥来启动/连接到数据库。如果这是您的网络应用程序的一部分,或者在客户手中,他们就拥有完全的访问权限。DB Encryption 真正用于防范黑客,而不是针对您的客户。

盗版成为一个法律问题,而不是技术问题。

于 2010-04-02T17:56:12.437 回答
0

我认为您能做的最多就是对其进行编码,但如果他们足够精明地注意到他们可以对其进行解码... PHP 是一种在运行时解释的脚本语言。

您的客户应该签署一份合同说他们不会分发它,您可以对软件进行某种许可检查,以验证没有人非法使用它... vbulletin 是一个商业 PHP Web 应用程序的示例,你可以看看他们做生意的方式。

于 2010-04-02T18:01:10.870 回答