我使用一个简单的链接来检查远程服务器上的许可证并获得失败的成功(1 表示活动,0 表示非活动) 如果为 1,则脚本运行,如果 0 脚本停止
http://licenseserver.com/check.php?key=test123
我在每次用户登录时都会发出此调用,但为了加快脚本速度,我想每周检查一次许可证,如果许可证服务器关闭,请尝试再次检查 3 天以上,如果无法控制服务器,脚本将关闭。
我相信正确的是将这些检查元素放在数据库或 txt 文件上(如上次检查、上次尝试等),但用户可以手动编辑参数并绕过检查。
有没有办法将其包含在加密文件中?
不是真的。如果代码在客户的硬件上运行,那么他们可以用它做任何他们想做的事情。这包括:
- 在
- 调试器下运行代码并逐个执行指令,在闲暇时查看所有状态
- 将PHP的函数(或其子集,例如那些可以进行网络通信的函数)替换为自己的存根,这些存根可以跟踪正在发生的事情
- 捕获网络通信并进行中间人攻击(例如,他们可以插入始终以"全部清除"消息响应的代理
当然可以让它变得更难,但你永远赢不了。
为什么不将许可证检查器添加到几个核心文件中或仅在管理区域脚本上,而不是将其包含在每个页面上?你试过 http://www.phplicengine.com 吗?
谢谢大家的回答。
目前,我将以这种方式进行:
1)使用离子立方体加密脚本
2) 生成许可证.key
3) 在客户端服务器上执行脚本安装
在许可证上.key我已经设置了到期日期和硬件详细信息。
脚本有一个 cronjob.php每周从我的服务器下载更新的许可证.key。
用户可以编辑参数(例如上次检查日期),但如果不更新许可证.key软件将停止运行。
我理解软件盗版问题,但这个脚本在一家大公司使用,他们不太可能取消脚本。
事实上,停止运行软件是定期从我的客户那里接收付款:-)
非常感谢大家。