一种隐藏邮箱地址的新思路

怎么防止爬虫抓取你在博客上的邮箱地址?不同的人有不同的方法。有时,我们会在网上看到“xxx[at]xxx.com”的写法,然而这显然不geek。那么请看这个新方法的两个例子:

示例1

邮箱:[轻触或点击此处]

示例2

邮箱:[移动鼠标到此]

此方法优势:

  • 没有@字符(即使在JavaScript中),不会被正则表达式匹配!
  • 比起不动声色完成字符串替换的 :after 法、JS倒序输出法,访问者会眼前一亮,逼格大大提高!(虽然有时会有反效果)
  • 实现原理简单!

欲知详情,请继续往下看。

原理

前面的例子核心代码如下:

1
2
3
4
5
6
<script type="text/javascript">
function show(x) {
x.innerHTML = window.atob("aUBvcmRvc3gudGVjaA==")
}
</script>
<p onmouseover="show(this)">[鼠标移动到此]</p>

这是通过一段JavaScript脚本实现的。在上面的例子中,我把 show 方法绑定到要显示文字的段落。当鼠标移动到上面时,它将会把加密过的邮箱地址解码,然后更改 <p> 的文字为邮箱地址,实现邮箱地址的隐藏。

应用

想把它应用到你的网站上?首先,将邮箱地址用Base64加密。网上有很多实用工具,一搜一大把,当然你也可以就在此处完成加密:



接着,复制最前面的JavaScript脚本,用加密的邮箱地址替换 window.atob() 中的字符串。最后,把 onmouseover 属性添加到想让邮箱显示的位置。当然,除了给出的例子之外,此方法也可以使用在图片等处。