关于如何屏蔽垃圾留言的一点探索

自己做了一个小站,访客不多,却渐渐招来了越来越多的垃圾留言。打算处理之。删除容易,关键是如何避免。

因为自己前段时间做过发贴器,知道批量发表留言的关键是要知道如何提交数据,也就是说,要把留言提交给正确的网页元素。

如果网页元素的名字是可变的,那么发贴机就无可奈何了。(当然,手工发表是无论如何也避不开的)

那么,怎么变呢?

首先想到的是每天变一个名字,比如元素名是content1,输入区形如:

  <TEXTAREA NAME="content1" ROWS="" COLS=""></TEXTAREA>

那么,每天变名字的可能性就是content1_<当天日期>。后台处理同样。这样发贴器无法动态改变元素名,于是就成功规避。但有个问题,假设某人23:59开始写留言,0:0之后才提交,那么前后台就会面临元素名不一致的情况,就会丢失数据。显然不可行。

第二个想法是,给网页中增加一个hidden的元素extendid1,它的值是一个随机数(如35),同时content1的名字也成为content1_35,当留言提交给后台时,先提取extentid1的值,然后就知道本次content1的真正名字是什么了。

这样子虽然每次的留言页面中,content1的元素名都会随机变化,但如果spammer们使用伪造数据包的方法,只替换content1_xx元素的正文内容,我后台一样无法判断是否合法渠道提交。

--------

似乎陷入了僵局。不过,既然如此,说明其实要想完全避开垃圾留言是不太可能的(最BT的垃圾们会手工发贴,那样我们就没有任何办法了)。回想起google baidu等大网站在用户发贴时一样会出现验证码,也间接证明了这一点。

看了一本电子书《15天学会JQuery》,中间有一节提到如何保护你的form不易被侵扰,它的论据是:“Spammer们总是会拿软杮子捏,浪费时间去解决一个狡猾的对手对他们来说就是浪费金钱。”而所提供的解决方法也是在form里放一个隐藏标签,该标签与cookie的某个信息相一致,隐藏标签的有效时间还未过期。换句话说,你的访客们只有在一段有限的时间内才可以填写窗体并进行发送。

这个办法比我的要巧妙多了。因为他利用的是cookie。下一步就是实现它了。相关考虑暂时告一段落。

原文地址:https://www.cnblogs.com/anjo/p/1957425.html