自动发帖机的斗争过程防止垃圾评论的几个方法总结

自网站开放之日起,这个垃圾信息就没有消停过,而且这个垃圾发帖的时间都有一定的规律,一般是从上午9点、10点的时候开始,到下午下班前这段时间,是发帖机发动的时候,看的出来,发帖机的操作者也是一个正常上班的“好同志”。

从发帖机发布的信息来看,操作者也刻意优化了下信息内容,以免信息过于垃圾,直接导致发帖被屏蔽而失败;有时候,我看着这些内容,还真为这些操作者们拍案叫绝,因为连我差点都被这些机器发的帖子给迷惑住了。但是,从连续的几个帖子发布的时间间隔来看,有的竟然是同一秒钟发布出来的!只要你真的是个人在发贴,发一个帖子就打几个汉字怎么着也要几十秒吧。

很多时候,我不得不佩服这些发帖机的开发者们,有些发帖机的确够强悍,像伪造来路,伪造cookie等对他们来说是小case一桩,而且有的还会自动跟踪你网站的修改,自动调整。牛。

从地域来看,广东的垃圾信息真是太多了,像广州,深圳,东莞尤其厉害,我站上的大部分垃圾信息都是来自这些区域。看的出来,广东的经济发展的确很拽,但这里您要注意了,这些垃圾帖子的内容绝大部分是关于走私、水货产品什么的,您可以自己联想了,为什么广东会有这么多的垃圾信息了。

如果你的网站是采用简单防御垃圾信息的方法,可要注意了,看我分解:

1、采用来路判别 == 失败
    很多网站对于机器发帖的第一步便是验证是否有合适的来路信息,然而稍微懂点程序的人都知道,无论是asp,php还是.net,jsp伪造来路信息是轻而易举。所以这招基本失效。但有总比没有好。有这个验证还是能防范一些低级发帖机的。

2、采用发帖时间判断 == 失败
    从发布页(如add.asp)获得一个当前系统时间,然后用户提交信息(如提交到addok.asp)时计算用户在这个页面上的停留时间,如果过短,比如小于30秒钟,则判断为机器发帖。这招也失败了,发帖机根本不访问add.asp发布页,它直接post一个当前虚假的时间,使得这个时间远远大于30秒,所以这个方法也失效了。

3、采用cookie限制发帖次数 == 失败
    程序员们知道,cookie是客户端的信息,也是可以被伪造的。比如,你采用每次发帖成功后,采用程序使得某个cookie的值加1,当这个cookie值累加到N,就拒绝在当天继续发帖。发帖机如何破解这个方法呢?其实很简单,发帖机要做的就是伪造这个cookie,使这个cookie的值永远为1,也就永远不会超过限制了。

4、使用自身的反垃圾信息过滤系统 == 有作用
    把垃圾信息的关键字屏蔽掉,的确可以有效遏制机器发布恶意的垃圾帖子。但这个方法局限性很大。它只能屏蔽那些信息内容已经包含了恶意关键字的帖子,而对于伪装的帖子不起作用。

5、同一IP当日发帖数量限制 == 有作用
    采用基于IP的技术防止发帖机器发帖,是有作用的,而且经过了检验。具体方法就是:判断当天发布的帖子里相同IP下所发布的帖子数量,如果这个数量大于一个数值,就限制其继续发帖。

那有人说了,不能换个IP再发啊,是的,发帖机是可以换IP发布,但是,换一次IP,就意味着它要掉一次线,而一般发帖机是多线程的,它这样做其他进程也同样无法发布了。

综上所述,防止发帖机发布垃圾信息,不能仅仅采用一种方法,如果把以上的5种方法综合利用,在防止垃圾信息横行的动作上是富有成效的。大家还可以根据第三点把cookie改造称session,这样第三个方法也能起到有效的防范作用;这样,后面三种方法一结合,就可以搭建一个比较强健的反垃圾信息系统了。如果您有其他的想法,欢迎与我交流,请留下您的评论。

(0)

