访问远程包含的文件类和函数

时间:2011-08-02 19:39:58

标签: php

<!-- php.ini -->
allow_url_include = On

<!-- fooFile.php on "http://www.example.com/" -->
<?php
  function fooFunc()
  { // this function has SOME SECURITY CODE that remote user can not be seen that...
    return ("this as fooFunc() on fooFile.php");
  }
?>

<!-- index.php on "my website" -->
<?php
  required_once("http://www.example.com/fooFile.php");
  echo fooFunc();
?>
  

致命错误:在......

中调用未定义的函数fooFunc()

3 个答案:

答案 0 :(得分:2)

example.com上的服务器必须返回PHP作为输出。换句话说,它必须返回纯文本。在example.com上禁用您的PHP引擎将fooFile.php更改为:

<?php
echo <<<'EOD'
<?php
  function fooFunc()
  { return ("this as fooFunc() on fooFile.php");
  }
?>
EOD;
?>

答案 1 :(得分:1)

如果您需要外部php页面,则会获得已解析的结果。想象一下,如果您可以“需要”外部页面并立即查看代码,那么会有什么安全隐患。

如果您想将其作为来源添加,则来源应该是可读的,例如将其设为.txt而不是.php

答案 2 :(得分:0)

你必须使它成为纯文本。如果您不希望人们看到安全信息,那么将其存储在SQL或MySQL数据库等其他地方,如果您的服务器支持它,那么在代码中您只需从数据库中检索数据。