繁体   English   中英

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

[英]How can I prevent “include files” from being seen by users?

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

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

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

您有几种选择。

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

这是适合您的PHP。

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

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

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

您可以在主文件中定义一个常量,并在包含的文件中使用它来确定是否确实包含了它们:

index.php

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

header.php

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM