WordPress 非插件實現攔截無中文留言

Some Chinese Please 插件能夠攔截不帶中文字的留言,以前本博客一直在用效果不錯,不寫入數據庫,可有效地減小 spam 對服務器的無謂使用,其實能夠將插件簡化一下,直接用代碼實現。將下面代碼加到主題functions模板文件中,效果與使用插件相同。ajax

/* refused spam */
function refused_spam_comments( $comment_data ) {
    $pattern = '/[一-龥]/u';
    if(!preg_match($pattern,$comment_data['comment_content'])) {
        wp_die('評論必須含中文!');
    }
    return( $comment_data );
}
add_filter('preprocess_comment','refused_spam_comments');

注:若是使用的是 HotNews 主題,請將 wp_die 替換爲 err,不然顯示錯誤信息時,會形成模版錯位,其它使用 ajax 評論的主題也可參照修改。數據庫

其它一些寫入數據庫的防 spam 插件不建議使用, 好比 WordPress 官方的防垃圾插件 Akismet 會在數據庫中留下大量的信息,增長服務器負擔。服務器

針對那些使用技術手段,好比 GET、POST 等方式不填寫前臺表單,直接讀取後臺程序文件的 spam,只有屏蔽IP才能緩解瘋狗同樣的攻勢,其它什麼驗證碼、滑動解鎖等等都沒用。spa

能夠在.htaccess文件中添加:插件

Order Deny,Allow
Deny from xxx.xxx.xxx.xx
Deny from xxx.xxx.xxx.xx

禁止某些IP訪問。code

相關文章
相關標籤/搜索