为什么有必要阻止对包含文件的直接访问?

时间:2015-12-31 作者:henrywright

为什么有必要阻止直接访问包含的文件?例如:

if ( ! defined( \'ABSPATH\' ) ) {
    exit; // Exit if accessed directly.
}
我注意到许多插件都可以做到这一点,但我在WordPress核心文件(如capabilities.php 例如)。

1 个回复
SO网友:jgraup

因为您可能有更改数据库、显示敏感信息或以其他方式触发事件的代码,您只希望它在您设计的条件下无误地执行。

许多核心文件只包含直接访问文件时不会执行的函数。

当他们更改数据/文件时,通常会检查$\\u POST操作,Nonces 并在采取操作之前验证用户权限。通常情况下,权限检查是文件中的第一件事。

if ( ! current_user_can( \'list_users\' ) ) {

if ( ! current_user_can( \'create_users\' ) && ! current_user_can(\'promote_users\' ) ) { wp_die

if ( ! defined( \'IFRAME_REQUEST\' ) && isset( $_GET[\'action\'] ) && in_array( $_GET[\'action\'], array( \'update-selected\', \'activate-plugin\', \'update-selected-themes\' ) ) ) 

if ( !current_user_can(\'export\') )
如果这些检查失败,通常会终止请求

wp_die(__(\'You do not have sufficient permissions to export the content of this site.\'));

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请