【问题标题】:How can you make a PHP application require a key to work?如何使 PHP 应用程序需要密钥才能工作?
【发布时间】:2009-09-10 23:22:56
【问题描述】:

大约 4 年前,我使用了一个名为 amember pro 的 php 产品,它是一个会员脚本,其中包含适用于 30 种不同支付处理器的插件,它是一种建立自动会员网站的简单方法,用户可以在其中支付款项并进入特定区域。

该脚本使用 ioncube http://www.ioncube.com/sa_encoder.php 来防止非付费用户使用该脚本,它要求您注册将使用该脚本的域,然后给您一个密钥以进入该文件系统/脚本工作。

现在我想知道如何做这样的任务,我知道 ioncube 编码器只是让代码很难看,在我提到的脚本中,他们只会在包含的 1 的 tp 处有一小部分已加密的页面,如果没有该部分代码,它会中断,此外,如果脚本的所有者没有将您的域放在列表中并给您一个有效的密钥,它也不会工作,如果您尝试使用该脚本在不同的域上它不起作用。

我意识到加密代码中的某处必须将密钥发送到那里的服务器并检查它是否对它所在的域名有效,或者它甚至没有这样做,也许密钥只是验证它与脚本所在的域匹配,这更有可能是它所做的。

这是真正的问题所在,您如何使脚本需要加密的部分?如果我制作了一个脚本并在顶部有一个小的加密部分,那么用户似乎可以轻松地删除加密部分并弄清楚非加密部分在做什么并修复它以使其正常工作。有什么想法吗?

【问题讨论】:

    标签: php key encryption


    【解决方案1】:

    fever 有一个类似的模型,你注册,下载软件(也是 PHP),然后得到一个激活密钥。你可以在demo video(接近尾声)中看到它是如何工作的。

    如果您要泄露源代码,则无法阻止具有编程知识的人修补您设置的任何复制保护/安全性。

    我能想到的一件事是分发 C/C++ 编译程序或扩展,PHP 应用程序调用它来验证许可证。然后编译的部分可以打电话回家,等等。不过,即使这样也很容易绕过。

    你可以在这些类似的问题中看到一些其他的想法:

    基本上,如果您要放弃代码,您就是在与越来越复杂的复制保护进行军备竞赛,最终总是会被破解。你必须决定付出多少努力是值得的。我个人不会投入太多精力。

    【讨论】:

      【解决方案2】:

      这不是一种完美的方法,但是您可以使用编码器来隐藏代码并使其调用服务器上的一个页面,该页面返回一个难以伪造的值。这将是服务器密集型的,但可以做你想做的事。你会想做一些涉及时间的事情。经常更新代码。

      【讨论】:

        【解决方案3】:

        我已经看到它以多种方式完成。如果有人有足够的兴趣来研究它,那么几乎可以绕过您想到的任何软件方法。我们使用 ioncube 加密我们的非托管产品并使用 USB 硬件加密狗对其进行备份。可以破解吗?是的。但是,人们基本上是诚实的。我认为让人们为脚本付费的做法是让破解和发布带有人们不想等待的新功能的频繁更新变得很痛苦。如果你的价格不是太高,人们就会决定买单而不是破解。

        【讨论】:

          猜你喜欢
          • 2013-01-21
          • 1970-01-01
          • 1970-01-01
          • 2013-01-04
          • 1970-01-01
          • 1970-01-01
          • 2020-09-07
          • 1970-01-01
          • 2010-12-16
          相关资源
          最近更新 更多