2011年02月16日 198条评论

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

我一直知道 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. 郑永 says:

    可以加上显纯真IP吧,可以看出谁冒充。

    1. zwwooooo says:

      @郑永
      不纠结这些,谁蛋疼爱冒充谁就冒充谁,我可以当作是水贴,涨评论数。

    2. 郑永 says:

      @zwwooooo
      呵呵,我的错,兄弟,这还不是希望你们多整些代码给大伙分享一下 :)多折腾,尽量完善。

  3. 真是这样的话那人肯定也是无聊蛋疼的要死 :mrgreen:

  4. 路过看下 :mrgreen:

    1. zwwooooo says:

      @漏网小鱼
      不买酱油了?

  5. Jayuh says:

    国人喜欢最喜欢研究这种专人漏洞的东西了,哈哈!

    1. zwwooooo says:

      @Jayuh
      所以缺乏创造性,杯具

  6. 冒充!!!

    好像从来都没有碰到过!

    1. zwwooooo says:

      @古墓候梅
      其实可以直接忽视

  7. liveme says:

    这是个安全问题的修复啊 :grin:

  8. liveme says:

    这个调用到我那里去,测试发现,当没登录用博主邮箱评论时会导致整个页面像右偏移变形 :???: :???:
    是CSS问题,怎么解决。。。

    1. zwwooooo says:

      @liveme
      解决你主题的css问题啊

  9. 找生物 says:

    第一次了解这个事情

  10. 权子 says:

    不错~~~好东西~~~

  11. Junan says:

    :evil: 加在主题的function.php文件吗?

  12. 1TgoooO says:

    应该没人这么无聊吧?有人冒充也反应了你的博客受欢迎啊。
    我来冒充下了OOOO
    不过貌似你比我多一个O ,嘿嘿~:razz:

    1. zwwooooo says:

      @TgoooO
      有,但非常甚少

  13. 装了Akismet的时候被spammer冒充就悲剧了,手滑删个几次自己账户就进了黑名单= =

    1. 1Lotwen says:

      @星野苍真
      貌似近黑名单还要去给Ak发邮才有一定几率恢复… :shock:

    2. zwwooooo says:

      @星野苍真
      通常是恶意者才有所为

    3. 星野苍真 says:

      @Lotwen
      我就是手滑删了自己几次进黑名单了= =,发邮件说明之后把邮箱地址回复了,但名字要改

  14. Paran says:

    ZWW是人才 鉴定完毕

    1. zwwooooo says:

      @Paran
      人才中的废柴

  15. Lotwen says:

    这样不登陆就没法用自己的号留言了啊 = = …

    貌似见过柳城被冒充…

    1. zwwooooo says:

      @Lotwen
      嗯嗯,博主自己还是登录吧

  16. zhx says:

    这个还有冒充的啊?太恐惧啦!

    1. zwwooooo says:

      @zhx
      是啊,不过很少有人这样做

  17. IM路人 says:

    :evil: 测试有用,有空加上,嘻嘻~~~

    1. zwwooooo says:

      @IM路人
      这个不急

  18. 已经用上了,嘿嘿

  19. 确实不错滴!更新更新更健康啊 :smile:

发表评论

昵称 *

网址

B em del U Link Code Quote