2012-01-31 28 views
0

我想允許一個URL放在php的include()中;但只有某些領域 - 不是每個領域。其他域由我擁有,並位於單獨的服務器上。如果有人試圖包含()任何其他域bu,我希望它們不被允許。域名特定的URL包含()免除

如果這不可行,是否有解決方法?

回答

1

我的建議?不要使用包含。以這種方式執行代碼就像吞下巧克力覆蓋的櫻桃炸彈。

+0

你會如何推薦避免巧克力覆蓋的櫻桃炸彈? – 2012-01-31 17:03:03

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 
    } 
+0

這是否需要在每個需要include()的文件中,或者我可以將它放在檢查服務器上每個php文件的地方? – 2012-01-31 17:27:09

0

你可以在網絡服務器上做到這一點,所以你甚至不讓域名不被允許解析或獲取任何文件。你必須記住任何請求都會經過Web服務器和服務器的靜態內容或被解析,這都需要花費時間,然後增加執行PHP腳本的時間。

相關問題