为什么要把邮箱和电话号码"变形"隐藏起来

在公开页面上直接留下完整的邮箱地址,几乎等于向垃圾邮件机器人发出邀请。来看看联系方式"变形"为什么有效,以及它的局限性。

机器人靠固定模式在公开网页上抓取信息

自动抓取程序通常用正则表达式之类的方法,在网页文本中寻找符合邮箱或电话号码格式的内容并批量收集,这个过程完全不需要人为的恶意判断,只是大规模的模式匹配。

[at]、[dot]写法能绕开简单的模式匹配

把"[email protected]"写成"name [at] example [dot] com",可以破坏简单机器人所依赖的正则表达式规则,同时人类依然能一眼看懂原本的意思。

电话号码换成全角数字或大写数字也是类似原理

不直接使用标准的阿拉伯数字,而是换成全角数字或中文数字大写等写法,可以避开简单的电话号码格式匹配,同时对人类来说仍然可读。

用图片展示是更强但更不方便的做法

没有OCR能力的简单抓取程序无法读取图片里的文字,所以这种方式能挡住比文字变形更多的机器人,代价是无法直接复制粘贴,对屏幕阅读器等无障碍工具也不友好。

用JavaScript动态显示能挡住只读原始HTML的机器人

页面加载完成后再用JavaScript拼装并显示联系方式,能挡住只解析原始HTML的机器人,但对能够执行JavaScript的更高级抓取程序仍然可能失效。

这对任何公开发布信息的人都有意义

发布在论坛、博客评论区或商家信息页上的联系方式,通常在相对短的时间内就会被抓取程序收集走。这些被收集的联系方式往往会被转卖或汇总,用于垃圾电话、钓鱼短信和垃圾邮件名单,而"变形"处理是一种成本很低、却能有效减少此类自动化收集的第一道防线——不过它对专门想找到你信息的真人并没有用。

没有任何一种混淆手段是完美的

越来越多依赖机器学习或启发式规则的抓取程序,已经能够部分识破简单的字符替换手法。而且几乎任何增加机器人识别难度的方法,通常也会给正常的人类用户带来一定不便(比如没法直接复制粘贴、对屏幕阅读器用户不够友好)。更现实的做法是,把适度强度的混淆处理和实际监控、过滤漏网垃圾信息结合起来,而不是指望能百分之百拦截。

常见问题

把邮箱地址变形处理,能彻底杜绝垃圾邮件吗?

不能。这能大幅减少普通机器人的自动化收集,但挡不住真的想找到你信息的人,也挡不住专门针对常见混淆手法设计的机器人。这只是一种降低数量、增加门槛的手段,而不是绝对保证。

把联系方式变形处理有什么缺点吗?

有。因为不再是标准格式,就没法直接生成可点击的mailto:或tel:链接,也没法干净地复制粘贴;对屏幕阅读器等无障碍辅助工具来说也更难正确识别,所以这本质上是在防垃圾邮件效果和易用性之间做取舍。