我想允许一个URL放在php的include()中;但只有某些领域,而不是每个领域。其他域由我所有,并且在一个单独的服务器上。如果有人试图包含()任何其他域,我希望它们被禁止。
如果这不可能,是否有解决办法?
我的推荐?不要使用includes。以这种方式执行代码就像吞下一颗巧克力覆盖的樱桃炸弹。
您可以在web服务器上执行此操作,这样您甚至不会让不允许解析或获取任何文件的域执行此操作。您必须记住,任何请求都将通过web服务器和服务器的静态内容或被解析,这一切都需要时间,然后添加执行PHP脚本的时间。
$allowed_domains = array(
'stackoverflow.com',
'www.stackoverflow.com',
'facebook.com',
'www.facebook.com',
'google.com',
'www.google.com',
);
if(!in_array(parse_url($url, PHP_URL_HOST), $allowed_domains)) {
// throw an error
}