有没有办法检查PHP脚本是否已被修改?
我已经编写了一个脚本,人们将安装在自己的服务器上,我希望能够检查输出是真实的还是伪造的。
这可能吗?
简单的答案是:你不能。因为服务器(您不控制它)执行代码(您不再控制它),所以它们可以完全控制响应。总是有可能改变东西,并试图假装它是合法的。
但是,你可以试着让它变得更难。这与软件盗版保护、数字版权管理和其他类似技术的前提相同,这些技术旨在限制对所有者/发起人控制之外的信息可以执行的操作。
一些方法:
- 对php进行模糊处理,使其更具防篡改性
- 让脚本向您发送一个使用公钥加密的自身哈希,作为其输出的一部分
- 加密(对称或非对称)php本身的大部分内容,并添加解密/执行部分
- 对每个脚本副本进行个性化处理,在您让其他人使用的每个脚本的预期输出中包括某种已知的唯一值,并在输出中进行验证,以确保它是该服务器的预期值