【记录】保护我可爱的wordpress站点

博客搭建完毕之后,就可以直接开始愉快的写文章了,但是,博客毕竟是面向互联网公开的,难免会被攻击,攻击者利用wordpress的漏洞,间接进行账户枚举(即使密码强度大,不停的枚举也会影响服务器的性能,尤其是低配服务器 :kuanghan: )。 

博主收集了自己站点的账号登录失败记录:

平均每天有100+的登录失败的记录,看ip大多都是来自俄罗斯,乌克兰,美国的ip,着实让人头疼 :meng:

这时候就有人抢答:“你把log关掉就看不到了!”   我只能说,咱是不折腾会死星人,别说关log了,屏蔽国外IP我都不肯 :mianqiang: 

话既然说到这了,那么,怎么才能解决掉这些瞎登录的用户呢?

顺着网线过去打(不是)!不过不能确定对方是不是扫站点的机器人,所以博主决定以防代攻 :huaji11:

之前解决掉的主题遗留很久的评论嵌入脚本的漏洞:过滤评论中的html和script代码

 

关闭xml-rpc接口来限制登录

首先是关闭不常用的xml-rpc接口,这个接口主要是用来进行wordpress的app和第三方应用管理,登录验证的接口,不常用的话,建议关掉此接口,并做跳转。

关闭xml-rpc接口的方法:

  • 进入仪表盘,点击外观—>主题编辑器, 选择正在使用主题的functions.php文件进行编辑, 加入以下代码:
//关闭xmlrpc.php
add_filter('xmlrpc_enabled', '__return_false');
//关闭xmlrpc pingback,如果实在是想要xmlrpc功能,那么只需要关闭pingback即可
add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );
function remove_xmlrpc_pingback_ping( $methods ) {
unset( $methods['pingback.ping'] );
return $methods;
}
  • 关闭xml-rpc以后,将xmlrpc.php所在路径进行重定向,重定向目标地址随意:

效果展示:https://kanokano.cn/xmlrpc.php

利用插件或主题自带功能限制登录次数/封禁ip

博主主题自带了登录限制功能,但是不能有效地主动封禁恶意用户:

所以可以配合All In One WP Security 插件进行登录安全管理:

设置登录封禁措施步骤:

  • 打开插件设置->高级设置,IP检索设置,这里设置客户端ip获取方式,如果站点套了CDN,那么就需要切换到合适的获取方式,这里我选择了

    这里需要结合自身情况选择,如果选错了,可能会获取到错误的ip地址(比如误认为CDN的ip是源主机的ip),选好后保存。

  • 启用登录锁定:打开wp安全->用户登录->登录锁定,进行如下设置:

  • 允许解锁请求:当用户输错密码后站点锁定,可以他通过验证邮箱的方式解锁,推荐打开。
  • 最大登录尝试次数:推荐3,这里博主设置为6。
  • 登录重试时间段:推荐10分钟。
  • 锁定时间长度:看个人喜好,这里博主填114514(唐突恶臭)
  • 即时锁定无效的用户名:推荐打开,里面可以填常用的username,攻击者只需要尝试一次,即可被检测并封禁
  • 通过邮件通知:这里不推荐开,因为封禁的时候,会有非常多的邮件提示(一天上百个都有可能)这里为了检测封禁是否生效,所以勾上了。

设置完之后直接保存设置即可。

插件还有其他好用的安全功能,这里就不一一赘述了

测试效果:

https://cdn.jsdelivr.net/gh/kanoqwq/MyCDNCaches/img/dasda255.png

  • 可在WP安全-仪表盘-已锁定的ip地址 项目下查找并解封ip地址
  • 通过给出的邮箱解封入口进行解封

填入邮箱:

解封:

点赞
  1. 宁好说道:
    WebView Android 10

    什么

  2. 小宇吖说道:
    Google Chrome Windows 10

    固定链接建议为域名/目录(可选)/页面ID.html(在后方加入html可以增加爬虫的友好度)

    1. kanokano说道:
      Google Chrome Windows 7

      收到反馈~已经 :tushe: 修改,谢谢啦~

发表评论

电子邮件地址不会被公开。必填项已用 * 标注