0

我使用一个简单的链接来检查远程服务器上的许可证并获得失败的成功(1 表示活动,0 表示非活动)如果 1,脚本运行,如果 0 脚本停止

http://licenseserver.com/check.php?key=test123

我在每个用户登录时都进行此调用,但为了加快脚本速度,我想每周检查一次许可证,如果许可证服务器关闭,请尝试再次检查 3 天以上,如果无法联系服务器,则打开脚本离开。

我认为正确的是在数据库或 txt 文件中包含这些检查元素(如上次检查、上次尝试等),但用户可以手动编辑参数并绕过检查。

有一种方法可以将其包含在加密文件中吗?

4

3 回答 3

3

并不真地。如果代码在客户的硬件上运行,那么他们可以用它做任何他们想做的事情。这包括:

  • 在调试器下运行代码并逐步执行指令,在闲暇时查看所有状态
  • 用自己的存根替换 PHP 的函数(或其中的一个子集,例如可以进行网络通信的函数),这些存根可以跟踪正在发生的任何事情
  • 捕获网络通信并进行中间人攻击(例如,他们可以插入一个总是以“全部清除”消息响应的代理

你当然可以让它变得更难,但你永远不会赢。

于 2013-09-09T20:30:19.950 回答
2

为什么不将许可证检查器添加到几个核心文件中或仅添加到管理区域脚本中,而不是将其包含在每个页面中?你试过http://www.phplicengine.com吗?

于 2014-08-01T05:12:48.047 回答
1

谢谢大家的回答。

目前,我将以这种方式进行:

1) 使用 Ioncube 加密脚本

2)生成license.key

3) 在客户端服务器上执行脚本安装

在 license.key 上,我设置了到期日期和硬件详细信息。

脚本有一个 cronjob.php,每周从我的服务器下载更新的 license.key。

用户可以编辑参数(例如最后检查日期),但如果不更新 license.key 软件停止运行。

我了解软件盗版问题,但是这个脚本在一家大公司中使用,他们不太可能取消脚本。

事实上,停止运行软件是定期从我的客户那里收到付款:-)

非常感谢大家。

于 2013-09-09T21:17:11.770 回答