相关推荐

  • PHP清除数组中所有字符串两端空格的方法

    本文实例讲述了PHP清除数组中所有字符串两端空格的方法,分享给大家供大家参考.具体实现方法如下: 一般来说在php中清除字符串中空格我们可以有很多实现方法,但清除数组中所有值的前后代码我们并不能简单的使用这些方法,本文实例主要使用php独有的array_map函数遍历清除数组中所有字符串的两端空格.   具体实现代码如下: 复制代码 代码如下: function TrimArray($Input){     if (!is_array($Input))         return trim($

  • PHP实现通过中文字符比率来判断垃圾评论的方法

    本文实例讲述了PHP实现通过中文字符比率来判断垃圾评论的方法.分享给大家供大家参考.具体实现方法如下: 一.需求: 最近一段时间常常出现这类垃圾评论:一大段英文字符里夹杂一两个生僻汉字,包含了中文字符,而且又没包含啥中文的敏感词,所以就堂而皇之的通过了评论过滤.对这类评论的处理可以采取判断中文字符的比率来确认,但是也会存在一定的误判. 二.解决方案: 要用到php的两个函数strlen和mb_strlen,strlen会把单个汉字长度认定为3,mb_strlen单个汉字长度为1.同一段字符通过两

  • php防止站外远程提交表单的方法

    本文实例讲述了php防止站外远程提交表单的方法,分享给大家供大家参考.具体实现方法如下: 一般来说防止站长提交表单无非就是对每一次打开表单或提交数据都会需要加一个token来进行验证了,这个其实与验证码做法没什么两样了,下面来看几个防止站外远程提交表单的例子. 例子一:我们每一次打开提交页面生成一个token然后保存在session中,当表单提交时我们来判断当前的token值与session是否一致,如果是的就是正常提交否则就是无效提交了. 具体代码如下: 复制代码 代码如下: <?php   

  • php中使用Akismet防止垃圾评论的代码

    然而,人无完人,插(件)无完插!Akismet也并非完美,最近, 我常在被Akismet评判为垃圾的留言中找到"好人"的留言,然而,有时时间长了就自动删除了,损失珍贵的友情和留言. 别忘了修改代码中的 __YOUR_AKISMET_KEY__, __YOUR_WEBSITE_URL__ and __YOUR_NAME__ http://www.script-tutorials.com/akismet-spam-protection/ index.php 复制代码 代码如下: <?

  • php实现给图片加灰色半透明效果的方法

    本文实例讲述了php实现给图片加灰色半透明效果的方法.分享给大家供大家参考.具体实现方法如下: 原理: 1.首先计算出原图片的尺寸 2.创建相同尺寸的半透明图片 3.使用 imagecopy()方法,把新创建的半透明图片与原图合并 具体实现代码如下: 复制代码 代码如下: <?php /*php 给图片加灰色透明效果*/ $imfile = './0.jpg';//原图 $origim = imagecreatefromjpeg($imfile);//从 JPEG 文件或 URL 新建一图像  

  • php自定义apk安装包实例

    本文实例讲述了php自定义apk安装包的方法,分享给大家供大家参考.具体实现方法如下: 众所周知,apk格式安装文件是android智能系统的安装文件,下面我们来看一个利用php实现自定义apk安装包实例. 一.需求: 需要实现对产品进行一次推荐好友安装的活动,每个会员下载自己的专属安装包(里面记录会员的相关信息). 二.思路: 经过了解,发现apk安装包原来只是zip的一个马甲,使用php的ZipArchive类可以对文件进行操作. 三.实现代码: 复制代码 代码如下: // 源文件 $apk

  • php实现删除指定目录下相关文件的方法

    本文实例讲述了php实现删除指定目录下相关文件的方法.分享给大家供大家参考.具体实现方法如下: 通常来说在php中删除文件最简单的方法就是直接使用unlink命令,而对于需要删除指定目录下的指定文件的情况,就需要遍历删除了. 具体实例代码如下: 复制代码 代码如下: <?php  //删除指定文件夹下的非法文件  function my_del($dir)  {     if(is_dir($dir)){         //打开指定文件夹         if($handle = opendi

  • PHP用strstr()函数阻止垃圾评论(通过判断a标记)

    strstr() 函数搜索一个字符串在另一个字符串中的第一次出现.该函数返回字符串的其余部分(从匹配点).如果未找到所搜索的字符串,则返回 false. 语法:strstr(string,search) 参数string,必需.规定被搜索的字符串. 参数search,必需.规定所搜索的字符串.如果该参数是数字,则搜索匹配数字 ASCII 值的字符. 该函数对大小写敏感.如需进行大小写不敏感的搜索,请使用 stristr(). strstr()函数简单演示 复制代码 代码如下: <?phpecho

  • php实现过滤表单提交中html标签的方法

    本文实例讲述了php实现过滤表单提交中html标签的方法.分享给大家供大家参考.具体实现方法如下: 有时候我们做的简单评论功能会发现有提交很多的html标签,这些标签会导致页面有一些外连的情况,下面我们一起来看在php中过滤表单提交的html标签方法. 近评论中有一些机器人提交的post链接,都是一些垃圾评论.为了减少这种无谓的链接内容出现,其实是可以用php来删除表单POST提交的html标签,这样机器提交的信息也不会得到他们要的结果.而且可以减少来自seo/seo.html" target=

  • PHP中加密解密函数与DES加密解密实例

    本文实例讲述了PHP中加密解密函数与DES加密解密的应用,分享给大家供大家参考.具体如下: 例子,php加密解密的例子 加密函数: 复制代码 代码如下: /* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ //加密函数  srand((double)microtime() * 1000000);  $encrypt_key=md5(rand(0, 32000));  $ctr=0;  $t

  • php的ZipArchive类用法实例

    本文实例讲述了php的ZipArchive类用法,分享给大家供大家参考.具体如下: 通常来说,php5.2开始支持ZipArchive类,php4只能使用zip函数.其实在官方实现zip类之前,已经有大牛贡献了打包解压zip文件的方法.现在php包含了ZipArchive类,当然优先使用.使用该类能创建和解压zip文件,也能直接读取zip压缩包内的内容,很方便,这里主要总结下读取和解压的过程. 解压一个包到指定目录: 复制代码 代码如下: <?php $zip = new ZipArchive;

  • php获取textarea的值并处理回车换行的方法

    本文实例讲述了php获取textarea的值并处理回车换行的方法.分享给大家供大家参考.具体实现方法如下: 一般来说,在html表单中textarea中我们按回车与换行都是一些ascii或特殊的字符的编码,如果不进行转换输出文字是没的排版的. php获取textarea的值是十分简单的 textarea回车换行为 \r\n 下面看例子 HTML代码: 复制代码 代码如下: <Textarea name="test" rows="3″ cols="20″ id=

  • 新增加一个防垃圾评论的asp代码,鄙视垃圾

    最近开通了,可以发表评论就一直被垃圾评论和留言困扰,一直没有找到很好的解决办法.事实上wordpress有一些强悍的插件可以防治spam,比如Akismet,不过这只能让我留着口水羡慕,因此最近一直在寻找一个相对较好的解决方案. 今天在Bigik.cn上看到一个不错的方法,Bigik使用加法运算形式的用户验证来解决这个问题.现把方法转载过来.当然这个方法不是很完善,我发现还会有一些spam进来. 使用方法:  程序代码  复制代码 代码如下: Function getnum()   Dim Qu

随机推荐