如何防止对WordPress wp-login.php页面的攻击

如何防止对WordPress wp-login.php页面的攻击,wordpress,login,Wordpress,Login,在我的网站上,最高的GPU使用率实际上是在WordPress登录页面上,而不是在主页上。我基本上得出的结论是,它正在受到暴力袭击,或者类似的袭击 我安装了一个插件,可以防止来自机器人的密码攻击,但它并不能阻止机器人从一开始就访问该页面 我想将登录页面的位置更改为类似wp-login-here.php的内容,或者有更好的解决方案。看起来它可以做到这一点,但它与WordPress的最新版本不兼容。有什么想法吗 编辑:这个问题的真正解决方案是我彻底安装了WordPress,这次安装的版本是隐形插件支持

在我的网站上,最高的GPU使用率实际上是在WordPress登录页面上,而不是在主页上。我基本上得出的结论是,它正在受到暴力袭击,或者类似的袭击

我安装了一个插件,可以防止来自机器人的密码攻击,但它并不能阻止机器人从一开始就访问该页面

我想将登录页面的位置更改为类似wp-login-here.php的内容,或者有更好的解决方案。看起来它可以做到这一点,但它与WordPress的最新版本不兼容。有什么想法吗


编辑:这个问题的真正解决方案是我彻底安装了WordPress,这次安装的版本是隐形插件支持的。在这个早期版本的WP上安装了WP和隐形插件之后,我使用了插件创建的.htaccess文件,并将其复制到了生产站点(在做了一些修改之后)。我之所以接受这个答案,是因为糟糕的行为最终成为了一个好的插件,而另一个建议很有用。

为wp admin目录创建一个.htaccess规则,并将其设置为IP的集合列表或用户/密码组合。如果可以避免的话,你不想开始攻击wordpress,因为下一次升级只会撤消你的更改,并将其设置为Apache。htaccess级别将比尝试修补wordpress更有效。

作为建议,如果您在静态IP上,则可以使用.htaccess.passwd文件将对管理员目录的访问限制为已知IP地址列表。虽然这不会阻止访问尝试,但至少会降低资源使用率

仅按IP地址限制登录尝试次数有什么问题

如何向单个文件添加密码

将此添加到WP的当前
.htaccess

<FilesMatch "wp-login.php">
    AuthName "WordPress Admin"
    AuthType Basic
    AuthUserFile /path/to/.htpasswd
    require valid-user
</FilesMatch>

AuthName“WordPress管理员”
AuthType Basic
AuthUserFile/path/to/.htpasswd
需要有效用户
可以屏蔽一些已知的恶意IP地址。它与坏IP一起工作,并在网页完全加载之前阻止坏IP进入网页…

此外,还有一种使用.htaccess的方法
正如Jimmy已经指出的那样,锁定试图登录多次的所有人

除此之外,您可能还应该执行以下操作:

  • 不要使用管理员帐户(创建另一个具有管理员权限的帐户,但用户名不同于管理员,然后删除默认管理员帐户)
  • 使用强密码

作为安全性的补充,您可以尝试以下简单的WordPress插件:

该网站不再可用,但


它可以保护管理员的登录页面免受暴力攻击(通过在url中使用安全密钥)。

我创建了一个插件,允许您自定义登录url,还可以通过检查请求的url来防止远程表单$\u POST命令

与工具栏中的其他WP登录URL和丢失的密码链接相比,它并不完美,但在2013年的暴力攻击仍在继续期间,它已将登录尝试数天降至零


我似乎已经找到了答案

很长一段时间以来,我一直在努力尝试登录,并决定做一个实验

首先,我不使用admin作为我的管理员用户。因此,他们不会进入,因为所有的攻击都基于“admin”用户名

我设置了一个名为Admin的用户帐户,并将密码设置为“12345”。我将这个帐户转发到一个html页面,我称之为“busted”。起初,我很惊讶机器人仍然无法进入

两周前,一个机器人终于进来了。从那以后我就再也没有发作过。在那之后就再也没有攻击了


这可能是运气,但也可能奏效。

这可能是暴力攻击

将以下代码添加到主题文件夹中functions.php的底部,它将停止ping-back请求

add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );
function remove_xmlrpc_pingback_ping( $methods ) {
unset( $methods['pingback.ping'] );

return $methods;
}
并通过以下方式更改wplogin页面:

为了更新上面编辑并回答类似问题的epaps
,我也发现由隐形登录插件(现已长期废弃)生成的.htaccess规则是防止直接访问wp-login.php/wp admin和抵御各种攻击的最简单但最有效的方法(特别是野蛮的强迫)

我读过的其他“解决方案”需要php函数、对wp-config.php和.htaccess的更改以及重写。或者安装另一个(庞大的)插件!其中许多要么只是阻止/wp admin/URI(直接转到wp login.php很容易被破坏),要么中断评论者/客户登录

隐形登录插件的最终版本是v1.3,与WordPress版本2.3到2.7.1兼容。2011年10月15日的最后一个互联网存档快照可以在隐形登录1.3.zip下载。兼容版本的WordPress可以从发布存档下载-。进行著名的5分钟安装,解压缩ealth登录plugin到/wp content/plugins,您现在可以生成供自己使用的规则集

我的如下所示,在WoodPress 4.7.4和WooCommerce 3.0.5上运行良好。我唯一做的更改是在第12行添加了重写条件。有必要防止WooCommerce/我的帐户/客户注销被破坏(它是302重定向,没有/wp-login.php URI-这意味着查询字符串本身不会执行注销,因此没有发生任何事情。请注意,该字符串已保持打开状态,以拾取WPONCE变量

如前所述,这是我找到的最好的解决方案,甚至可以与WooCommerce一起使用。非常简单,但非常有效,感谢epaps指出这一点

RewriteRule ^signout wp-login.php?action=logout&_wpnonce=a3d57642ab&stealth_out_key=ow4hzd5lxudcetbgbfreaox6c1 [L]
RewriteRule ^signin wp-login.php?stealth_in_key=05gvov4wuuruahpuchpohavitl&redirect_to=https://yourwebsite.com/wp-admin/ [R,L]
RewriteRule ^admin wp-admin/?stealth_admin_key=f4ji1q6tpwr55s5a0h65clg0qk [R,L]
RewriteCond %{HTTP_REFERER} !^https://yourwebsite.com/wp-admin 
RewriteCond %{HTTP_REFERER} !^https://yourwebsite.com/wp-login\.php 
RewriteCond %{HTTP_REFERER} !^https://yourwebsite.com/signin 
RewriteCond %{HTTP_REFERER} !^https://yourwebsite.com/admin 
RewriteCond %{QUERY_STRING} !^stealth_in_key=05gvov4wuuruahpuchpohavitl 
RewriteCond %{QUERY_STRING} !^stealth_out_key=ow4hzd5lxudcetbgbfreaox6c1 
RewriteCond %{QUERY_STRING} !^stealth_reg_key=rue2bekyask21pwtegavqbbp5n 
RewriteCond %{QUERY_STRING} !^stealth_admin_key=f4ji1q6tpwr55s5a0h65clg0qk 
RewriteCond %{QUERY_STRING} !^action=logout&redirect_to=https%3A%2F%2Fyourwebsite.com%2Fmy-account%2F&_wpnonce= 
RewriteRule ^wp-login\.php https://yourwebsite.com [L] 
RewriteCond %{QUERY_STRING} ^loggedout=true 
RewriteRule ^wp-login\.php https://yourwebsite.com [L] 

正在使用addi保护登录页