如何使PHP应用程序需要密钥才能工作?

时间:2009-09-10 23:22:57

标签: php key encryption

大约4年前,我使用了一个名为amember pro的php产品,它是一个会员脚本,有30个不同的支付处理器的插件,这是一个简单的方法来建立一个自动会员网站,用户将支付和进入某个区域。

该脚本使用ioncube http://www.ioncube.com/sa_encoder.php来阻止非付费用户使用该脚本,它重新注册您注册了将使用该脚本的域,然后您获得了一个密钥以输入该文件会使系统/脚本工作。

现在我想知道如何做这样的任务,我知道ioncube编码器只是让人很难看到代码,在我提到的脚本中,他们只会在包含1的tp中有一小部分加密的页面,如果脚本的所有者没有将你的域放在列表中并给你一个有效的密钥它就不会工作,如果你试图使用脚本在不同的域上,它将无法正常工作。

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

这是真正的问题所在,如何让脚本需要加密的部分?如果我制作了一个脚本并且在顶部有一个小的加密部分,那么用户似乎可以轻松地删除加密部分并找出未加密部分正在做什么并将其修复工作。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

fever有一个类似的模型,你注册,下载软件(也是PHP),然后获得激活密钥。你可以在demo video(到最后)看到它的工作原理。

如果您要泄露源代码,那么您无法阻止具有编程知识的人修补您放入的任何版权保护/安全性。

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

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

基本上,如果你放弃了你正在进行军备竞赛的代码,并提出了越来越复杂的复制保护,最终可能会被打破。你必须决定付出多少努力。我个人不会投入太多精力。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

我看过它有多种方式。如果有人对它有兴趣,可以绕过你想到的任何软件方法。我们使用ioncube加密我们的非托管产品,并使用USB硬件加密狗进行备份。可以破解吗?是。但是,人们基本上是诚实的。我认为要让人们为脚本付费的事情就是让人们不愿意等待的新功能破解和发布频繁的更新。如果你的价格不是太高,人们就会决定付钱而不是破解。