如何关闭登录功能?

时间:2015-11-14 作者:Michael Khalili

在一次大规模暴力攻击中,我想完全关闭登录WordPress的功能。该网站上的唯一帐户是我的,因此访问者没有理由登录,也不会影响他们在该网站上的体验。

当我需要登录时,我可以删除代码。或者,我可以限制登录仅限于我的IP地址。

我试图通过使用以下代码尽早捕获登录尝试来实现这一点

if (isset($_POST[\'pwd\']) || isset($_GET[\'pwd\'])) {
    header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
    echo \'logins to the site are disabled\';
    die();
}
这是粗糙的,但应该有效。然而,仍然有一些登录尝试通过,我不知道他们可能来自哪里。

如果没有“pwd”字段,WordPress如何接受登录?

是否有关闭登录的现有约定?

编辑:除了停止wp登录之外。php,我删除了xmlrpc。php被用作强制登录的另一个入口。我当前的设置不需要它,但您的可能需要它。在禁用它之前,请确保您不需要它。

3 个回复
SO网友:Mark Kaplun

对于所有可能的身份验证(登录表单、xmlrpc、ajax等等),如果没有进行身份验证,就应该解决这个问题

Edit: 实际实现了将与用户相关的查询发送到DB

function wpse208677_authenticate($user,$username,$pass) {
  remove_filter(\'authenticate\',\'wp_authenticate_username_password\',20,3);
  return null;
  // if you want to whitelist your ip check for it and return $user
}

add_filter(\'authenticate\',\'wpse208677_authenticate\', 10,3)

SO网友:Branndon

这里的首要答案是糟糕透顶的PHP代码,完全崩溃了。这是一个很好的版本。我的声望太低,无法对最初的答案发表评论。

此代码可以放在wp-config.php 在紧要关头。

function wpse208677_authenticate($user,$username,$pass) {
  remove_filter(\'authenticate\',\'wp_authenticate_username_password\',20,3);
  return null;
  // if you want to whitelist your ip check for it and return $user
}
add_filter(\'authenticate\',\'wpse208677_authenticate\', 1,3)
另一个选项是阻止访问登录/注册页面。这甚至可以在WordPress的隐藏登录url后面工作。此代码可以放在wp-config.php (打开后<?php.

if ( in_array( $_SERVER[\'PHP_SELF\'], array( \'/wp-login.php\', \'/wp-register.php\' ) ) ){
    die(\'Site in maintenance mode.\');
}

SO网友:Ashvinee Rai

您可以使用修复此问题

更改“wp admin”目录并使用保护此目录。htaccess密码

相关推荐

Change default login auth

我将增强我的WordPress身份验证页面。我的想法很简单,就是更改过程以检查密码,就像使用用户名或电子邮件登录的默认过程一样。我已经更改了数据库,添加了额外的字段“code”:我的目标是:the user can login with your username or email and with your password or code.然而,我不知道哪个部分的编码是用来验证密码的,因为我想参考现有的编码。