防垃圾评论简单技巧

2018-05-08 · 🙈Lei · 0条 · 383次

之前本站博客上经常性地出现垃圾评论,我用了一些简单而又有效的方式处理了一下。下面介绍几种防止垃圾评论的小方法(思想)。

添加表单规则

  1. 设置必填项
    像本站评论和留言需要提供用户昵称、邮箱、个人博客地址、验证码、内容这些数据,其中除了个人博客地址可选外,其他内容均为必填。这样可以防止一些为空的数据,也是最基本的要求。
  2. 文本校验
    我对邮箱和博客地址进行了正则校验,必须分别符合邮箱规则和URL规则。邮箱是用来接收回复消息,博客地址是为了给用户做宣传,如果填入错误信息,对本站来说都是无效内容。添加规则后可以避免用户填入无效的邮箱地址和博客地址,保证数据有效。
  3. 验证码
    以上两步只是初步筛选,添加验证码则是防止垃圾信息很重要的一步。验证码可以有效防止机器人刷垃圾信息,同时也可以防止不停地无限刷入。

添加针对性规则

即使我做了上面这些事情,仍然阻止不了有人刷入垃圾信息。我看了一下垃圾信息的内容,多为宣传自己的网站(部分为不健康网站),而且均为外文字符(英文和俄文居多)。本站为中文站,也就意味着对于不会中文的用户来说意义不大。于是我想如果一条评论中没有任何的中文字符,将会有99%的可能是想要刷入垃圾信息。所以我在评论和留言内容中加入了限制规则:必须包含中文字符

垃圾评论很多是俄文,据了解,在俄罗斯刷评论已经成为一个成熟的产业,所以在网站上见到这样的评论就很正常不过了。很有趣的是,用俄文刷入的评论里的网站一般不是色情网站,但是其他外文的评论内容多为色情内容,这可能就是因为俄罗斯将刷垃圾评论作为一种宣传手段,成为一个产业的原因吧。我们一般会认为乱刷的广告一定是不被认可的,就像电线杆上的广告一样,但是我认为他们觉得这没有 什么不合理。

注:本站允许用户宣传自己的网站,所以在评论和留言中提供了个人博客地址的输入框,同时可以申请提供友情链接,但是评论内容必须与本站或本站博客有关。

封禁IP

上面我们提到垃圾信息多来自于俄罗斯等地区,如果网站不针对这部分地区的人提供内容,你完全可以将这部分用户的IP封锁,使其无法访问你的网站。

我觉得这可能是一种极端的做法,虽然会丢掉部分的流量,损失一小部分用户,但是会很有效。这种方法还有一个好处是防止自动化机器人不停地向你的网站接口post数据。

例如,在Nginx中你可以这样做:(>$是命令提示符)

>$ grep 'POST /site/message' access.log | awk '{print $1, $4}'

来查询向某个接口发送数据的IP。

向Nginx的配置文件中添加类似于下面的内容来禁止某些IP对网站的访问。

location / {
    deny 192.168.1.0/24
}

通过上面的方法就可以有效防止垃圾评论产生。当然还有一些其他方法,如利用算法判断内容等,这里不做介绍。


  0