Allow_url_include有一种方法允许只包含一个网址

时间:2012-09-05 03:38:41

标签: .htaccess php

allow_url_include有没有办法只允许一个网址包含。也许与Htaccess或PHP?

2 个答案:

答案 0 :(得分:1)

没有。要获取网址的内容,请使用file_get_contents()。然后,要将结果发送回等待的浏览器,只需使用echo()

$contents = file_get_contents('http://www.example.com/');
echo( $contents );

以上内容将要求您设置config allow_url_fopen=1(默认情况下已设置)。


如果您要使用include,而不是上面显示的方法,则会有一个主要区别:include执行任何PHP代码它在获取的文档中找到。一般来说,除非您知道您控制了所包含文档的100%内容,否则这是非常危险的。

那就是说:如果你想要的代码与include完全相同,你可以做类似下面的事情(这样更安全,因为它只提取一个URL,而且< em>没有要求您启用allow_url_include)。

$contents = file_get_contents('http://www.example.com/');
eval('?>'.$contents);

如果您选择这样做,请确保您控制远程网址的全部内容。如果其他人控制该文件,他们将能够在您的服务器上执行任意代码。不要让这种情况发生。

答案 1 :(得分:0)

为什么你需要它,你可以控制代码,你只需要使用一个url。除了使用allow_url_include是非常危险的。如果您仍想使用,可以这样做。

制作自定义功能(粗略代码)

function url_include($url){
   //now check if $url is the one you want to be included
   if($url=="http://www.mysite.com/file.php"){
     include($url);
   }else{
      //show error or something.
   }
}

现在使用您网页中的url_include("http://www.mysite.com/file.php");来添加网址。

希望这有帮助