反垃圾评论:WP Anti Spam + Spam To Blacklist
这年头 Spam(垃圾评论)越来越猖獗,在我们使用的 WordPress 平台亦是如此。
当然,万能的 WordPress 对付 Spam 的方法也有很多。
个人并不喜欢使用验证码、算术题之类的,那虽然很有效,但会给评论者造成麻烦。
而评论审核则会影响体验,仅在离开较长时间才会打开。
再此分享一下我的反垃圾评论方案:免插件的WP Anti Spam + Spam To Blacklist 插件。
这是两个月内收到的 Spam,该清理了~
WP Anti Spam 小墙,免插件的反 Spam 方案
我之前一直是用着 wp 自带的 Akismet ,使用黑名单机制,但无论对机器还是人肉 Spam 都很不错,还能自动学习。
不过时不时会把一些正常的评论误杀了,导致经常要跑去检查垃圾评论- -。
后来发现了这个 WP Anti Spam ,昵称小墙,是免插件拦截垃圾评论的利器。
来自低调的大师 Willin Kan ,周围的很多朋友也在用着,评价很高。
小墙原理和功能
其原理可以简单理解为:添加一个隐藏的资料框(属性为 display:none 的 textarea),因为用户是看不到的,如果该区域被填满则判断为 Spam。
还也能判断一些手动方式的。
另外还在后台提供了spam 的基本资料,包含请求( REQUEST_URI )、来路( HTTP_REFERER )、IP、操作方式,,可提供下一步加强防护的参考。(见上图)
使用 WP Anti Spam 小墙的方法
效果出色,还免插件,没什么好犹豫的。
将以下代码复制到主题的 functions.php 中即可。
/* <<小牆>> Anti-Spam v1.81 by Willin Kan. */ //建立 class anti_spam { function anti_spam() { if ( !current_user_can('level_0') ) { add_action('template_redirect', array($this, 'w_tb'), 1); add_action('init', array($this, 'gate'), 1); add_action('preprocess_comment', array($this, 'sink'), 1); } } //設欄位 function w_tb() { if ( is_singular() ) { ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=([\"\'])comment([\"\'])(.+)/textarea>#", "textarea$1name=$2w$3$4/textarea><textarea cols="\"100%\"" rows="\"4\"" name="\"comment\""></textarea>",$input);') ); } } //檢查 function gate() { if ( !empty($_POST['w']) && empty($_POST['comment']) ) { $_POST['comment'] = $_POST['w']; } else { $request = $_SERVER['REQUEST_URI']; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '隱瞞'; $IP = isset($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"]. ' (透過代理)' : $_SERVER["REMOTE_ADDR"]; $way = isset($_POST['w']) ? '手動操作' : '未經評論表格'; $spamcom = isset($_POST['comment']) ? $_POST['comment'] : null; $_POST['spam_confirmed'] = "請求: ". $request. "\n來路: ". $referer. "\nIP: ". $IP. "\n方式: ". $way. "\n內容: ". $spamcom. "\n -- 記錄成功 --"; } } //處理 function sink( $comment ) { if ( !empty($_POST['spam_confirmed']) ) { if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment; //不管 Trackbacks/Pingbacks //方法一: 直接擋掉, 將 die(); 前面兩斜線刪除即可. //die(); //方法二: 標記為 spam, 留在資料庫檢查是否誤判. add_filter('pre_comment_approved', create_function('', 'return "spam";')); $comment['comment_content'] = "[ 小牆判斷這是Spam! ]\n". $_POST['spam_confirmed']; } return $comment; } } $anti_spam = new anti_spam(); // -- END ----------------------------------------
另外,我们可以看到很多 Spam 都是直接向 wp-comments-post.php 发出请求。
由于我使用了 Willin 大师的 Ajax comments,所以也可以把 wp-comments-post.php 给重命名了,这基本上阻挡了所有的机器 Spammer,不过没有 Spammer的日子也寂寞,哈哈。
Spam To Blacklist 插件,对抗人肉 Spam 的利器
这是来自 jiucool 同学的原创插件。
Spam To Blacklist 这个插件的作用是,在用户手动标记为垃圾评论时,自动将其 Email 和 URL 添加到评论黑名单。
小墙在对付机器 Spam 之类的无比强大,但并不是采用像 Akismet 那种黑名单机制,人肉的 Spammer 容易漏网。
这个Spam To Blacklist 刚好能补充这方便的不足,人肉对抗人肉,插件是把操作给简化了。
消灭那些 xx Seo,xx推广,xx网站 – -。
为了更新方便,请移步到 Spam To Blacklist 的主页下载。
下载插件后,解压完成将其上传至 /wp-content/plugins/ 目录,然后启用之即可,无需其他操作!
这就是我目前的反垃圾评论方案,你的呢?欢迎分享经验^ ^
» 转载请以超链接形式注明来源:A.shun Blog » 《反垃圾评论:WP Anti Spam + Spam To Blacklist》
» 本文链接地址:https://shun.im/21377
小墙是个好东西,一直很感激Willin 大师。 ➡
@Vicia 后面的插件可以一试;暂时人肉的Spam不是很多,还可以忍受。
Akismet打死也不会再用,心理阴影了。= =
没有Spammer你也会寂寞… ❗
比起wp我更讨厌最近gmail里的spam…
@Vicia Akismet有什么问题吗?
@流年 误杀。
@Vicia 我对人肉的太反感了,一定要放黑名单
很早就用过,但是后来和主题有点冲突,还在找毛病
@winy 这就太囧了
人肉对人肉,嘎嘎 😛 😛
Warning: Undefined array key 1 in /www/wwwroot/ashun/shun.im/wp-content/plugins/wp-useragent/wp-useragent-detect-webbrowser-version.php on line 32
Mozilla Compatible Unknown
@久酷 只能这样了,人肉靠程序来判断不容易
哈哈,我这点子不错吧,jiucool V5,willin V5
@zwwooooo V5!!!
人肉对人肉~~~
willin大师造福了很多人啊
请求,来路是1.81才有的么,我用的1.8
@Dianso 对。
深深受益中 😮
最近一直都是广告留言,试过几个插件都不行,现在我还是开着审核的,我也换这个用用 😐
ps,我换个邮箱填了 ❗
小墙和我用的主题参数冲突,我有不知道是哪个参数,悲剧啊…
Akismet还不错,就是有时误判 ❗
@婉秋 恩,误判比较烦
有句话说得对,没有SPAM也挺寂寞
我博客的Spam基本是全字母的,用Input Some Chinese,挺好。 😀
@Hailo 有时候手累,表情党就杯具了
第二次看这段代码,大概理解了工作方式,把原来name=”comment”的输入框隐藏再加上一个name=”w”的输入框,如果w有内容而comment没内容就说明不是spam(人肉的不能检测),一般软件是直接向comment发送信息
@fatkun 恩,很管用
我用的小蜜蜂和小墙是一个原理
好东西啊,垃圾评论真是件头痛的事情
我启动spam_to_blacklist插件的时候总是报错,奇怪啊
@小小 会不会是wp的版本过低,或者是和其他插件冲突了?
现在一直只用小墙
装上去试试 看来垃圾评论很多。
我还是用自带的,现在评论已经不多了,spam却越来越多。
@小O 哈,spam不及时清除,很影响体验的
对于访量不大的个人博客来说~垃圾评论简直就是奢侈啊~哈哈~
@爱月 还是很多的,机器spam不管你的访问量,很多都是根据网址段群发的
我看到强大的评论数量了` 😀
我的小站…暂时无需用到这种大型杀伤武器~~ 😎
不过我是比较不喜欢用验证码之类的~ 💡
@Bee君 其实这种算是很环保了,小墙免插件的成本已经很低
以前经常有大量的垃圾评论,现在一天也就几条,习惯了,要是一条没有,还真没习惯,呵呵。
PS:为啥人肉就会填那个隐藏的文本框呢?
@世纪之光 人肉当然不填了,好像有另外的规则对付人肉,不过效果一般。
所以用下面的辅助
自从在A5发文章,一个多星期了,同一个人天天发,我估计是他们有专门的软件吧。
@西门 恩,人肉的太累,应该是群发的,那种好对付
垃圾邮件无处不在,碰到会让你遍体鳞伤
目前spam不多,还可以处理得过来,如果人肉的评论和内容相关我还是会手下留情的,推广不容易 呵呵。
这个插件相当于设个陷阱给机器人跳~
@merror 推广不是这么推的~
很好的人肉对抗人肉插件,之前在Z叔叔那边也看到类似的插件~
@Lazyyyyyy 就是这个嘛
这个插件也很强大
我一直用的是系统自带的反垃圾.
我用Akismet
暂时还是用着akismet,还够用……
@小雪 ak真是流行呢 😆
其实我想问下有没有根据URL来spam的插件,一般发广告的都带url。
@BoKeam 更加url来spam- –
有时候访客也会发url的吧。
而且这个功能wp自带了的,在设置>讨论里面:当一条评论有x个或更多超链接时放入等待审核队列。
先用着Akismet
Willin大师的小墙也看过,以后考虑用不用
原来我在哪里好像看到过小墙,当时就用了,到现在无一错判,非常好用! 🙄
Akismet我用着不错,人肉spanner倒是经常没抓到,误判倒没发现,估计是我留言数量太少了吧
已经在wordpress啦和某位博主的留言里介绍了,刚好有不少朋友被这个困扰
@天毅 哈,很多人都受到spam的困扰呢,必须消灭之
现在没用这上了 😉
主要是人肉的比较难对付~
试试先~
看样子很不错呀。收下了。 🙄
怎样发评论来测试这个WP Anti Spam 小墙的功能呢?求请教
—
感谢分享
You actually make it appear so easy with your presentation however I to find this topic to be really something that I believe I would never understand.
It seems too complex and very wide for me. I’m looking forward
for your next publish, I’ll try to get the grasp of it!
It’s going to be ending of mine day, except before
finish I am reading this wonderful piece of writing to improve my know-how.
Genuinely no matter if someone doesn’t understand then its up
to other users that they will assist, so here it occurs.
What’s up, after reading this remarkable post i am too happy to share my knowledge here
with friends.
For latest news you have to go to see internet and on web
I found this site as a most excellent site for hottest updates.
I don’t even know the way I ended up right here, but I believed this put up was once great.
I do not know who you’re however certainly you are going to
a famous blogger when you aren’t already. Cheers!
Hmm it appears like your website ate myy first comment
(it was super long) so I guess I’ll just sum it up what I hadd written and say, I’m thoroughly enjoying your blog.
I too amm an aspiring blog writer buut I’m still new to everything.
Do you have any suggestions for rookie blog writers? I’d certainly appreciate it.
I do not know whether it’s just me or if everyone else encountering issues with your site.
It looks like some of the text on your posts are running off the screen. Can somebody else
please comment and let me know if this is happening to them as well?
This could be a problem with my web browser because I’ve
had this happen previously. Kudos