zoukankan      html  css  js  c++  java
  • 关于如何屏蔽垃圾留言的一点探索

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

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

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

    那么,怎么变呢?

    首先想到的是每天变一个名字,比如元素名是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。下一步就是实现它了。相关考虑暂时告一段落。

  • 相关阅读:
    C#网络编程系列(两)它Socket同步TCPserver
    [LeetCode] ZigZag Conversion [9]
    设计模式迭代器模式
    Android_WebServices_介绍
    (UML两个汇总)九种图。
    你不明白 String 类别
    Mockito使用注意事项
    Xcode6为什么干掉pch(Precompile Prefix Header)&amp;怎样加入pch文件
    atoi()函数的实现
    多种方法求解八数码问题
  • 原文地址:https://www.cnblogs.com/anjo/p/1957425.html
Copyright © 2011-2022 走看看