如何在PHP中执行远程代码

时间:2014-06-21 14:46:43

标签: php

我只是尝试在本地执行远程PHP代码。

简单地说,我在xxx.com/code.txt上托管了一个外部脚本 - 然后想让我的内部系统在PHP中加载该代码。我尝试使用file_get_contents(),但我不认为这是正确的方法。

我也尝试使用include(),但似乎大多数PHP配置都禁用了http包装器。那么在这种情况下,我怎样才能使用PHP检查服务器是否启用了allow_url_include,因为我的脚本依赖于加载外部代码,或者至少有一个if函数来检查是否{{1}是否已启用。

2 个答案:

答案 0 :(得分:1)

尝试此功能

function get_data($url)
{
   $ch = curl_init();
   $timeout = 5;
   curl_setopt($ch,CURLOPT_URL,$url);
   curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
   curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
   $data = curl_exec($ch);
   echo $data;
   curl_close($ch);
 return $data;
}

您可以像这样调用此函数

$response = get_data('http://yoursite.com/code.txt');

答案 1 :(得分:1)

要安全地导入代码,您可以:

  • 制作一个需要哈希(大的大哈希)的PHP脚本并将其放在要连接的服务器上。
  • 然后你可以@file_get_contents()那个带有url哈希的php文件
  • 该脚本接受哈希,导入文件(无论哪个)并返回它。

但正如他们所说的那样,如果它是PHP,你想要三思而后行。

如果这不能说服你至少不做纯文本但加密它或某些东西(SSL是东西,但带有双面密钥的河豚会更好)和一个允许的IP系统。

重点是你要控制网关,而不是让它对所有人开放。