一种可能是高大上的防止SPAM的方法

前一阵子比特币火的一塌糊涂,然后猛然惊觉其实自己在几年前就买过这种东西,后来换电脑了钱包啥的都没有保留下来,扼腕叹息觉得我差一点点就是富豪了。事实证明我想多了,因为仔细一想才发现自己的持有量还不到1个单位,才多少钱啊,离富豪的距离还有几千倍呢。不过当年不明白比特币的原理,也想不了那么多,这个钱没这个福气赚,也是没办法的事情。

最近又去看了看比特币的实现原理,然后在想,如果说把类似的原理用在其它地方会发生什么。于是就有了这个防 SPAM 的思路。不过也不知道该用什么关键字去检索,也不知道自己是原创还是在重复造轮子,总之是写了一个 typecho 的插件叫 SpammersGoAway ,已经在自己博客上部署了,并且把其它的防垃圾策略都撤了,看看有什么后果。

Update : 由于对某些手机浏览器支持不能,暂时关闭了本站的 SpammersGoAway .

这个实现原理在 README.md 里已经详细的叙述了,这里就复制粘贴一下好了。

对于 Spammer 来说,效率是摆在第一位的。他们需要用极短的时间来发送大量的 SPAM ,这就是 Spammer和普通的用户最显著的区别。

利用这一点,我们可以使每位评论者都花上一点点的时间来计算一个特殊的 hash值,比如hash(time+i),然后循环使i自增,最后要求计算出来的 hash 满足一个特殊的条件如前3位相同,这样对于一个Spammer 来说,他发送一个 SPAM 所使用的资源提高了:需要更多的 CPU 和时间。而对于普通用户来说,浏览器计算这个 hash值的时间在 3 秒内,还不够用户输入一条完整的评论,对于用户来说几乎无影响。

评论

发表评论

发表评论代表你授权本网站存储并在必要情况下使用你输入的邮箱地址、连接本站服务器使用的 IP 地址和用户代理字符串 (User Agent) 用于发送评论回复邮件,以及将上述信息分享给 Libravatar Akismet,用于显示头像和反垃圾。