我想允許一個URL放在php的include()中;但只有某些領域 - 不是每個領域。其他域由我擁有,並位於單獨的服務器上。如果有人試圖包含()任何其他域bu,我希望它們不被允許。域名特定的URL包含()免除
如果這不可行,是否有解決方法?
我想允許一個URL放在php的include()中;但只有某些領域 - 不是每個領域。其他域由我擁有,並位於單獨的服務器上。如果有人試圖包含()任何其他域bu,我希望它們不被允許。域名特定的URL包含()免除
如果這不可行,是否有解決方法?
我的建議?不要使用包含。以這種方式執行代碼就像吞下巧克力覆蓋的櫻桃炸彈。
$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
}
這是否需要在每個需要include()的文件中,或者我可以將它放在檢查服務器上每個php文件的地方? – 2012-01-31 17:27:09
你可以在網絡服務器上做到這一點,所以你甚至不讓域名不被允許解析或獲取任何文件。你必須記住任何請求都會經過Web服務器和服務器的靜態內容或被解析,這都需要花費時間,然後增加執行PHP腳本的時間。
你會如何推薦避免巧克力覆蓋的櫻桃炸彈? – 2012-01-31 17:03:03