index.php:
define("included", true);
包含的页面:
if (included !== true) header('HTTP/1.1 404 Not Found');
代码的目的是禁止直接访问,但如果包含则允许访问。我不确定这是否会带来任何风险。我不允许覆盖
.htaccess
,所以我坚持使用 PHP 替代方案。任何帮助将非常感激!
最佳答案
更性感的方式是...
defined('included') OR exit;
即,使用正确的函数(
defined()
)查看是否定义了值,然后利用 short circuit evaluation 。此外,您可能只使用现有定义而不是专门创建一个定义,例如您的引导文件可能会定义类似...
define('DOCROOT', realpath(basename(__FILE__)));
...在这种情况下,您可以安全地使用
DOCROOT
。除了 bootstrap 之外,您还应该将任何 PHP 文件保存在文档根目录之上,然后确保您的站点不受 directory traversal attacks 的影响:)
关于PHP 定义安全问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4963859/