我想允许将URL放入php的include();但只有某些领域 - 不是每个领域。其他域名归我所有,并且位于单独的服务器上。如果有人试图包含()任何其他域名,我希望它们不被允许。
如果无法做到这一点,有解决方法吗?
答案 0 :(得分:1)
我的推荐?不要用包含它。以这种方式执行代码就像吞下巧克力覆盖的樱桃炸弹。
答案 1 :(得分:0)
$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
}
答案 2 :(得分:0)
您可以在Web服务器上执行此操作,因此您甚至不允许不允许解析或获取任何文件的域。你必须记住任何请求将通过Web服务器和服务器静态内容或被解析,这需要花费时间,然后添加PHP脚本执行的时间。