Wordpress:为什么订阅者可以看到管理面板?

时间:2017-08-24 18:24:06

标签: wordpress role

我的一位客户正在使用Woocommerce运行wordpress网站。我最近被要求以其用户之一登录,以便复制问题。

我发现我可以输入/ wp-admin,它只是带我进入完整的管理面板,我拥有与管理员相同的所有菜单项。这显然非常严重,因为如果有任何用户明白这一点,他们可以根据需要关闭网站。

为了阻止它们,我将以下脚本放在functions.php文件中:

<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>

以具有“订阅者”角色的用户身份登录后, current_user_can('administrator')会返回 false ,如果我位于网站的前端,如果我转到/ wp-admin,它会返回 true

由于当前用户只是订阅者,我认为它应该在任何地方返回false。

我有点困惑于此......我不知道接下来我应该注意什么。 (我试过通常的东西,比如禁用所有插件,但问题仍然存在)。你们对我接下来应该尝试什么有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您的支票不正确。你在做!wp_admin()。当您在管理面板中时,这是正确的,这与您想要的完全相反。

add_action('init', 'blockusers_init');

function blockusers_init()
{
    if (is_admin() && !current_user_can('administrator') && !( defined('DOING_AJAX') && DOING_AJAX ))
    {
        wp_redirect(home_url());
        exit;
    }
}

请注意,可以current_user_can('subscriber')仅定位订阅者,或!current_user_can('administrator')定位所有非管理员,即编辑者,贡献者等。

虽然整个情况很奇怪。通常,订阅者可以访问管理面板,但他们只能看到仪表板及其配置文件。如果他们实际上可以看到整个管理员小组,你应该调查原因,因为它是不正常的 附:您确定他们没有给您管理员帐户而不是订阅调查吗?

答案 1 :(得分:0)

上述问题的原因是该网站的黑客攻击。我发现根文件夹中的一些文件不应该存在。临时修复是删除wp-admin和wp-includes并从新安装中复制文件夹。现在订阅者不再能够查看管理面板,并且它会像应该的那样重定向到前端。现在我必须扫描插件文件夹以查看是否还有其他任何内容。