4

我有一个基于 php 和 mysql 的应用程序,它将为我的一些客户托管在他们组织的本地主机上,并为其他客户托管在 Web 服务器上。我关心的是如何保护和保护本地主机上的代码?我只是不希望任何具有一点编程知识的人能够查看我的应用程序代码。代码将位于作为本地服务器的组织机器之一的 www/public_html 文件夹中的本地主机上,这一事实使我对我的代码被盗感到偏执。

谁能建议一些技术来实现这一目标?密码保护?或其他最佳实践?

我会要求社区成员不要立即关闭这个问题,因为它认为它模棱两可或断章取义。我非常需要一些专家的建议。

4

4 回答 4

3

我遇到了和你一样的问题。我知道,这是您项目中的设计缺陷。如果您将软件设计为可在线访问,则您不应该在客户的计算机中“安装”您的软件。

但有时我们不得不这样做。我们有这个很棒的 web 应用程序,有点贵,而且客户不多。每当一个新客户端坚持“即使互联网中断也需要运行”时,我的老板还是把它卖掉了,我们被告知只需将客户端的电脑配置为既作为服务器又作为客户端运行。从事该项目的人应该考虑到这种可能性,并且应该选择一些可以创建可执行文件而不是纯文本代码的技术。

我们选择使用Zend Guard来保护我们的代码。它为您预编译您的代码,但它仅适用于 PHP。您的 xml/txt/ini/css/js 文件仍然是可读的。我们有一些想要混淆的 xml 配置文件,但不能。

还有一些其他软件也可以做到这一点,只需搜索PHP Code Obfuscator

它们不是免费的(你自己开发它有点贵),但对你的公司来说不应该太贵。

请记住,您正在做的只是一种解决方法。这并不完全安全,也不推荐。PHP 旨在用于服务器,而不是在您的客户端机器中。

于 2013-01-03T18:52:09.497 回答
1

localhost始终是您当前使用的机器。我发现您几乎无法保护存储在那里的文件。任何形式的保护都可能削弱 PC 和您正在制作的应用程序的正常运行。

PHP 应该在服务器上运行,您的源代码会自动受到保护。

专家建议:你做错了

于 2013-01-03T17:51:19.287 回答
0

“查看我的应用程序代码”和“我的代码被盗”是两个不同的东西。

由于 php 是一种脚本语言,因此代码需要在将要运行它的服务器中,与 localhost 的事实无关。如果您想保护您的代码不被“查看”,您可以:

  • 混淆它。但是,如果有人真的感兴趣,那只是时间问题。
  • 加密它。您可以在启动服务器解密时请求密码,但这需要进行大量更改并影响性能。

但是,如果有人想窃取它,并且不关心它的外观,因为它不打算修改它,也许是为了节省许可证成本,那么他们只需要复制粘贴代码,无论多么混淆或加密它是,并让它运行。我猜,反复制技术超出了问题的范围。

于 2013-01-03T17:55:59.497 回答
0

查看一些代码加密/混淆软件,例如Zend Guard。不过,他们是有报酬的。

于 2013-01-03T17:55:04.083 回答