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/

10-13 09:10
查看更多