禁用对包含文件的访问

ber*_*nte 2 php include http-status-code-404

我有一个小问题..

我想禁用直接访问我包含的文件.(例如header.tpl.php,footer.tpl.php,confic.inc.php,db-connect.inc.php等.)

但首先让我解释一下我想要做什么,我想要允许访问我所包含的文件(index.php)并禁用带有404标题的文件以便直接访问.

现在我发现了一些很酷的php片段并对其进行了修改(404标题和404包含)

在我的index.php中是这段代码:

define('MY_APP',true);
Run Code Online (Sandbox Code Playgroud)

在我的模板文件中是这段代码:

if(!defined('MY_APP')) {
header('HTTP/1.1 404 Not Found');
include('./../error/404.php');  
die; }
Run Code Online (Sandbox Code Playgroud)

你看到这个代码有任何安全性或其他问题吗?

最好的问候bernte

hak*_*kre 5

你看到这个代码有任何安全性或其他问题吗?

如果您的服务器被重新配置,以便.php不再执行,它们的源代码将是可见的.

但除此之外,您的方法是一种非常常见的方法.但是error/404.php可以包含该header('HTTP/1.1 404 Not Found');行,因此您不需要为每个文件重复它.同样的die;声明.

在每个库/模板等文件中:

require('../error/include_file.php');
Run Code Online (Sandbox Code Playgroud)

include_file.php:

if(!defined('MY_APP'))
{
    header('HTTP/1.1 404 Not Found');
    include('404.php');  
    die; 
}
Run Code Online (Sandbox Code Playgroud)

对你的设计来说可能更好.不要重复那么多.