世界上最痛苦的事情莫过于删除垃圾评论删到手软了,每天给你几十条垃圾评论,而且还是英文的一些不知所云的东西,你郁不郁闷?如果是偶尔的几条垃圾评论就算了,但是大规模的机器发送,你发的不累,我删除就累了。为了杜绝这些垃圾评论,吵吵再下狠心改了改代码,继续使用js控制来加入隐藏项进行叶面传值。
其实真正最好的方法莫过于是加入图片验证,如果图片够复杂,一般的图片处理算法没有办法计算出图片中的文字的话,你还真的就是没辙的。但是前提就是你得多建立一个数据库,使得图片和序号对上位,而且还要保存大量的有效的图片,吵吵并不想去做这个工作,倒也不是不愿意干,而是加入图片认证后,用户要输入一次或者多次图片中的文字,多麻烦,一般人输入邮箱,网站,昵称都觉得烦了,你还搞验证码就更郁闷了。
简单的添加隐藏的input很快就会被人给破解了,或者被人直接从网页扫描到了,那么一个伪造的post也就是轻而易举的事情了。为了搞复杂一点,我们决定把一个隐藏的input值赋值为月+日+小时。然后再在wp-comments-post.php中进行验证,正确就留下,不正确就丢弃。
当然,为了老外或者身在国外的同胞也能发,我们就用格林尼治标准时间吧。
js的代码如下:
var d = new Date(); var e3 = document.createElement("input"); e3.setAttribute("type", "text"); e3.setAttribute("name", "check"); document.getElementById('check').value=d.getUTCDate()+d.getUTCHours()+d.getUTCMonth()+1;
注:js获取的月份是从0到11的,吵吵在这里纠结了很久怎么加起来老是少一的。
wp-comments-post.php中加入的代码如下:
if(!isset($_POST['check'])) { wp_die( '未填写验证码!'); } else{ $today_month=date("m"); $today_day=date("d"); $hour= date("H");//获取小时数 if($_POST['check']!= $today_month+$today_day+$hour) { wp_die( '验证码输入错误!'); } }
看看以后还会不会有人发垃圾评论,实在没辙我就真的要用图片验证了。
如无特别说明,本博客文章皆为原创。转载请说明,来自吵吵博客。
原文链接:http://chaochaoblog.com/archives/1325
吵吵微信朋友圈,请付款实名加入:
机器发送垃圾留言太烦人了
有垃圾留言最起码证明你的博客流量高啊
早上起来问吵吵好啊
这个方法不错啊
每天坚持更新博客还是很难得的,对于一些好的博文,
我一般都是收藏的,在这里就先谢谢这些博主的无私分享了。
用插件吧,虽然插件用多了WP会臃肿,但是对于像我这样的新手还是用插件吧
世界上最痛苦的事情莫过于删除垃圾评论删到手软。哈哈
好吧,我也遇到师兄一样的情况了,有时候一天30多条…不过最近好点了…对了,师兄,我的链接名字改成“java博客”哦….呵呵
虽然不动JS,还是过来友情支持下吧!~
submit的时候执行js代码???否则可能刚好跨小时就会出错咯…