WP-ban屏蔽user-agent正则bug

这几周blog没怎么更新,倒是被一个botnet留了几百页的spam。发现user-agent都是统一的。WP-Ban这个插件可以屏蔽user-agent,但是设置了之后发现没有效果。一看源码这作者太n00b了。

修改wp-ban.php文件91行左右: vim ./wordpress/wp-content/plugins/wp-ban/wp-ban.php

foreach($banarray as $cban) {
    #就是在这里注释掉2行,新增两行
    #$regexp = str_replace ('.', '\\.', $cban);
    #$regexp = str_replace ('*', '.+', $regexp);

    $regexp = quotemeta ($cban) ;
    $regexp = str_replace ('\\*', '.+', $regexp);

    if(ereg("^$regexp$", $against)) {
        print_banned_message();
    }
}

我的wordpress 2.9.1硬monkey patch改动太多没法升级了。囧rz。

更新1:

好吧,有漏网之鱼,User-agent是
Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Opera 6.01 [en]

Comments