惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
罗磊的独立博客
M
MIT News - Artificial intelligence
G
Google Developers Blog
V
V2EX
D
Docker
博客园_首页
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
WordPress大学
WordPress大学
T
Tailwind CSS Blog
博客园 - 司徒正美
J
Java Code Geeks
L
LangChain Blog
博客园 - 三生石上(FineUI控件)
B
Blog RSS Feed
博客园 - 【当耐特】
小众软件
小众软件
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - Franky

枫林灯语

无用命途:自制三天王 - 枫林灯语 小论博客的更新速度 - 枫林灯语 和校园网斗智斗勇的日子(第九辑) - 枫林灯语 开学前,文具店小景 - 枫林灯语 生活碎碎念:升学首日有感 - 枫林灯语 中元节随笔 - 枫林灯语 业余频段的对讲机,不能再商业应用了 - 枫林灯语 无用命途:动态海景灯,用电脑说脏话 - 枫林灯语 冷知识:博客的评论区不是广告区 - 枫林灯语 今日站点异常流量的分析 - 枫林灯语 MURS:少见的 VHF 对讲机 - 枫林灯语 生活碎碎念:立秋,立马就『秋』? - 枫林灯语 我为小说忙:(五)插件的上线工作 - 枫林灯语 无用命途:博客深潜者 - 枫林灯语 台风来临,如何准备好应急通信对讲机 - 枫林灯语 我为小说忙:(四)插件(写入部分) - 枫林灯语 无用命途:布谷鸟叫(可选屏蔽) - 枫林灯语 我为小说忙:(三)插件(读取部分) - 枫林灯语 我为小说忙:(二)插件的几个前端页面 - 枫林灯语 无用命途:只有 32v 的家用电? - 枫林灯语 好像...是放暑假了吧? - 枫林灯语 我为小说忙:(一)TPNovel 的规划 - 枫林灯语 无用命途:酒精,酒精膏? - 枫林灯语 JustWrite:只要写,就行了 - 枫林灯语 每日牢骚:便宜宾馆历险记 - 枫林灯语 生活碎碎念:镜花水月里的 Cosplay(续) - 枫林灯语 博客装修记:专题页导航 - 枫林灯语 Typecho 内置的反垃圾评论功能,尚能饭否? - 枫林灯语 分析 Nginx 访问日志,在里面挖点宝 - 枫林灯语 生活碎碎念:镜花水月里的 Cosplay - 枫林灯语
当苍蝇尝试在蛋上钻缝:又谈站点垃圾广告 - 枫林灯语
墨枫梧桐 · 2026-09-18 · via 枫林灯语

当苍蝇尝试在蛋上钻缝:又谈站点垃圾广告

分类:浴中奇思 字数:7291 阅读:0

又休息了一段时间之后,回来更一篇吧。虽然还没完全适应过来,尤其是精力不足的问题多少还是有点,但日子总得过下去,因此只能想办法继续调整了。

这篇博文,算是翻出来点冷饭,掺点新鲜饭,炒一炒。之前已经有两篇文章(这个,以及这一篇)讲过垃圾广告相关问题,但主要还是集中在通过垃圾评论打广告上。然而,在平时运行时检查站点发现,能注入广告的地方其实并不止评论区,还有一些你可能从来没想过的地方。

来自Umami统计的Referer,可以先猜猜这三个都是什么来自Umami统计的Referer,可以先猜猜这三个都是什么

1. 前言

『开设一个个人博客』似乎是很多计科学生都想做的事情,甚至也有一部分教程会建议你尝试一下。然而,开设一个站点和『维护一个站点』却是截然不同的两件事情,如果说前者是技术问题的话,后者其实多多少少涉及到社会工程学的问题了。

为什么这么说?其实很简单,一个公开在互联网上的站点,访客是可以访问到的,但访客也有好坏之分。好访客,过来读读文章,看看评论,和站长交流一下哲♂学问题,甚至过来晒个卡,都是正常的,但对于另一部分访客来说,这些在互联网上的站点,似乎只是一种搞黑灰产(例如上面提到的,投放垃圾广告)的好地点罢了。运营一个站点,除了和技术打交道之外,还得和这些不怀好意的访客打交道。

本文其实并没有什么太新鲜的道理,也只是把运营过程中碰到的一些东西展示出来给大家看,让各位看个乐罢了。当然,本文也会说清楚这些灰色手段背后到底是什么情况,所以虽然可能有点教唆鼓动之嫌,但应该可以通过后面的一些辨别手段来反制回来吧。

另外多说一句,本站已经通过了Google Adsense的审核,目前已经安装了第一批广告位。关于此类相对来说不算太垃圾的广告,已经在本站广告政策中有详细的说明,欢迎您前往阅读,了解。

