2011-09-14 28 views
0

我想知道這是否正常。文件只能使用包括

我需要阻止網絡訪問文件,使其只能從其他PHP avaible(即:包括)提前

if(strstr($_SERVER['PHP_SELF'], "filename.php")){ 
     header('Location: http://www.website.net'); 
} 

感謝

+2

爲什麼不把你的包含文件放在web根目錄之外?轉儲您的支持文件輸入一個公共可訪問的目錄是嚴重sl sl。 – meagar

回答

2

最常用的方法是定義在一個恆定父腳本

define('BLA', true); 

,並在您的腳本檢查它是否存在:

if (!defined('BLA')) { 
    // redirect here 
} 
0

這很好,但您可以通過使用它而不是手動輸入文件名來使其更通用一些。 $_SERVER["SCRIPT_NAME"]將返回文件的名稱。這樣,如果您重命名或複製文件,它仍然受到保護。

您還可以設置文件權限以使文件不可訪問,並將其置於siteroot之外以實現良好的度量。

@zerkms也有一個有趣的建議。