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

WordPress网站遭恶意克隆,如何阻止克隆爬虫访问?

阻止恶意克隆爬虫的解决方案

这种恶意克隆的情况我碰过好多次,尤其是用curl或file_get_contents()这类工具实时抓取站点内容的场景。结合你描述的「克隆站同步更新、关闭自身服务器后克隆站失效」的特征,给你几个针对性的解决方法,按优先级排序:

1. 基于User-Agent的拦截(最快见效)

恶意抓取工具的User-Agent通常带有特征关键词,或者干脆是空的。你可以通过两种方式拦截这类请求:

方法一:修改.htaccess文件

在网站根目录的.htaccess中添加以下规则,拦截空UA和常见恶意抓取工具的请求,同时放行合法搜索引擎爬虫:

RewriteEngine On
# 拦截空UA或包含恶意关键词的请求
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} (curl|wget|file_get_contents|python|scrapy) [NC]
# 放行谷歌、必应、雅虎的合法爬虫
RewriteCond %{HTTP_USER_AGENT} !(Googlebot|Bingbot|Yahoo! Slurp) [NC]
# 返回403禁止访问
RewriteRule ^ - [F,L]

方法二:在主题functions.php中添加代码

如果不想修改.htaccess,可以在当前主题的functions.php末尾加入以下PHP代码:

add_action('init', 'block_malicious_scrapers');
function block_malicious_scrapers() {
    // 定义要拦截的恶意UA关键词
    $blocked_agents = array('curl', 'wget', 'file_get_contents', 'python', 'scrapy');
    $user_agent = strtolower($_SERVER['HTTP_USER_AGENT'] ?? '');
    
    // 检查UA是否符合拦截规则
    if (empty($user_agent) || preg_match('/(' . implode('|', $blocked_agents) . ')/', $user_agent)) {
        // 放行合法搜索引擎爬虫
        $allowed_agents = array('googlebot', 'bingbot', 'yahoo! slurp');
        foreach ($allowed_agents as $allowed) {
            if (strpos($user_agent, $allowed) !== false) {
                return;
            }
        }
        // 返回403禁止访问
        wp_die('Access Denied', 'Forbidden', array('response' => 403));
    }
}

2. 拉黑恶意IP(精准打击)

查看你的服务器访问日志(通常在/var/log/apache2/或/var/log/nginx/目录下),找到频繁访问的可疑IP,直接在.htaccess中拉黑:

deny from 123.45.67.89
deny from 192.168.0.0/24 # 拉黑整个IP段

如果嫌手动麻烦,可以用WordPress插件比如Wordfence Security来自动识别和拉黑异常IP。

3. 启用专业防爬插件(长期防护)

安装并配置专业的安全插件,这类插件能实时监控访问行为,自动拦截恶意抓取:

  • Wordfence Security:自带爬虫检测、IP黑名单、访问频率限制功能,还能扫描网站漏洞。
  • iThemes Security:提供类似的防爬和安全防护,操作更简洁。

4. 动态内容混淆(进阶防御)

恶意抓取工具通常不会执行JavaScript,你可以将部分核心内容通过JS动态加载,让克隆站无法获取完整内容。比如在主题模板中加入:

<div class="dynamic-post-content">
    <script>
        // 动态加载文章内容
        document.write('<p><?php echo esc_js(get_the_content()); ?></p>');
    </script>
</div>

这个方法会增加克隆站的抓取难度,但不会影响正常用户访问。

5. 移除谷歌搜索中的克隆站

既然克隆站已被谷歌收录,你需要提交DMCA下架请求:

  1. 登录谷歌搜索控制台,找到「移除内容」选项。
  2. 提交克隆站的URL,并提供你的原创网站证明(比如域名注册信息、网站内容版权证明)。
  3. 谷歌通常会在几个工作日内处理,将克隆站从搜索结果中移除。

最后提醒

  • 定期检查服务器访问日志,及时更新拦截规则;
  • 保持WordPress核心、主题和插件为最新版本,避免被利用漏洞;
  • 如果以上方法都无效,可以考虑启用CDN的防爬功能,进一步过滤恶意请求。

内容的提问来源于stack exchange,提问作者volkan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 14:57:50