3 回答
TA贡献1951条经验 获得超3个赞
阅读您的评论(您声明要执行此操作作为一种版权保护手段)后,我的回答很重要,请忘记它。复制保护不是这样工作的。
您唯一可以做的include()
就是从其他地方获取源代码以在本地解释器中进行解释。这很容易被孩子们破解:恶意客户只需要echo()
获取所获取的代码即可。
远程(在服务器上)执行远程脚本将无济于事,因为在您调用该脚本的脚本中不会存在该脚本的状态(变量,函数...)。
您有以下选项:
编译/编码/混淆脚本,可能需要特定的PHP模块来执行它(SO上对此有很多疑问)
创建在服务器上运行并执行请求的操作的真实Web服务(例如,使用SOAP)
但是,出于我的价值,我个人不购买,也不建议客户购买编码后的脚本和需要“打电话回家”才能工作的脚本。我相信通过严格的许可协议来保护您的产品(这会吓到商业客户购买您的产品,因为被盗的风险太高了。)
TA贡献1794条经验 获得超8个赞
我想知道OP是否为自己找到了解决方案。据我所知,唯一可行的方法是将所有客户帐户与要包含的脚本放在同一服务器上-我做过类似的事情:
/path_to_myserver_root/httpdocs/clients/client01/wwwroot/scriptA.php /path_to_myserver_root/httpdocs/clients/client02/wwwroot/scriptA.php ETC ....
然后:/path_to_myserver_root/privatefiles/myapp/scriptB.php
wwwroot是每个客户端域指向的位置。
scriptA.php具有一些业务逻辑,然后包括具有上面完整路径的功能的scriptB.php:
要求('/path_to_myserver_root/privatefiles/myapp/scriptB.php')
scriptB.php位于服务器上受保护的私有目录中,http无法访问,并且客户端无法遍历。
现在提醒您,我这样做的原因是为了维护多个帐户之间的版本一致性,而不是从客户群中保留一些专有的神奇php代码-但我想可以出于此目的实现它。
嗯,YMMV。
- 3 回答
- 0 关注
- 530 浏览
添加回答
举报