为了账号安全,请及时绑定邮箱和手机立即绑定

包括来自另一个服务器的php文件和php

包括来自另一个服务器的php文件和php

PHP
绝地无双 2019-12-04 14:49:27
我有两个位于不同服务器上的PHP文件,一个位于http://www.mysite.com/main.php,另一个位于http://www.sample.com/includeThis.php。我想包括第一个文件中的第二个文件。第二个文件的内容如下所示:<?php$foo = "this is data from file one";和第一个文件:<?phpinclude "http://www.sample.com/includeThis.php";echo $foo;有什么办法可以做到吗?
查看完整描述

3 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

阅读您的评论(您声明要执行此操作作为一种版权保护手段)后,我的回答很重要,请忘记它。复制保护不是这样工作的。

您唯一可以做的include()就是从其他地方获取源代码以在本地解释器中进行解释。这很容易被孩子们破解:恶意客户只需要echo()获取所获取的代码即可。

远程(在服务器上)执行远程脚本将无济于事,因为在您调用该脚本的脚本中不会存在该脚本的状态(变量,函数...)

您有以下选项:

  • 编译/编码/混淆脚本,可能需要特定的PHP模块来执行它(SO上对此有很多疑问)

  • 创建在服务器上运行并执行请求的操作的真实Web服务(例如,使用SOAP)

但是,出于我的价值,我个人不购买,也不建议客户购买编码后的脚本和需要“打电话回家”才能工作的脚本。我相信通过严格的许可协议来保护您的产品(这会吓到商业客户购买您的产品,因为被盗的风险太高了。)


查看完整回答
反对 回复 2019-12-04
?
幕布斯7119047

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。


查看完整回答
反对 回复 2019-12-04
  • 3 回答
  • 0 关注
  • 530 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信