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

Some Chinese Please插件可以攔截不帶中文字的留言,效果不錯,不寫入數據庫,可有效地減少spam對服務器的無謂使用,其實可以將插件簡化一下,直接用代碼實現。

將下面代碼加到主題functions模板文件中,效果與使用插件相同。

  1. /* refused spam */
  2. function refused_spam_comments( $comment_data ) {
  3. $pattern = '/[一-龥]/u';
  4. if(!preg_match($pattern,$comment_data['comment_content'])) {
  5. wp_die('評論必須含中文!');
  6. }
  7. return( $comment_data );
  8. }
  9. add_filter('preprocess_comment','refused_spam_comments');

 

注:如果使用的是HotNews主題,請將 wp_die 替換為 err,否則顯示錯誤信息時,會造成模版錯位,其它使用ajax評論的主題也可參照修改。

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

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

可以在.htaccess文件中添加:

  1. Order Deny,Allow
  2. Deny from xxx.xxx.xxx.xx
  3. Deny from xxx.xxx.xxx.xx

禁止某些IP訪問。

 
  • 本文由 米粒在線 發表于 2013年6月30日20:44:09
  • 轉載請務必保留本文鏈接:http://m.bjmhhq.com/8504.html
網站建設

網站速度很慢?使用 WordPress 短時緩存(Transients)來優化數據庫查詢和 HTTP 響應!

每個人都想要一個速度很快的網站,網站速度越快,用戶停留和點擊頁面或購買產品的時間就越長,加快網站速度的方法之一是開啟緩存,而緩存背后的邏輯就是存儲信息,更具體一點說,就是找到一個比連接數據庫更快的存儲...

發表評論

匿名網友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
確定

拖動滑塊以完成驗證