cPanel访客记录显示可疑链接 WordPress站点遭恶意扫描带宽异常升高
问题原因说明
你遇到的是典型的WordPress站点恶意扫描/爆破攻击,相关异常访问记录如下:
恶意流量未被Wordfence统计的核心原因是:Wordfence作为WordPress插件,仅能捕获到进入WordPress内核处理流程的请求,这类随机PHP请求大多直接在Web服务器(Nginx/Apache)层就因为文件不存在返回404,没有触发WordPress加载,因此不会进入Wordfence的统计范围。
解决方案
1. Web服务器层前置拦截(最有效降带宽方案)
这层拦截直接在请求到达WordPress之前就阻断,不会产生多余的带宽消耗:
若使用Nginx服务器
在站点配置文件中添加以下规则:
- 拦截所有不存在的PHP文件请求,直接断开连接不返回内容:
location ~ \.php$ { # 仅请求的PHP文件真实存在时才交给PHP处理 if (!-f $request_filename) { return 444; } # 原有PHP解析规则(比如fastcgi_pass配置)保留在下方即可 }
- 若你不使用XML-RPC功能,直接拦截所有xmlrpc.php请求:
location = /xmlrpc.php { return 444; }
- 给wp-login.php加访问限制,仅允许你自己的IP访问:
location = /wp-login.php { allow 你的公网IP; deny all; # 原有PHP解析规则保留在下方 } # 也可以额外加一层HTTP基础认证,进一步降低爆破风险: # auth_basic "Admin Login"; # auth_basic_user_file /etc/nginx/你的站点认证文件路径;
配置完成后执行nginx -s reload生效。
若使用Apache服务器
在站点根目录的.htaccess文件中添加以下规则:
- 拦截不存在的PHP文件请求:
<FilesMatch "\.php$"> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ - [R=403,L] </FilesMatch>
- 拦截xmlrpc.php请求:
<Files "xmlrpc.php"> Require all denied </Files>
- wp-login.php访问限制:
<Files "wp-login.php"> Require ip 你的公网IP </Files>
2. 调整Wordfence配置提升拦截能力
- 进入Wordfence后台的「防火墙」选项,将防火墙模式从默认的基本 WordPress 保护修改为扩展保护,修改后会自动生成
.user.ini文件提前加载防火墙逻辑,可拦截更多到达PHP层的恶意请求。 - 开启暴力攻击拦截:在「全局选项」中设置登录失败5次即封禁IP 24小时,可有效拦截wp-login爆破请求。
3. 补充优化措施
- 给所有静态资源(图片、CSS、JS)配置30天以上的强缓存,避免恶意扫描静态资源产生重复带宽消耗。
- 若攻击流量过大,可接入CDN服务,在CDN层配置规则直接拦截所有不存在的PHP请求、xmlrpc.php和非白名单IP的wp-login.php请求,源站完全不会收到这类恶意流量。
- 定期查看Web服务器访问日志,将高频请求的恶意IP段直接通过服务器防火墙(iptables/firewalld)封禁。
内容的提问来源于stack exchange,提问作者amrefayee
相关产品推荐
相关产品推荐

