还是加上了“防止访客冒充博主发表评论”

我一直知道 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
or
oooo

“还是加上了“防止访客冒充博主发表评论””有198条评论

  1. 鲁迅 says:

    神马都是浮云

    1. zwwooooo says:

      @鲁迅
      - - 你竟然用这名和头像

  2. 这个必须要登录才可以回复吧,如果我不想登录的话,就不能用我的邮箱评论了吧

    1. zwwooooo says:

      @闲云野鹤
      应该是:必须登陆才能以博主昵称、邮箱回复/发表评论

  3. 阿里 says:

    不知道你这段代码是从哪复制的呢?

    1. zwwooooo says:

      @阿里
      我也想知道,文章里面说明了,知道者通知一下

  4. zwwooooo. says:

    如果中间加上个空格标点什么的呢

  5. zwwooooo. says:

    如果再换个头像,这样也足以以假乱真哦。。。 :arrow:

    1. zwwooooo says:

      @zwwooooo.
      这样玩的话就扔黑名单

  6. 囧啊囧 says:

    :mrgreen: 那你弄一个别人不知道的邮箱当管理员邮箱,评论的时候用另外一个邮箱

    1. zwwooooo says:

      @囧啊囧
      呵呵,不用这么折腾

  7. 万戈 says:

    囧。。。我是被冤枉的,我啥时候来冒充过了? :shock:

    1. zwwooooo says:

      @万戈
      真的吗?那可能是你的粉丝

    2. 万戈 says:

      @zwwooooo
      太邪恶了 :mad:

    3. zwwooooo says:

      @万戈
      现在可能很多人冒充了,哈哈哈

  8. 万戈 says:

    大叔你要主持公道啊,为我找出真胸 :evil:

    1. zwwooooo says:

      @万戈
      好,我主持公道:以假乱真吧,解决文囧 :mrgreen: :mrgreen: :mrgreen:

    2. zwwooooo says:

      @万戈
      真胸浮出:38楼 :mrgreen:

  9. 万戈 says:

    真的不是我~真的不是我~真的不是我~真的不是我~真的不是我~真的不是我~真的不是我~真的不是我~ :cry:

    1. zwwooooo says:

      @万戈
      哈哈哈,不管是别人冒充还是你冒充都没关系,这是好事。

  10. yixin says:

    未雨绸缪还是好的

    1. zwwooooo says:

      @yixin
      嗯嗯,都对

  11. Veezy says:

    Mucid来冒充Veezy,难道可以么?

    1. zwwooooo says:

      @Veezy
      可以吧,如果有人很无聊蛋疼不怕找骂的话。

    2. Mucid says:

      @zwwooooo
      囧,我是在测试,到底你这玩意儿可不可以防止冒充,从逻辑上分析就不可能……

    3. zwwooooo says:

      @Mucid
      囧,请理解文章意思

  12. Mucid says:

    其实鹚本来就不冒充别人滴,结果,你这么一报道,鹚觉得很好玩了……

    1. zwwooooo says:

      @Mucid
      小心我封了IP……

    2. Mucid says:

      @zwwooooo
      开着proxy,全世界ip多的是 :???:

    3. Mucid says:

      @zwwooooo
      ADSL小水管本来就变换着……

    4. zwwooooo says:

      @Mucid
      哈哈,如果喜欢满地方去注册邮箱还是可以的,spammer有很多方法,博主也有很多选择,这跟杀毒防毒一个道理,只是这没啥利益,何必呢?哈哈

    5. Mucid says:

      @zwwooooo
      你要说何必……那群spam,每个留言都几百条链接,而且都是乱七八糟的,我就想不通啊?

    6. zwwooooo says:

      @Mucid
      我是说人肉发spam,得不偿失

    7. zwwooooo says:

      @Mucid
      或者应该说事倍功半,不值得

  13. Mucid says:

    也就是博主必须登录才可以发言了……

    1. zwwooooo says:

      @Mucid
      对,其实一般不需要加这段代码,我只是文囧折腾玩下。

  14. Kars says:

    先收了,反正没人去整我博客、、

    1. zwwooooo says:

      @Kars
      一般不需要

  15. winy says:

    我的真身发言都呢称都有博主字样 :mrgreen:

  16. winy says:

    我也有个类似的,效果一样,后来觉得麻烦,评论直接高亮博主评论就好了

    1. zwwooooo says:

      @winy
      纯css不行吧,不过说实在的,这个功能鸡薄。。。遇到变态的干脆关评论算了,哈哈哈。

    2. winy says:

      @zwwooooo
      还真不是css,直接在评论回调函数里输出“博主” :mrgreen:

    3. zwwooooo says:

      @winy
      哈哈,也行,这样反倒省了每次提交评论要审核

  17. 呵呵 :evil: ,也一直没注意到这个问题,

    1. zwwooooo says:

      @手机元素
      其实不太需要注意,一般人没这么无聊

  18. yywr says:

    没感受到呀~

    1. zwwooooo says:

      @yywr
      忽略吧,没多大用处

  19. 郑永 says:

    是我冒充的,哈哈,应该可以猜到是我,因为你去我那里留言了,哈哈。

    1. zwwooooo says:

      @郑永
      哈哈,我懒得猜

  20. 郑永 says:

    万戈是被误会的,因为这几天是我在整这个冒充,我还去过万戈那边也冒充了,哈哈。

    1. zwwooooo says:

      @郑永
      你也真够蛋疼的了,这本来就是WP官方不考虑的,所以不算是bug

发表评论

昵称 *

网址

B em del U Link Code Quote