【问题标题】:Commercializing a php application?将 php 应用程序商业化?
【发布时间】:2009-11-03 02:29:59
【问题描述】:

假设我开发了一个 php webapp,并希望将其分发给其他人用作专有软件。除了某种许可或只是信任客户以避免提供托管解决方案之外,我还能做些什么吗?显然,如果我只是将应用程序分发给付费客户以独立托管,我会冒着他们泄露代码的风险。

更新:

到目前为止,一些回复暗示了混淆。但是,这不会阻止其他用户简单地将泄露的混淆代码放到他们的服务器上并重用它。当然,他们将无法修改它..但我正在寻找更完整的东西。有什么想法吗?

【问题讨论】:

    标签: php web-applications


    【解决方案1】:

    混淆它可能会有很长的路要走。很多用户不会试图弄清楚其中的逻辑。

    您还可以添加一个注册密钥 - 调用母舰并像加密狗一样工作的东西。

    编辑:我注册的目的:您可以按域出售许可证,并要求用户在购买后在您的网站上注册他们的域。

    我购买的一个脚本需要在他们的网站上激活。 (脚本也被混淆了。)不要进入域,软件会在一段时间后停止工作。转移域,软件停止工作。

    我不知道其中的机制,但基本想法是您要保证脚本在购买者所说的运行的域中运行。

    【讨论】:

    • 请注意,如果代码也被混淆,注册密钥只是一种合理的方法。
    • 您能详细说明一下注册码吗?除非从另一台服务器获得有效的注册密钥,否则代码中的某些逻辑会阻止其运行吗?
    【解决方案2】:

    您能详细说明一下注册码吗?除非从另一台服务器获得有效的注册密钥,否则它们是否会在代码中阻止其运行?

    为此,您必须在用户购买应用程序时为其生成密钥。然后,应用程序将与主服务器通信,主服务器依次查找密钥并检查密钥来自的域,并发送回一个简单的真或假读数。如果响应为真,则应用程序将继续其操作,否则将关闭。

    这种方法的唯一问题是,如果您的主服务器宕机,您的所有客户端都将被锁定(除非您创建了一个条件,即如果主服务器宕机,则默认响应为真) .

    【讨论】:

    • 客户端只需将防火墙配置为阻止从本地网络服务器到密钥验证服务器的传出连接。
    • 哦,我明白了。正如我认为其他人指出的那样,另一个问题是,这假定代码被混淆了,并且用户无法发现(并删除)阻止代码在没有密钥的情况下运行的逻辑。我似乎想不出办法解决这个问题。
    • 真的没有办法绕过它而不混淆代码。只要用户有权访问原始源,他们就可以做任何他们想做的事情。
    • 您可以使用类似的方法,但不要求每个被许可人都连接到主服务器,方法是在您的应用程序中包含非显而易见的哈希算法。因此,您根据主机名提供密钥,并将其存储在配置文件中;代码根据主机名计算许可证密钥并进行比较。
    • 太糟糕了,没有办法在 php 中创建某种二进制文件并分发它......我猜 PHP 被解释可以防止这种情况
    【解决方案3】:

    http://www.google.com/search?q=php+code+obfuscator&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

    试试吧……

    这种混淆通常包括剥离 cmets 和空格、base64 编码,有时还有其他一些小技巧,例如完全重命名每个变量等,使其几乎无法被人类理解

    【讨论】:

      【解决方案4】:

      Zend 有一个产品“Zend Guard”(http://shop.zend.com/en/zend-guard.html),它可能提供的不仅仅是混淆。

      凭借其编码、混淆和许可等关键组件,Zend Guard 可以保护您的 PHP 应用程序免受逆向工程、未经授权的定制、未经许可的使用和重新分发

      【讨论】:

        【解决方案5】:

        还有 ionCube。通常,这些解决方案需要加载服务器端扩展,但我发现大多数主机都会加载它们。

        ionCube 允许您根据需要授予特定域的许可,还允许您对脚本设置时间限制(以要求续订许可证)。

        虽然默认情况下 ionCube 是一个需要您自己实际创建许可证的系统,但您可以购买一个系统来自动为您管理这些东西(我以为是 PHP-Audit,尽管那个网站似乎有经历了重新设计,所以我不能再告诉了)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-16
          • 2011-03-02
          • 1970-01-01
          相关资源
          最近更新 更多