现在一些营销软件五花八门,有不少就是通过在留言本或是论坛的发贴机,发布一些垃圾数据,这些的危害还不算大,更多的是有些通过这些不断重复留言,暴数据库的方式,令到网站数据库超出额定容量令网站打不开。当然,这是属于黑客行为,对于各行业业竞争激烈的今天,网站推广排名一上到百度前面,像以上说的这些问题愈加突出。有时候辛辛苦苦优化一个网站,好不容易优化到百度第一页,可是不久就发现网站给黑,或者留言板堆满了很多垃圾数据,少侧几千条,多侧几十万条,而且都是一些机器发贴机留下的,没有意义的数据,给网站管理增添了不少麻烦。
我们没有办法阻止别人这样做,但我们有办法优化程序,让别人徒劳无功。主要的方法有:
一、对提交页面进行验证
简单地说,就是在提交页面前面,加入验证,验证这些数据是从哪个文件提交过来的。一般情况下,机器发贴机,都是通过一些数据采集,直接进入提交页面,通过验证后,就发布出来。例如你的留言版是http://www.py162.com/guestbook.asp,数据是提交到http://www.py162.com/guestbook_check.asp,那么,就在http://www.py162.com/guest_check.asp上加入验证,验证上一个页面是不是从http://www.py162.com/guestbook.asp提交过来的,这样,就有效地阻止了发贴机的行为。验证的方法有利用获得来路页面的URL,也可以在来路页面设置一个session值,只要是通过正规的页面,就会给一个session值,反之没有这个值,就不给提交。
二、对提交页面进行时间统计
这种方法,也被很多留言本所采用,其原理很简单,就是计算客户在一个页面的停留时间,一般人在填资料的时候,都是需要时间的,而通过机器发贴机是没有这个时间的。根据此原理,可以进行一些时间上的验证,在这里,有一段程序供参考:
<script language="Javascript">
<!--
time_start= new Date(); //页面开始时间
function stay() {
time_end = new Date(); //页面结束时间
minutes = (time_end.getMinutes() - time_start.getMinutes());
seconds = (time_end.getSeconds() - time_start.getSeconds());
time = (seconds + (minutes * 60)); //秒为单位
document.userinfo.time_stay.value=time; //表单time_stay
}
//-->
</script>
上面脚本放到顶部(一般放head内)
<input type="hidden" name="time_stay" value="0"> //在表单中建立一个名称为time_stay的隐藏表单顶目<INPUT onClick="return stay();" type="submit" value="提交" name="next"> //提交表单时调用上面脚本中的stay()函数
表单提交上去以后,在接收数据页面里,可以使用 request.form("time_stay") 来调用停留时间,通过停留的时间来判断是否是机器发贴机。
以上两个方法是由越秀网站建设在一些客户原有网站上出现的问题所提供的解决方案,除了以上方法以外,还有很多别的解决办法,总之办法有很多,能解决就行。如果你对编程有兴趣,可与我们多交流。