研究者揭露一个自动化SEO攻击网络在Google搜索注入恶意内容,利用政府/企业网站技术缺陷。涉及scraper网络、URL注入、Google排名操纵。
如果你经常监控服务器日志或浏览权威网站,可能最近在浏览器地址栏中发现了一种奇怪的趋势。
无论你是在查看 Anthropic 的经济报告、访问美国环保署(EPA)官网,还是浏览印度政府的 Sanchar Saathi 门户,你都可能碰到长得像这样的 URL:

乍一看,就像某个开发者不小心把玩笑代码推到了生产环境。但更深层的技术调查揭示了一场精密协调的自动化 SEO 攻击。有个不怀好意的开发者构建了一个庞大的爬虫网络来抗议 AI 生成代码的兴起,他们利用技术 SEO 漏洞,将自己的宣言直接刻入全球 Google 搜索结果中。
下面是这个爬虫网络如何运作的详细分析、为什么主要政府和企业网站成为了受害者,以及开发者需要采取的具体步骤来保护自己的域名。
要理解这场攻击,首先要了解动机。"vibe coding"是一个最近大火的俚语术语,指的是完全通过向 AI agent 输入自然语言 prompt 来构建软件,而不手动编写或验证底层逻辑的做法。
许多传统的软件工程师强烈反对这种转变,他们认为这会导致脆弱、不安全且难以维护的系统。
一位工程师决定采取激进的行动。通过追踪这些奇怪 URL 的反向链接配置文件,调查人员发现了锚定整个操作的中央根域:https://vibecodingisbullshit.com/
在这个网站的文本下方,是创建者称之为"企业合作伙伴网络"的目录。这位开发者注册了大量域名(通过 Cloudflare 隐私保护屏蔽),充当协调的联合发行引擎。生成垃圾信息的核心网络包括:
https://vibecodingisbullshit.ai/
这不是一次服务器黑客攻击。开发者没有入侵 Anthropic 或英国政府的数据库。相反,他们在利用搜索引擎爬取网站的方式。
这个网络运作的是经典的内容聚合模型,被武器化以造成最大 SEO 混乱:
爬取:自动化爬虫持续爬取权威目标——政府机构、AI 公司和新闻门户。
联合发行:爬虫抓取文章的标题和前几段,发布到网络中的某个 .ai 或 .sucks 垃圾域名上。
陷阱:为了避免触发自动版权投诉,爬虫添加了一个"阅读全文"按钮,链接回原始源。
有效载荷:每条出站链接都被硬编码了抗议参数,比如 utm_source=vibecodingsucks。
爬虫脚本还留下了一个明显的编程痕迹。如果你看 article_id=446943146.0 这个参数,你会注意到末尾的 .0。在 Python 数据爬取工作流中(特别是使用 Pandas 库时),如果数据结构没有严格类型化,整数数据库 ID 经常会转换成十进制浮点数。
你不必相信我的分析。你可以通过使用 Google 高级搜索操作符(通常称为 Google Dorking)在实时目标上验证这场攻击的规模。
通过使用 inurl: 操作符,你可以绕过普通文本搜索,强制 Google 显示它意外索引的每一个包含此流氓有效载荷的 URL。
要查看网络的全球足迹,把这个确切的字符串复制粘贴到 Google:
inurl:vibecodingisbullshit OR inurl:vibecodingsucks OR inurl:vibecodingsucksdev
当你运行这些操作符时,结果触目惊心。你会绕过实际的文章内容,暴露出组织留下的原始的、填满参数的足迹——这些组织缺少 canonical 标签。
当爬虫网络发布这些文章时,Googlebot 爬取 .ai 垃圾网站,点击出站链接,并到达携带 utm_source=vibecodingsucks 有效载荷的官方网站。
理想情况下,Google 应该能识别出 UTM 参数只是追踪噪声,只索引干净的 URL。但这完全依赖于目标网站有适当的技术 SEO 配置——特别是 canonical 标签。
canonical 标签告诉搜索引擎到底应该索引哪个版本的 URL,明确命令它们忽略任意的追踪参数。
政府网站(.gov、.gov.in、.gov.uk)、庞大的学术门户和遗留企业 CMS 构建众所周知存在巨大的技术债。其中许多完全缺少 canonical 标签。当 Googlebot 访问这些页面时,它假设参数填满的 URL 是一个独特的、有效的文档。因为爬虫网络每天生成数千条这样的链接,Google 赋予它们权重并将其索引,把这些玩笑 URL 推送进公共搜索结果。
如果你的分析仪表板或 Google Search Console 突然被这些参数淹没,你的网站 SEO 架构已遭破坏。以下是修复的具体步骤。
这是唯一的永久解决方案。确保应用中的每一页都在 <head> 文档中输出绝对的、自引用的 canonical 标签。
<link rel="canonical" href="https://www.yourdomain.com/clean-path" />
部署后,Google 会在接下来的几个爬取周期中自动整合链接权重,并从索引中删除垃圾参数。
许多开发者本能地在 robots.txt 文件中添加 Disallow: /*?utm_。这是个致命错误。如果你阻止 Google 爬取 UTM 链接,它就无法读取你的新 canonical 标签。结果是,Google 可能会保留搜索索引中标记为"已索引,但被 robots.txt 阻止"的垃圾链接。
进入 Google Search Console 的否认工具,上传一个文本文件来拒绝根域。这告诉 Google 的算法要断绝与爬虫网络的任何关联:
domain:vibecodingisbullshit.ai
domain:vibecodingsucks.ai
domain:vibecoding.sucks
domain:vibecodingsucks.dev
为了防止真实用户看到下流的参数并在社交媒体上意外分享,在分析脚本触发后,使用 JavaScript History API 立即清除 UTM:
if (window.location.search.includes('utm_source=vibecoding')) {
const cleanUrl = window.location.protocol + "//" + window.location.host + window.location.pathname;
window.history.replaceState({}, document.title, cleanUrl);
}
检查服务器日志,隔离以超人类速度访问你网站的 IP 地址或 User-Agent 字符串。在防火墙级别阻止它们,或使用 Web 应用程序防火墙(WAF)来质证激进的自动化流量。
这场抗议的讽刺之处难以忽视。一个抗议自动化、不受检查的软件危害的开发者,已经释放了一个自动化、不受检查的爬虫网络,它正在主动污染互联网。
无论你对 AI 辅助编码持什么立场,这一事件对网站管理员来说都是一个巨大的警钟。如果你的 canonical 基础设施没有滴水不漏,任何拥有域名和一个 Python 脚本的人都可以改写你的组织在搜索结果中的形象。
为了进一步的行动,你可以考虑屏蔽此人和/或举报滥用。