很多人的 Blog 都被 Spam 机器人骚扰,有的甚至已经到了无法容忍的地步。这是一种不幸,同时也是一种荣幸。不幸的是那些无聊的 Spam 尽是发一些广告消息,而荣幸的是它给我们带来了流量。
很庆幸我的 Gracecode.com 的流量还不足够引起 Spam 机器人的重视。但是防患于未然,毕竟不是每个 Blog 都是喜欢垃圾评论的。下面根据我看到的、学到的结合我自己的经验在不影响用户体验的前提下说说防止 Spam 的“小窍门”。
别和我谈论如何美化验证码图片,因为我想网站访问者和我本人都不喜欢那些图片的。
Spam 其实是很傻的,傻到它似乎无法去辨认 Javascript 和 CSS。防止它们我们只要在 from 中加入一个空的 textarea 就可以了。然后运用 Javascript 和 CSS 将这个 textarea 设置为隐藏就可以了(现在主流的浏览器都支持 CSS 和 Javascript)。
然后我们在服务器端测试这个 textarea 是否有输入,如果有输入那么就十有八九是 Spam 机器人。因为普通“人类”访问并提交这个 from 的时候他是无法看见这个 textarea 的。
有时候道理一点就通。那么类似于 Trackback 这样的外部可写操作就非常的简单实现防止 Spam 了。比如我们设定一个 Trackback 的链接地址的 HTML 代码如下:
<a href="http://www.gracecode.com/trackback/blackhole" id="trackback_id">Trackback</a>然后根据当前的文章内容(比如 ID 等)运用 Javascript 将这个 trackback_id 的 href 值修改成正常的 Trackback 的地址就可以了。让 Trackback Spam 掉入无尽的黑洞里面吧!
上面只是一点的“小窍门”而已,非到万不得已千万不要让用户输入那些该死的验证码。我个人认为这样在麻烦用户的同时,同时也麻烦了自己(很多人在花心思思考如何将自己验证码做得美观)。
最后,让我们一起对付 Spam 机器人吧,包括 Gracecode.com 在内的广大 Blogger 不怕你!