您的位置 首页 wordpress教程

网站存在“WordPress用户信息泄漏泄漏”解决办法:wordpress网站未登录时限制访问wp-json/wp/v2/

漏洞名称 WordPress用户信息泄漏泄漏
漏洞url https://你的网址.com/wp-json/wp/v2/posts?per_page=1
漏洞描述 WordPress中的rest-api实现中的wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php没有正确限制文章作者的列表,这使得远程攻击者能够通过wp-json/wp/v2/用户请求获取敏感信息。

解决思路:wordpress网站未登录时限制访问wp-json/wp/v2/

解决方法:

在当前主题目录的functions.php文件里添加以下代码:

// 在账号未登录时禁用wp-json/wp/v2/,防止泄露信息
add_filter( 'rest_authentication_errors', function( $result ) {
    if ( ! empty( $result ) ) {
        return $result;
    }
    if ( ! is_user_logged_in() ) {
        return new WP_Error( 'Access denied', 'You have no permission to handle it.', array( 'status' => 401 ) );
    }
    return $result;
});