2. 找缝的苍蝇

俗话说,苍蝇不叮无缝的蛋,而这些搞灰产的苍蝇,又似乎个个都自带电钻。

从站长的角度看,我们处于弱势方,因为你不知道恶意访客可能会有什么新手段。

2.1 广告评论

我们的老朋友,垃圾评论,在之前的文章里已经有所提及,所以这里只记录发现的新情况。

注意看发送评论的时间注意看发送评论的时间

垃圾评论的发送者,逐渐出现了定时发送的情况。以前常见的都是一次性发送,一两次,就消停了,但现在已经有两个『广告商』成为了博客的常驻用户,每个月雷打不动地发送一次他们的广告信息,也不管有没有人看,会不会被删。

从技术上来说,这种定时发送的脚本并不难实现,尤其是现在AI加持下(上次的文章讲的就是有人让AI Agent来编写此类脚本,AI(LLM)并未拒绝此类请求),要写一个脚本简直易如反掌。目前只有两个人在发,但如果是二十个,二百个呢?脚本是很容易复制和修改的,运行起来也是几乎零成本的,即使每月只推广一次,基数大了之后依然会对站长(和其他访客)形成非常明显的骚扰。另外,假如攻击者愿意的话,还可以进行垃圾评论轰炸,很多站长都遇到过类似的情况,同一个(或者不同的)垃圾评论发送者一天就能往站内投放上百条垃圾评论,站长删都删不过来。

对付此类垃圾评论,目前还没有一个万能的方案,只能说多角度入手,比如限制IP发送频率(至少能挡掉一部分没有代理IP池的),通过插件来判别关键词(或者是Akismet这样的,通过云端来判别),然后扔到垃圾/待审核队列,等等。具体的办法已经在前文讲过,这里不再赘述。

这里提一个经验之谈:如果有可能的话,想办法让任何评论动作都及时通知到站长,不论是邮件,还是QQ机器人,还是像笔者这样使用ntfy.sh推送,甚至定期手动检查都好,尽量及时知道站上有什么新动作。毕竟,垃圾评论防护的一个重要点就是,尽可能减少垃圾评论存在的时间,所以如果对站点有一个(近)实时的监控,其实也是非常好的。

2.2 垃圾邮件

如果想要联系上一个个人博客的站长,一般情况下,最快的方式就是发送电子邮件(除非你和站长比较熟,那么还可以通过IM软件来联系,但对于陌生人来说,确实如此),所以很多博客都会在关于页/联系页等地方放上站长自己的邮箱。

然而,正如你想象的这样,这些留下来的联系方式,很多情况下就是垃圾广告投放的一个重要渠道。关于垃圾邮件到底有多猖狂,早年间的互联网用户应该都有所耳闻:脚本大批量抓取网页,用正则表达式匹配邮件地址,形成发信列表,批量发SPAM。也正因为如此,很多互联网应用都多多少少对此有一定的预防措施,例如本站在使用的Cloudflare,他就会默认开启一个电邮地址混淆的功能,直接抓取HTML是看不到任何邮件地址的,只有页面加载后浏览器执行了js,才能对地址进行解混淆。即使是没有此类技术,互联网用户也会对此有所提防,最典型的就是,把自己的电邮地址写成xxx#example.com,然后后面补一句『把井号换成@符号』。

前两个月的时候,笔者的域名邮箱(开了CF Email Routing,实际上会转发到主邮箱,然后推送到浏览器)收到了这么一封信:

邮箱收到的知乎入驻邀请函,他们似乎不知道我有知乎账号邮箱收到的知乎入驻邀请函,他们似乎不知道我有知乎账号

看聚合站内其他站长发文,这不是孤例,而且知乎官方人员也提到,这是自动寻找博客上的联系方式并发出的。出现这个情况,至少能证明三点:

  1. 这是广泛发送给不特定人群的邮件
  2. 自动抓取的邮件地址
  3. 是一份营销邮件

因此,笔者会将其归类为垃圾邮件。

举上面的邮件的例子,主要是想说明,现在是2026年,是LLM的年代,且不论CF的混淆算法已经算得上是明文了,随随便便就能让AI去逆向一下这个库,即使我们假设这个混淆算法真的这么坚不可摧,AI也完全可以通过调用无头浏览器,或者说是抓取页面上没被混淆算法照顾到的其他地方的电邮地址(例如上面把@换成井号的),给还原成正式的电邮地址。

