如何避免用户将localhost或127.0.0.1或self ip传递给loadHTML


How to avoid the user pass a localhost or 127.0.0.1 or self ip to loadHTML?

我有一个简单的功能来检查网站的标题:

$doc = new DOMDocument();
@$doc->loadHTMLFile($aUrl);
$xpath = new DOMXPath($doc);     
if(!isset($xpath->query('//title')->item(0)->nodeValue)) 
{             
     return FALSE;
}                              
return $xpath->query('//title')->item(0)->nodeValue;  

但是如果用户通过localhost或127.0.0.1,他们可以得到我的主机数据,我可以做一个简单的指南,允许用户输入这些值,但有时,我不能保证内部ip,如192.168.11.2,我怎么保护网站不会查询回我的主机?谢谢你!

将这一行添加到

if( preg_match( "/^(http:'/'/)(localhost|127.0.0.1|{$_SERVER["SERVER_ADDR"]}|{$_SERVER["HTTP_HOST"]}|www.yourhost.net)/i", $aUrl )) die( 'error' );

it may help

127.0.0.1或localhost对于外部用户将是自己的计算机/主机设置一个条件,检查主机名不是$_SERVER['SERVER_ADDR']或$_SERVER['SERVER_NAME']