php - 禁用对包含文件的访问

标签 php include http-status-code-404

我有个小问题..

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

但首先让我解释一下我想做什么 我希望所有人都允许访问我包含的文件 (index.php),并禁用带有 404 header 的文件以进行直接访问。

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

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

define('MY_APP',true);

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

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

您是否发现此代码有任何安全或其他问题?

最好的问候 伯恩特

最佳答案

do you see any security or other problems with this code?

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

但除此之外,您的方法是一种非常常见的方法。但是 error/404.php 可能包含 header('HTTP/1.1 404 Not Found'); 行,因此您不需要为每个文件重复它。 die; 语句也是如此。

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

require('../error/include_file.php');

include_file.php 中:

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

可能更适合您的设计。不要重复那么多。

关于php - 禁用对包含文件的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7715447/

相关文章:

php - 引用-此错误在PHP中意味着什么?

html - Jekyll 中的多个 OR 选项包括(液体模板)

c++ - 如何在我的 "include path"中放入一些东西?

java - Spring 启动 : 404 error when calling JSP using controller

php - 如何将多个图像从 HTML 上传到文件?

java - 使用 Cassandra 和 Solr 的网站最有效的架构?

php - 为什么不将哈希函数迭代 10,000,000 次?

javascript - 在 Joomla 文章中包含 javascript 文件是不好的做法吗?

asp.net-mvc - 如何在 ASP.NET MVC 中正确处理 404?

javascript - 我可以在客户端更改页面的 HTML 状态代码吗?