尤其是后者,这种脏文本清洗的活,并不需要太高级的LLM,简单的小模型都可以识别出来。笔者的电脑安装的是RTX4060,有本地的Qwen3.5-0.8B小模型,正好拿来测试。结果就是这套中等水平的显卡+最小号的LLM,对于『电邮地址还原』来说,不仅识别相对准确(不绝对,但够用),而且速度非常快(155t/s),完全可以拿去对接别的工作流程:

三个测试样例全部通过三个测试样例全部通过

至于你问我这种玩意的解决方法......老实说,我也没有找到太好的方法。垃圾邮件过滤一直是一个老大难问题,比如说各大邮箱服务的垃圾邮件过滤器,不是说没法过滤,而是说很容易产生误报,我这边已经试过几次把完全正常的邮件给扔到垃圾箱的情况了,因此只能强制指定『所有邮件都不进垃圾箱』,让我自己去看,这也是没办法的办法。

2.3 『嵌入式』广告

如果说上面还算是相对较为常规的广告投送方式,下面就要讲一些很不常规的了。

作为一个站长,最关心的是什么?大概率是站点最近的访客情况,流量获取情况,等等,因此很多站长都会在站点上安装统计程序,或者用Google Analytics之类地第三方工具,来检查站点的运行情况。一般而言,这种统计平台都会记录URL参数、Referer这两个参数,有的还会记录User-Agent,目的当然是为了统计用户看了什么网页,从哪里来的,用的什么设备。

然而,部分读者可能已经注意到了,这三个参数是可以伪造的,客户端写什么,统计服务就会记录什么。于是,有垃圾广告发送者就开始打这三个参数的主意,开始把自己的推广内容塞进去这三个字段里,那么当站长查看日志的时候,自然也就会注意到广告的内容。

这方面的例子,除了引言里的图片(那个是伪造Referer)之外,还有以下从本站生产环境dump下来的真实案例:

Referer注入,某矩阵推广,下面会提Referer注入,某矩阵推广,下面会提URL参数注入,某色情图片网站URL参数注入,某色情图片网站User-Agent注入,某基于AI的网安服务User-Agent注入,某基于AI的网安服务

这些边边角角的地方,虽然曝光度不是很足,但考虑到能看到这种地方的一般都是站长/技术人员,因此反而形成了定向推广的效应,能精准推送给可能有需要的人。又或者说,站长好奇这些链接是什么,为什么会链接到自己的站点(当然,实际上大概率没有,不妨猜猜为什么有这个结论),所以点进去看了,于是又能吸引一次曝光。

3. 蛋里有什么?

上面提到的第一种和第二种广告,较为通用,因此没有太多好说的,基本上都是常见的灰黑产,传统的有网上菠菜平台,某些药物(减肥药之类的),现在新鲜的有机场,AI中转站,以及『免费算命』。然而对于第三种来说,就颇为有趣。笔者会把(不是全部,也是相当大一部分的)通过第三种渠道投放的广告,称为『专门广告』,意思是,针对特定一类人群投放的高相关度垂直领域广告。本例中,这个特定人群就是站长/技术员/数据分析师。

3.1 矩阵广告

我们先来稍微离个题。

上面提到,某次站点被Referer注入,就是一个矩阵推广,其在Referer中的链接形如:

# 星号代表一个字符
https://m.baidu.com/s?word=www.****.cn
https://m.baidu.com/s?word=www.***.cn
https://m.baidu.com/s?word=****.cn

百度,这个暂时不管他,我们来看后面的那个搜索词。很显然,这个搜索词是某个域名,如果我们打开这个域名,就可以看到一个长得非常粗糙的推广网页:

很好奇鱼苗场的老板在想什么很好奇鱼苗场的老板在想什么

正常情况下,如果收到了来自外站的Referer,一般是代表有人通过那个站点上列出来的链接来到了你的网站。然而,查看这些推广网页源代码可以发现,网页都是简单的HTML内容,一眼能看到底,没有什么神奇的代码,也没有混淆,当然也根本找不到你站点的信息。很显然,这个Referer头是伪造的,唯一目的就是让好奇的站长点进去看,这就达到了他的推广目的。

页面内容比较有趣的点是,上面有『关于我们』页面,但发出请求后,后台的Nginx实际上会发出302,跳转到上面列出来的百度搜索词链接。这么做的具体意图,会在3.2节继续分析。

顺带着分析了一下,这类站点都是批量收购人家已经过期且未续费的域名(一个明显的证据是,某域名是car+年份,明显和汽车有关,但打开也是鱼苗场广告),通过海外的VPS/虚拟主机开起来(因为不用备案,可以一口气开几十上百个),放上宣传信息,就可以坐等流量上门了。而且因为只是单文件HTML,顶多带一两张图片,也就几MB大小,对服务器的性能需求几乎没有,所以背后的操纵者可以肆无忌惮地开站。

