文件只能使用包含执行

时间:2011-09-14 03:05:47

标签: php include

我想知道这是否正常。

我需要阻止对文件的Web访问,并使其只能从其他php(即:include)中获取

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

提前致谢

2 个答案:

答案 0 :(得分:2)

最常见的方法是在父脚本中定义常量

define('BLA', true);

并检查您的脚本是否存在:

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

答案 1 :(得分:0)

这很好,但你可以通过使用它而不是手动输入文件名来使它更通用。 $_SERVER["SCRIPT_NAME"]将返回文件的名称。这样,如果您重命名或复制文件,它仍然受到保护。

您还可以设置文件权限以使文件无法访问,并将其放在siteroot之外以便进行测量。

@zerkms也有一个有趣的建议。