面对垃圾广告的处理
面对垃圾广告,有些时候真的是苦不堪言。每天都有垃圾广告在我的网站的留言本里面出现,有时候好几条。其实我的垃圾留言算是少的,记得去年清理材料学院的网站的留言本的时候,发现数据库50多兆,怎么想都觉得不可能,后来才发现,垃圾留言一万多条。于是清空了留言数据库,一下子把数据库减小到了一兆多一点。面对每天防不胜防的垃圾,总去人工删除也不是个办法,于是逐渐开始采用虚拟的验证码功能。
虚拟验证码的实现是这样的
填写页面自动生成一个随机码,然后隐藏写入到一个文本框S1里面,作为一个参数传递给触发页面,同时也明码显示,让用户在另一个文本框S2里面输入这个码,这样用S1和S2进行对比,也就有了一个可以判断的依据,在一定程度上防止了低级的垃圾群发程序。
因为是明码,所以可能会出现机读现象,后来进行了改进,也就是不再用S1传递数据,采用了生成一个Session的方法,相对来说比以前更进了一步,因为用隐藏文本框的方式,完全可以实现远程提交,例如,灌水软件随即生成一个代码1234,填入S1,然后又自动把该代码填入S2,也就越过了这个验证,实现了它灌水的目的。而采用了session验证,至少他把数据从服务器上存储,使得S1这个数据必须要用服务器的数据,而不能自己生成远程提交了。
随着这些技术的改进,灌水技术也不断地在发展在改进。逐渐出现了识别系统,可以完好的识别你的文字,然后自动填充到你的S2中去,这样一来,也用机器实现了跳过严整的目的。
于是很多网站开始用图片代替,自动生成带有星星点点干扰的数字图片,来反击识别系统。后来逐渐地采用汉字作为验证,而且出现的个数也是随机的,位置也是随机的,极大的抗击了灌水软件。
本人的小站觉得没有必要那样杀鸡用牛刀,也就不值得去花那么大的力气写生成图片的代码,而且有时候服务器不好的话,还不是很兼容,于是渐渐的开始寻找新的思路和方法。
有的人采用了这样的验证法,就是屏幕提示根输入不一样的办法,比如,屏幕提示1+3,你不能输入这组数字,而是输入4,这样就避免了识别设备。可是这样做起来,对用户增加了一些麻烦,毕竟,要用一下脑子来计算这个数字呢。后来仔细研究,发现凡是垃圾软件无非是来留下很多的网址,根据这点儿,我构思出了我的防垃圾的办法。
编写一个函数,来判断留言内容是否含有敏感字符,如果有,则对敏感字符进行过滤,这样在一定程度上净化了留言的内容。如果含有的某些字符超过了一定的个数,也就认为是垃圾广告。比如,自动识别“www”有几个,如果超过两个,就认为该信息是垃圾广告,也就很好的阻止了一些灌水的软件。并且把它的cookis写入到明天的这个时候,在留言的时候判断用户的cook,这样也就杜绝了它再次灌水的可能。
这样在内容上处理,可以有针对性地去判断一些敏感字符,有针对性地阻止一些垃圾广告的骚扰。而且,还不会对用户有什么影响,也不会增加用户在填写的时候的工作量。所以比起验证码来,还是有一定的长处的。如果是配合使用,则会更好。
目前,该代码在我的网站、ourcy的网站上测试,效果不错,从使用到现在,也收不到这些灌水的垃圾广告了。
虚拟验证码的实现是这样的
填写页面自动生成一个随机码,然后隐藏写入到一个文本框S1里面,作为一个参数传递给触发页面,同时也明码显示,让用户在另一个文本框S2里面输入这个码,这样用S1和S2进行对比,也就有了一个可以判断的依据,在一定程度上防止了低级的垃圾群发程序。
因为是明码,所以可能会出现机读现象,后来进行了改进,也就是不再用S1传递数据,采用了生成一个Session的方法,相对来说比以前更进了一步,因为用隐藏文本框的方式,完全可以实现远程提交,例如,灌水软件随即生成一个代码1234,填入S1,然后又自动把该代码填入S2,也就越过了这个验证,实现了它灌水的目的。而采用了session验证,至少他把数据从服务器上存储,使得S1这个数据必须要用服务器的数据,而不能自己生成远程提交了。
随着这些技术的改进,灌水技术也不断地在发展在改进。逐渐出现了识别系统,可以完好的识别你的文字,然后自动填充到你的S2中去,这样一来,也用机器实现了跳过严整的目的。
于是很多网站开始用图片代替,自动生成带有星星点点干扰的数字图片,来反击识别系统。后来逐渐地采用汉字作为验证,而且出现的个数也是随机的,位置也是随机的,极大的抗击了灌水软件。
本人的小站觉得没有必要那样杀鸡用牛刀,也就不值得去花那么大的力气写生成图片的代码,而且有时候服务器不好的话,还不是很兼容,于是渐渐的开始寻找新的思路和方法。
有的人采用了这样的验证法,就是屏幕提示根输入不一样的办法,比如,屏幕提示1+3,你不能输入这组数字,而是输入4,这样就避免了识别设备。可是这样做起来,对用户增加了一些麻烦,毕竟,要用一下脑子来计算这个数字呢。后来仔细研究,发现凡是垃圾软件无非是来留下很多的网址,根据这点儿,我构思出了我的防垃圾的办法。
编写一个函数,来判断留言内容是否含有敏感字符,如果有,则对敏感字符进行过滤,这样在一定程度上净化了留言的内容。如果含有的某些字符超过了一定的个数,也就认为是垃圾广告。比如,自动识别“www”有几个,如果超过两个,就认为该信息是垃圾广告,也就很好的阻止了一些灌水的软件。并且把它的cookis写入到明天的这个时候,在留言的时候判断用户的cook,这样也就杜绝了它再次灌水的可能。
这样在内容上处理,可以有针对性地去判断一些敏感字符,有针对性地阻止一些垃圾广告的骚扰。而且,还不会对用户有什么影响,也不会增加用户在填写的时候的工作量。所以比起验证码来,还是有一定的长处的。如果是配合使用,则会更好。
目前,该代码在我的网站、ourcy的网站上测试,效果不错,从使用到现在,也收不到这些灌水的垃圾广告了。
本文出自 栋力天空,转载时请注明出处及相应链接。
本文永久链接: http://www.dongsky.cn/show_652.html
0条评论