近段时间,我的站点在最新评论,或文章中偶尔会出现 [emAIl protected] 的情况,导致评论内容或部分文章内容无法正常显示,当时还以为是不是 WordPress 自己的邮箱保护机制问题,所以就没有理会。问题具体表现如下:
查看元素后发现在内容前面加载了 [email protected] 相关信息和两个 JS,具体如下所示:
<a rel="nofollow" href="https://boke112.com/3868.html#comment-42144"> <span class="__cf_email__" data-cfemail="cc287553246274295771294a4929415629626e2950442968662968562973712a4e6c2a5a4b2b676c246265246274296856287676254f712a796224764d2b56482972">[email protected]</span> <script data-cfhash="f9e31" type="text/JavaScript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script> �, <span class="__cf_email__" data-cfemail="c0267261265c49284050257f43275c4b256e4c254568265647257071277b59265647276b60287474266047276d7e234042264851286f7b287f47286e7825645a255b">[email protected]</span> <script data-cfhash="f9e31" type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script> �外博客经营的文章,选取的有一定代表性。这篇文章看似轻松,其实是作者的奋斗史。如果你再看一遍最后一段,不知道你还会说这是鸡汤么? 至少,我没见过国内有这样的网站站长,能在一个领域坚持快十年,而且前赴后继尝试了四次。</a>
这个问题很多站点都出现过,我直接搜索这个 JS 代码,就出现 14.8 万条记录,有些站点打开时直接就显示这段 JS 代码,而不是显示正常的内容。
网上搜索“[email protected]”半天都找不到任何有用的解决办法,后来搜索整个 JS 代码才发现了一个有关的帖子(《网站被黑 各位大牛来看看这些恶意代码是在干啥?》),看了里面的评论内容才找到真正的原因,具体评论如下:
既然知道了原因,解决起来就好办了,登录百度云加速管理后台 >> 安全功能 >> WAF,我的站点果然开启了『邮件地址混淆』功能,其目的是“防止垃圾邮件机器人自动抓取电子邮箱地址”。
考虑到我的评论内容和文章内容出现邮箱地址的概率挺低的,所以我就直接关闭这个『邮件地址混淆』功能。
关闭了百度云加速的『邮件地址混淆』功能后,刷新本站本地缓存和百度云加速缓存后,问题果然解决了,评论内容里面的 [email protected] 也消失不见了,评论内容已经可以正常显示了。
小结
如果你的站点也偶尔会出现 [email protected] 情况,而且也是开启了百度云加速的话,不妨检查看看是否也开启了『邮件地址混淆』功能?如果是的话,关闭后即可解决此问题。如果是其他 CDN 的话,也自行检查看看是否开启了类似的功能。如果没有开启 CDN 的话,请检查所安装的插件是否有类似的功能。出现 [email protected] 情况的,无非就是 CDN 自带的功能,或所安装插件所起的作用,或所用主题自身保护邮箱地址功能,只要找到原因,解决起来还是很容易的。