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
你看到这个代码有任何安全性或其他问题吗?
如果您的服务器被重新配置,以便.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)
对你的设计来说可能更好.不要重复那么多.