如何防止用户看到“包含文件”?

时间:2012-05-14 08:51:27

标签: php

我网站的主文件(index.php)代码在这里:

<?php 
include 'header.php';
include 'sidebar.php';
include 'content.php';
include 'footer.php';
?>

但我不希望任何用户通过编写“www.domain.com/header.php”来查看这些包含文件。我应该在这些文件中插入php代码还是可以的?

3 个答案:

答案 0 :(得分:9)

您有几种选择。

  1. 将文件保留在webroot之外(因此它们不会自动获取自己的URI)
  2. 配置您的网络服务器以拒绝为其提供服务
  3. 测试是否设置了变量/常量,然后将其设置在允许包含它们的每个文件中。如果未设置,则exit

答案 1 :(得分:7)

这是给你的PHP。

if(basename(__FILE__) == basename($_SERVER['PHP_SELF'])){exit();}

简而言之,如果调用文件本身就会退出执行。

来源:http://thephpcode.blogspot.se/2009/07/creating-include-only-php-files.html

答案 2 :(得分:2)

您可以在主文件中定义一个常量,并在包含的文件中使用它来检测它们是否真的被包含在内:

的index.php

<?php
define('REALLY_INCLUDED', true);
include'header.php';

的header.php

<?php
if(!defined('REALLY_INCLUDED') || !REALLY_INCLUDED) {
    exit();
}
...