我一直知道 WordPress 博客下访客是可以冒充博主发表/回复评论的,只要你知道博主的邮箱地址即可,但我一直懒得去加,因为开此博至今2年多几乎没有人在我这冒充博主发表/回复评论。
情人节前夜,不知道万戈是否耐不住寂寞还是为了即将来临的“爱要死”兴奋不己,特意来测试冒充一回(冒充评论可以点这里去围观一下),让我感觉到有点怕怕:要是某天不是万戈而是超兴奋的spammer冒充一回不就要删到手软?于是我觉得还是加上这段“防止访客冒充博主发表评论”的代码比较好,防范于未然总是比较好的。
我记得我很早就收藏过这段代码(却不知道哪里出的了,去搜一下,一大把,个个都没说出自哪里……囧~),但是使用效果有点变态:可以防止访客冒充博主了,不过切把已经登陆的博主也禁止了,囧~这就是没有测试直接 Copy 代码的结果。
那么分析代码,原代码结构如下:
// 防止访客冒充博主发表评论, 原出处: ? 知道者/原作者请告知一声 function z_user_check($incoming_comment) { $isSpam = 0; if ( trim($incoming_comment['comment_author']) == '这里填博主昵称' ) $isSpam = 1; if ( trim($incoming_comment['comment_author_email']) == '这里填博主邮箱') $isSpam = 1; if(!$isSpam) return $incoming_comment; wp_die('请勿冒充博主发表评论!'); } global $user_ID; if(intval($user_ID) == 0) add_filter( 'preprocess_comment', 'z_user_check' );
或许是引用变量 $user_ID 的问题,于是我改为如下,华丽的解决了:
// 防止访客冒充博主发表评论, 原出处: ? edit by zwwooooo function z_user_check($incoming_comment) { global $user_ID; $isSpam = 0; if ( strtolower(trim($incoming_comment['comment_author'])) == '这里填博主昵称' ) $isSpam = 1; if ( strtolower(trim($incoming_comment['comment_author_email'])) == '这里填博主邮箱') $isSpam = 1; if (!$isSpam || intval($user_ID) > 0) { return $incoming_comment; } else { wp_die('请勿冒充博主发表评论!'); } } add_filter( 'preprocess_comment', 'z_user_check' );
折腾完,隐~
2011.2.17 Update:加入大小写验证。
zww
赏
oooo
or
- 本文标题:还是加上了“防止访客冒充博主发表评论”
- 本文链接:https://zww.me/archives/25392
- 发布时间:2011年02月16日 13:07
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
神马都是浮云
@鲁迅
- - 你竟然用这名和头像
这个必须要登录才可以回复吧,如果我不想登录的话,就不能用我的邮箱评论了吧
@闲云野鹤
应该是:必须登陆才能以博主昵称、邮箱回复/发表评论
不知道你这段代码是从哪复制的呢?
@阿里
我也想知道,文章里面说明了,知道者通知一下
如果中间加上个空格标点什么的呢
如果再换个头像,这样也足以以假乱真哦。。。
@zwwooooo.
这样玩的话就扔黑名单
那你弄一个别人不知道的邮箱当管理员邮箱,评论的时候用另外一个邮箱
@囧啊囧
呵呵,不用这么折腾
囧。。。我是被冤枉的,我啥时候来冒充过了?
@万戈
真的吗?那可能是你的粉丝
@zwwooooo
太邪恶了
@万戈
现在可能很多人冒充了,哈哈哈
大叔你要主持公道啊,为我找出真胸
@万戈
好,我主持公道:以假乱真吧,解决文囧
@万戈
真胸浮出:38楼
真的不是我~真的不是我~真的不是我~真的不是我~真的不是我~真的不是我~真的不是我~真的不是我~
@万戈
哈哈哈,不管是别人冒充还是你冒充都没关系,这是好事。
未雨绸缪还是好的
@yixin
嗯嗯,都对
Mucid来冒充Veezy,难道可以么?
@Veezy
可以吧,如果有人很无聊蛋疼不怕找骂的话。
@zwwooooo
囧,我是在测试,到底你这玩意儿可不可以防止冒充,从逻辑上分析就不可能……
@Mucid
囧,请理解文章意思
其实鹚本来就不冒充别人滴,结果,你这么一报道,鹚觉得很好玩了……
@Mucid
小心我封了IP……
@zwwooooo
开着proxy,全世界ip多的是
@zwwooooo
ADSL小水管本来就变换着……
@Mucid
哈哈,如果喜欢满地方去注册邮箱还是可以的,spammer有很多方法,博主也有很多选择,这跟杀毒防毒一个道理,只是这没啥利益,何必呢?哈哈
@zwwooooo
你要说何必……那群spam,每个留言都几百条链接,而且都是乱七八糟的,我就想不通啊?
@Mucid
我是说人肉发spam,得不偿失
@Mucid
或者应该说事倍功半,不值得
也就是博主必须登录才可以发言了……
@Mucid
对,其实一般不需要加这段代码,我只是文囧折腾玩下。
先收了,反正没人去整我博客、、
@Kars
一般不需要
我的真身发言都呢称都有博主字样
我也有个类似的,效果一样,后来觉得麻烦,评论直接高亮博主评论就好了
@winy
纯css不行吧,不过说实在的,这个功能鸡薄。。。遇到变态的干脆关评论算了,哈哈哈。
@zwwooooo
还真不是css,直接在评论回调函数里输出“博主”
@winy
哈哈,也行,这样反倒省了每次提交评论要审核
呵呵 ,也一直没注意到这个问题,
@手机元素
其实不太需要注意,一般人没这么无聊
没感受到呀~
@yywr
忽略吧,没多大用处
是我冒充的,哈哈,应该可以猜到是我,因为你去我那里留言了,哈哈。
@郑永
哈哈,我懒得猜
万戈是被误会的,因为这几天是我在整这个冒充,我还去过万戈那边也冒充了,哈哈。
@郑永
你也真够蛋疼的了,这本来就是WP官方不考虑的,所以不算是bug