这种简陋的页面,笔者有个猜想:不完全是给人看的,是给机器看的,这里的机器包括搜索引擎以及LLM。因为这些网站上留下的信息就只有鱼苗厂老板的电话,没有指向鱼苗场网站的链接,笔者并不认为这是某种添加外链的服务。相反,有一个相关的名词叫做GEO(生成式模型优化),大概的意思是说,通过某种方式,提高某个目标客户的产品,在生成式AI的联网搜索结果中的排名。考虑到现在有相当一部分人已经把豆包当做日用搜索引擎(至少从笔者的身边统计学来看,有这个趋势),出现这种GEO的行为,只能说是必然了。

此处借用一下群友收到的推广此处借用一下群友收到的推广

这种GEO推广,使用比较多的客户,大概率是长期做线下生意的,因为他们本来就没什么太好的线上推广渠道,现在有了AI,正好可以让GEO提供商在AI软件上推广,上面那个鱼苗场就很符合这个特征。笔者猜测,其运作方式大概率是:运行某流量网络的商家过来问,想不想让用户第一时间看到你的鱼苗场?客户购买推广流量服务后,商家就建立大量写有鱼苗场联系方式的页面,然后通过各种运作,试图使其能被搜索引擎收录,然后就可以被某AI所搜索到。当用户在AI上询问『广东去哪里买鱼苗』的时候,AI就能将其展示出来。

当然,一个『成熟的』推广流量提供商,并不是单渠道进行的,一张推广流量网络,可能除了做GEO,还做普通的SEO,也做外链。这就正好提到了下面要讲的内容,也是笔者在站点日志里面找到的另外一类广告商:PBN网络。

3.2 PBN

上面提到,能看到这种推广信息的人,一般来说都是站长,或者某个和站点数据有一定关联的人。比如说站长吧,作为站长,当然是希望自己的站点被更多人知道,有更多的人来看,这样不论是知名度也好,站点广告的带来的收益也好,也是有所提升的。又因为站点流量有很大一部分来自于搜索引擎(尤其是对于新站),所以SEO优化就成了兵家必争之地。

搜索引擎,我们可以把他看做是基于信任的系统。假如某个权威网站引用了你的网站上的链接,从直觉来看,这就相当于是这个权威网站认可了你的内容,所以在搜索引擎看了,你的网站的权重就会提升,也就会被搜索引擎放在更前面的位置。做过SEO的朋友应该知道我在说什么,对,这个就是所谓的外链。

有很多想做海外生意的商家,或多或少都听说过,甚至购买过外链服务,意思就是,你付钱并提供站点地址后,流量商就会在他的推广流量网络(就是统一控制的一群网站)里发布你的网站链接(早年间是直接堆砌链接,做成链接农场,后来就没这么直白了,通常是撰写虚假的博客文章,在文章里面插入被推广的网站),营造一种你的网站被很多人认可的错觉。由于这种行为其实已经被搜索引擎认定为是作弊,所以很多情况下,流量商家都是偷偷在干,不让人发现这些网站之间有关联,尽量降低流量网络内的发布站点,甚至是被推广的网站,被一锅端的可能性。结合以上特性,他们就有了一个专门的称呼:PBN(Private Blog Network,私有博客网络)

某PBN服务商的宣传页面某PBN服务商的宣传页面

一方面是渴望流量的站长,经常看Referer想知道有没有人链接过来;另一方面是售卖此类流量推广服务的商家,知道怎么做推广,两者一结合,啊~ PPAP 就有了插入到Referer里的推广信息,完完全全的就是定向推广了。

PBN网络的一种变体,笔者管他叫PBN-SERP网络。它和PBN最大的区别,就是那些虚假博客文章里面并不直接指向目标站点,而是指向该站点关键词的SERP,也就是搜索引擎的搜索结果展示页(Search Engine Results Page)。这样当真实的人类读者访问,或者爬虫爬到的时候,就会产生一次对搜索引擎的请求。在搜索引擎看来,就好像是有大量的搜索流量指向了被推广的站点的关键词,于是认为这个关键词很重要很热门,就提高了权重。上面鱼苗场的『关于本站』有不小概率就是作为此用,让想查看一下这鱼苗场到底是何方神圣的用户,点进去了搜索引擎页,于是也就提高了这个广告页的权重。

4. 写在最后

目前碰到的情况也就是这些,暂时没有其他类型的广告进入。

当然,站点在线的时候,笔者肯定会密切关注的,所以建议不要往本站发垃圾评论广告评论了,看到就删的。

(完)