hitchcock 发表于 2010-11-21 16:52

根除Discuz!广告机器人(自动灌水)的方法

从上面这些文章可以看到,Discuz!本身就提供了不少防止自动发贴机器人的办法。这些功能位于“Discuz!管理中心 -> 全局 -> 注册与访问 -> 注册”,具体来说包括:

* 修改“注册文件名”,默认是“register.php”
* 修改“注册链接文字”,默认是“注册”
* “新用户注册验证”设置为“E-mail验证”或“人工审核”

  另外在“Discuz!管理中心 -> 全局 -> 安全验证 -> 验证码设置”和“Discuz!管理中心 -> 全局 -> 安全验证 -> 验证问答设置”中还可以选择在“新用户注册”时:

* 启用验证码
* 启用验证问答

  还有一个可能被使用的功能就是“Discuz!管理中心 -> 全局 -> 注册与访问 -> 访问控制”中的“新手见习期限(小时)”,比如设置为“2”,那么新注册用户2小时内不能发贴。

  上述功能是根据最新的Discuz! 7.2的功能设置和界面设计来描述的。

  不过让人觉得可惜、痛心和寒心的是——上面这6种方法,对于日益猖獗的自动广告灌水机器人完全无用!为什么这么说呢?因为我自己的实际经验就是这样,进行了这些设置以后,机器人依然来去自如。让我们简单分析一下这么多防御措施是怎么被一一突破的:

  方法1和方法2:修改“注册文件名”和修改“注册链接文字”

  因为大部分站长采用的都是默认模板或者由默认模板修改而来的模板,因此注册入口的位置是有规律可循的,比如“注册”总是在“登录”前面。这样,机器人只要采用一种或者几种正则对论坛首页进行解析,就能找到正确的注册入口。

  方法3:“E-mail验证”或“人工审核”

  E-mail验证已经完全没用了,广告机器人可以使用163、sina、yahoo、msn等多种邮箱自动完成注册的验证环节。人工审核有时效性差、工作量大的不足,而且很多广告机器人的验证问题也很有迷惑性,容易大量产生漏网之鱼,费力不讨好。

  方法4和方法5:验证码和验证问题

  验证码和E-mail验证一样,可以说已经完全没有用了,机器人是怎么识别验证码的我没有研究过,但是它们的确做得很出色。验证问题也一样没有用,这个我估计是采用了人工辅助的办法,只要人工回答出一个问题,就可以自动注册一堆机器人帐号。

  方法6:“新手见习期限”

  现在很多广告机器人注册了几天、十几天、几十天,甚至几百天以后才来论坛灌水,因此设置“新手见习期限”除了影响人类用户的用户体验,实际上已经没有什么帮助。

  那么,我又是怎么根除Discuz!广告机器人的呢?别急,听我慢慢道来。

  先看看我是怎么设置的:

“Discuz!管理中心 -> 全局 -> 注册与访问 -> 注册 -> 注册文件名”:index.php

“Discuz!管理中心 -> 全局 -> 注册与访问 -> 注册 -> 注册链接文字”:请访问导航栏的“加入清北服务网站”进行注册

“Discuz!管理中心 -> 界面 -> 界面设置 -> 导航栏”
    -> 名称:加入清北服务网站
    -> 链接:to_quickbest.php (提示:这里的文件名不要出现register字样,否则会被一部分机器人挖掘出来)

  这些设置实施以后的效果可以访问清北技术论坛(http://QuickBest.com.cn/discuz)来查看,简单来说就是让原有的注册入口彻底消失,新增一个自定义的注册入口。

  这个办法虽然看起来比较土,而且效果不尽完美,但是对付自动灌水的广告机器人却是非常有效,让机器人无法自动注册,从源头上解决问题——因此我在本文标题中提到的“绝招”、“根除”可以说是一点儿也不过分的。

  Discuz!的下一个版本其实也可以考虑按照我这种思路彻底重新设计一下注册入口,让机器人找不到入侵的大门而无法肆虐。

  希望本文能帮助和之前的我一样的,还在和广告机器人进行着艰苦卓绝的斗争的站长们,早日脱离苦海:)

  更新(2010-01-27):忘了说了,还需要修改register.htm模板文件,才能正常注册。比如我使用的是默认模板,那么需要修改 “discuz/templates/default/register.htm”,把其中的:

    <form method="post" name="register" id="registerform" class="gateform" action="$regname?regsubmit=yes">

修改为:

    <form method="post" name="register" id="registerform" action="to_quickbest.php?regsubmit=yes">
页: [1]
查看完整版本: 根除Discuz!广告机器人(自动灌水)的方法