我的子主题Functions.php是否需要if{die}安全性?

时间:2016-06-18 作者:CSS Apprentice

我是PHP新手,但我注意到几乎每个PHP文件都有一个安全代码段,“如果没有以正确的方式访问,就死”脚本;my question, 是否有子主题functions.php 还需要这样的东西来保证安全吗?

PHP:

if ( ! defined( \'ABSPATH\' ) ) {
    die( \'Direct Access Not Permitted\' );
}

4 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

它需要它吗?可能不会(除了this edge case, bravokeyl的道具)。你应该添加它吗?在我看来,是的:

从编码/架构角度来看,您正在声明“此文件需要WordPress”Undefined function get_header in /bada/bing/bada/boom)However, 我绝对讨厌这个:

die( \'Direct Access Not Permitted\' );
IMO应该是:

if ( ! defined( \'ABSPATH\' ) )
    exit;
有这样的“信息”是没有意义的。我是exit. 它传达了这样一个事实,即这是一个预期的可能情况,在这种情况下,我只想退出。我使用die 对于“意外”情况,如文件系统写入错误、数据库错误等。

SO网友:bravokeyl

大多数情况下,无需检查defined( \'ABSPATH\' ) 在子主题中。

SO网友:Tom J Nowell

functions.php 如果使用WordPress API直接加载,将生成PHP fatals。

如果functions.php 尝试引导和加载WordPress,但是,是的,这是必要的,但是如果你已经这样做了,那么有些东西就不见了horribly wrong 你需要从头开始

SO网友:Liam Bailey

如果错误报告设置正确,直接加载几乎所有(如果不是全部)WordPress文件只会给您带来一个白色的死亡屏幕。这是因为它将触发停止执行的致命PHP错误,错误显示的正确公共设置是不显示它们。然而,如果您试图屏蔽您正在使用WordPress,或者至少尽可能长地这样做,那么您可能希望进行该检查,但在if触发器内会触发404响应代码。