2011-09-14 23 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也有一个有趣的建议。