我的一位客户正在使用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。
我有点困惑于此......我不知道接下来我应该注意什么。 (我试过通常的东西,比如禁用所有插件,但问题仍然存在)。你们对我接下来应该尝试什么有什么想法吗?
答案 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并从新安装中复制文件夹。现在订阅者不再能够查看管理面板,并且它会像应该的那样重定向到前端。现在我必须扫描插件文件夹以查看是否还有其他任何内容。