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

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
Jina AI
Jina AI
C
Check Point Blog
V
V2EX
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
A
About on SuperTechFans
D
DataBreaches.Net
腾讯CDC
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
IT之家
IT之家
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
云风的 BLOG
云风的 BLOG
MongoDB | Blog
MongoDB | Blog
J
Java Code Geeks
博客园_首页
T
Tailwind CSS Blog
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

他说

只因一次笔误:一次笔误让我误以为他是女生,好感竟成了困局 表哥家在装修:Win10 金彩色系统,搭配 Minecraft 光线追踪 服务器的长途跋涉:我的世界服务器探索,飞到世界尽头建领地 一场作弊的高考:高考前重返学校,发现同学都在作弊改答案 后来如何了:辍学以后天天在家打游戏,母亲在超市笑着失落 那个外星女友的故事:我在平流层遇险,外星女友却失联两个月 论网恋的危害性:网恋女友身亡又复活,变声骗走老哥巨额钱财 知乎邀请函后续:面对知乎批量邀请,独立博客作者如何选择 被知乎的运营邀请:收到知乎官方邀请,我却选择坚守独立博客 博客宇宙后续:AI 把博客标题解析成两个域名,凌晨修复友链 貌似网站名字错了:博客宇宙友链出错,生造域名站名不显示 还有翻案环节:Dash to Dock 翻译之争,到看开源社区草台班子 吃药缓解一点了:感冒自己买药扛过来,想起当年学校中考跑步 如果有公共功能就好了:想约人打游戏很尴尬,应该有公告功能 暑假娱乐好无聊:信息茧房塌了,博客圈也全是 SEO 垃圾文 有时候运气真够透的:被抖音信息茧房反噬,过时技术推荐真烦 那篇文章的评论者:投影钟博文未发布,陌生访客已摸进局域网 大家要注意身体啊:楼下雪糕让我身体掏空,夏季食品安全需警惕 服务器开荒第三期:我的世界服务器遭遇强盗,黑暗森林生存法则 我和好朋友讨论龙骑:梦回校园重温特摄友情,却终究只是一场梦 记参加文字园活动:一篇有瑕疵的 Git 文章,入选文字园让我心虚 再审视 Windows 设计:从 Win11 的广告沼泽,逃向 UNIX 的清净世界 张雪和张雪峰的一字之差:张雪峰去世背后,就业选择与教育反思 被 A 社吓哭了:Claude Code 隐私检测,让我果断卸载并回归开源 服务器开荒第二期:给邻居送告示牌,扩建地下室发现蜘蛛刷怪笼 朋友邀请我玩服务器:我的世界服务器开荒,冰原遇险草原中安家 微信账单同步日历:使用 Python 脚本将支付记录导出到苹果日历 楼上装修真是烦死了:被楼上装修噪音追着跑,躲进音乐也逃不掉 为什么我喜欢巴巴爸爸:从漫画到动画,粉色棉花糖的奇遇记 他遇到的伤心事:诚哥的时空穿越奇遇,秘密与校园午后秘密誓言
Cloudflare 邮箱混淆,导致 PJAX 网站邮箱显示异常解决方法
梁栋烨 · 2026-05-23 · via 他说

凌晨的时候,我偶然发现网站前台显示的邮箱地址全部变成了 [email protected] 这一串固定字符,起初还以为是被恶意篡改了。后来询问 AI 才恍然大悟,原来是 Cloudflare 的一项内置安全功能在起作用:它会自动将 HTML 代码中的所有明文邮箱地址替换成这一统一格式,目的是防止爬虫抓取到真实的邮箱信息,从而减少垃圾邮件的侵扰。虽然出发点是好的,但对网站运营者来说,如果不了解这一机制,容易误以为出了技术故障。

Cloudflare 是一家全球知名的域名托管和 CDN 加速服务商,同时也直接售卖域名。任何托管在其平台上的域名,都会天然受到多层防护:一方面可以抵御常见的 DDoS 攻击和流量洪水,另一方面在注册域名时会提供隐私保护,避免个人信息被公开。此外,网站上的静态资源如图片、样式表和脚本会被自动缓存到遍布全球的 CDN 节点上,访客从就近节点获取数据,访问速度显著提升。

其邮箱替换功能的实现原理非常底层:在数据包传输层面,Cloudflare 会直接修改返回给浏览器的 HTML 源码,将 mailto: 或文本中出现的真实邮箱字符串全部替换为 [email protected] 占位符。同时,它还会在每个页面中自动注入一个加密的 JavaScript 脚本。当页面正常加载时,这段脚本会检测环境是否安全(例如是否由真实用户通过浏览器访问),如果验证通过,就会动态地把占位符还原成真实邮箱地址。

为什么说这个机制坑惨了我?因为我的网站采用了 PJAX 技术来实现局部刷新,主要目的是让页面上方的音乐播放器可以在切换页面时保持播放不中断。PJAX 的典型缺点就是:页面切换时,默认不会重新执行新加载的 HTML 中所包含的 <script> 标签。除非这些脚本代码在 PJAX 流程中被明确绑定回调,或者原本就存在于父框架页面上,否则它们永远不会运行。

Cloudflare 注入的那个邮箱还原脚本,恰好就是通过 <script> 标签嵌入的。如果访客通过 PJAX 切换页面,这个脚本根本不会执行,于是所有邮箱就永远是 [email protected]。更麻烦的是,我的绝大多数访客来自国内,他们几乎无法看到任何有效的联系方式。这样一来,访客会觉得我故意隐藏邮箱、不配合沟通,反而显得像个小人,实在让我在用户面前出了大丑。

其实关掉这个功能非常简单。Cloudflare 官方有详细的文档说明,我找到的地址是:这一篇。只需打开浏览器自带的中文翻译按钮,按照步骤操作:进入 Cloudflare 仪表盘 → 选择对应域名 → 点击“安全性” → 找到“设置” → 关闭“电子邮箱地址混淆”开关即可。整个流程不涉及代码修改,对普通用户也很友好。

我是凌晨尝试关闭这个功能的,结果在操作过程中,Cloudflare 的 API 始终返回 504 错误。504 代表网关超时,这说明当时 Cloudflare 官方可能正在对 API 服务进行后台维护或升级,导致无法通过面板同步修改配置。反复尝试无果后,我只能暂时放下这件事。直到星期六早上起床后,我再次登录后台,发现 API 已经恢复正常,于是立刻进入设置页面成功关闭了邮箱混淆功能,整个网站的联系方式终于恢复正常。