You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress-5.2.2(Nginx-1.14.0)如何阻止恶意GET请求及垃圾URL索引

解决WordPress恶意GET请求与垃圾URL收录问题

嘿,针对你遇到的这个问题——清理恶意软件后仍有带奇怪参数的垃圾请求,部分返回200(软404指向首页),还被搜索引擎收录,咱们分几个层面来解决:

一、先从Nginx下手,拦截恶意请求源头

看你的日志,这些垃圾请求的query参数都带有斜杠(比如%2F)或者是「字符串-数字/xxx」「字符串/数字/xxx」的模式,直接在Nginx配置里加规则拦截:

  1. 添加全局拦截规则,匹配这类可疑参数的请求直接返回403:
server {
    # 保留你原有的配置...

    # 拦截query参数里带斜杠的请求
    if ($args ~* "/") {
        return 403;
    }

    # 更精准匹配日志里的恶意参数模式
    if ($args ~* "^[a-z]+-\d+\/|^[a-z]+\/\d+\/") {
        return 403;
    }
}

改完配置后记得先跑sudo nginx -t检查有没有语法错误,没问题再执行sudo systemctl reload nginx让配置生效。

  1. 修复软404问题:WordPress默认没匹配到页面时会跳首页返回200,这会让搜索引擎误以为这些垃圾URL是有效页面。咱们在主题的functions.php里加一段代码,让带恶意参数的请求正确返回404:
add_action('template_redirect', function() {
    foreach ($_GET as $key => $value) {
        // 检查参数里是否有斜杠,或者匹配日志里的恶意参数格式
        if (strpos($value, '/') !== false || preg_match('/^[a-z]+-\d+|^[a-z]+\/\d+/', $key . $value)) {
            status_header(404);
            get_template_part(404);
            exit;
        }
    }
});

二、处理已经被谷歌收录的垃圾URL

这些垃圾URL已经被收录,得明确告诉搜索引擎它们是无效的:

  • 用Google Search Console提交删除请求:登录你的站点控制台,找到「移除」工具,把这些垃圾URL批量提交删除,最快几天内就能从搜索结果里消失。
  • 返回410状态码强化信号:比404更明确的是返回410(资源永久移除),可以在Nginx里加规则:
# 批量匹配这类垃圾URL返回410
location ~* \?[a-z]+-\d+\/|\/\?[a-z]+\/\d+\/ {
    return 410;
}
  • 更新站点地图:用SEO插件(比如Yoast、Rank Math)生成只包含有效页面的站点地图,提交给Google Search Console,引导搜索引擎重新抓取你的正常内容。

三、加固站点,防止再次出问题

  • 尽快升级WordPress版本:你用的5.2.2是很老的版本了,赶紧更到最新稳定版,修复已知的安全漏洞。
  • 锁死xmlrpc.php:既然疑似xmlrpc攻击,直接在Nginx里禁用它:
location = /xmlrpc.php {
    deny all;
    return 403;
}

要是你用Jetpack这类依赖xmlrpc的插件,就改成只允许Jetpack的官方IP访问。

  • 保持安全插件活跃:Wordfence要一直开着,定期更新规则,开启实时扫描,给所有用户设置强密码,启用两步验证。
  • 定期检查访问日志:每周抽点时间看看Nginx访问日志,发现新的恶意请求模式就及时添加拦截规则。

这样一套操作下来,既能拦住新的恶意请求,修复软404的SEO问题,又能清理已收录的垃圾URL,还能把站点的安全等级提上去。

内容的提问来源于stack exchange,提问作者chandesh .S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:21:21