技術(shù)黨學(xué)起來(lái)!五種WordPress防止垃圾評論方法 |
作者:寶雞網(wǎng)絡(luò )公司 發(fā)布時(shí)間:2015-02-09 瀏覽:2422次 |
Word Press貌似和垃圾評論是一對“孿生兄弟”,無(wú)論在國內還是國外的空間主機上搭建的Wordpress博客,無(wú)論Wordpress有多少流量多么低的權重,垃圾評論都會(huì )自動(dòng)找上門(mén)來(lái),假如有好幾天沒(méi)有進(jìn)Wordpress后臺查看的話(huà),當你再一次“踏入”時(shí)卻發(fā)現垃圾評箱已經(jīng)爆滿(mǎn)了。 WordPress垃圾評論數量多容易掩蓋正常的讀者評論,批量刪除垃圾評論又容易造成誤刪,WordPress垃圾評論發(fā)布機器持續不斷地向網(wǎng)站提交評論請求,頻率足夠高的話(huà)則變演變成一種網(wǎng)站攻擊,配置差一些的網(wǎng)站主機很有可能因此而運行緩慢,嚴重者造成服務(wù)器宕機,無(wú)法正常訪(fǎng)問(wèn)。 WordPress的垃圾評論的危害是不言而喻的,對付Wordpress垃圾評論不僅要“阻斷”垃圾評論的發(fā)布,更要提前“阻止”垃圾評論的提交,要讓垃圾評論無(wú)處可藏,無(wú)機可趁。本文將分享五種Wordpress防止垃圾評論的方法,如果你正被博客的垃圾評論所困擾,可以參考文章的方法來(lái)解決。 五種Wordpress防止垃圾評論方法-過(guò)濾垃圾評論提高WP運行效率 一、Wordpress自帶的反垃圾評論設置 1、作為一個(gè)博客程序,Wordpress實(shí)際上也自帶了一些簡(jiǎn)單的防止垃圾評論的設置,如果能夠充分利用好這些功能,就能從Wordpress程序本身達到一定的反垃圾評論效果了。 2、用戶(hù)必須注冊并登錄才能發(fā)表評論。如果選擇了這一項,基本上就可以阻止所有的垃圾評論了。 3、評論者先前須評論通過(guò)了審核。勾選了這個(gè)的話(huà),第一次在Wordpress發(fā)表評論的都會(huì )進(jìn)入到審核隊列中,第二次發(fā)布評論就會(huì )自動(dòng)顯示出來(lái)了。 4、評論黑名單。當評論的內容、評論者名稱(chēng)、URL、電子郵件或IP地址中包含其中任何關(guān)鍵字時(shí),系統將自動(dòng)將評論標記為“垃圾評論”。一行一個(gè)關(guān)鍵字或IP地址。WordPress也會(huì )在詞中匹配關(guān)鍵字,例如“press”亦將匹配“WordPress”。 5、優(yōu)缺點(diǎn)分析: 1、只有注冊才能發(fā)表評論功能不適合開(kāi)啟,否則正常用戶(hù)的評論的熱情也會(huì )下降,但有人研究發(fā)現這樣會(huì )有利WP注冊用戶(hù)的增加。 2、只有之前有通過(guò)審核評論的第二次自動(dòng)顯示出來(lái),對反垃圾評論很幫助,建議開(kāi)啟,但是老用戶(hù)如果換了郵箱則又會(huì )當新用戶(hù),評論仍需審核。 3、評論黑名單功能可以搭配其它的Wordpress反垃圾評論方法一起使用,它可以起到“查漏補缺”的作用,關(guān)鍵時(shí)候發(fā)揮重要作用。 二、Wordpress智能反垃圾評論插件:Akismet 和NoSpamNX 1、Akismet 官網(wǎng): 插件地址:http://akismet.com/ 2、Akismet是Wordpress官方推薦用的反垃圾評論插件,是Wordpress自帶的。工作原理是:將留下的評論用戶(hù)記錄提交到一臺服務(wù)器,服務(wù)器根據歷史記錄(之前有沒(méi)有人把這條評論標記為 Spam),以及一些特定的算法來(lái)判斷是不是垃圾評論。 3、Akismet啟用前需要到Akismet官網(wǎng)獲得一個(gè)序列號?,F在啟用了Akismet后可以直接在后臺看到評論的統計數據。Akismet有一個(gè)好處就是它可以阻止一些已經(jīng)被判定為垃圾評論者繼續用你的博客提交評論。 4、NoSpamNX官網(wǎng): 插件地址:http://wordpress.org/plugins/nospamnx/ 5、NoSpamNX反垃圾評論的方法與Akismet不同,安裝了NoSpamNX插件后,博客評論框的 name 屬性改成了隨機數,并添加一個(gè)新的隱藏的評論框,Spambot發(fā)評論時(shí)會(huì )把隱藏的評論框也填滿(mǎn)數據,而人工評論不會(huì )是這樣。插件根據此特征從而B(niǎo)lock掉機器人的垃圾評論。 6、優(yōu)缺點(diǎn)分析: 1、Akismet優(yōu)勢在于不僅能對付機器人發(fā)布垃圾評論,也可以阻止一些人工發(fā)布垃圾評論。但是Akismet存在著(zhù)誤殺的概率,屏蔽掉的垃圾評論會(huì )留在數據庫,30天后才自動(dòng)刪除。部落發(fā)現Akismet會(huì )導致評論提交變得更耗時(shí)。 2、NoSpamNX的優(yōu)勢在于比Akismet更有效率,且不存在誤垃圾評論的問(wèn)題,也不會(huì )產(chǎn)生什么數據庫記錄。但是NoSpamNX僅僅對付垃圾評論機器人有效果,一些人工垃圾評論則可能無(wú)法阻止。 三、Wordpress評論人工驗證插件:myQaptcha,Fancy Captcha ,SI CAPTCHA 1、WordPress垃圾評論90%以上都是由機器人產(chǎn)生的,如果能夠阻止這些機器人發(fā)布的垃圾評論,Wordpress反垃圾評論也就成功了一半了。myQaptcha,Fancy Captcha ,SI CAPTCHA 就是三款用來(lái)驗證發(fā)表評論是不是人工的插件。 2、myQaptcha官網(wǎng): 插件地址:http://wordpress.org/plugins/myqaptcha/ 3、myQaptcha依據Qaptcha這個(gè)jQuery開(kāi)源plugin整合的Wordpress插件,主要作用就是在用戶(hù)發(fā)表評論前需要拖動(dòng)解鎖,機器人發(fā)表評論肯定是不能完成這個(gè)動(dòng)作的。 4、Fancy Captcha 官網(wǎng): 插件地址:http://wordpress.org/plugins/wp-fancy-captcha/ 5、Fancy Captcha與myQaptcha有點(diǎn)類(lèi)似,啟動(dòng)插件后,評論者需要拖動(dòng)指定的小工具到圓環(huán)中才可以發(fā)表評論。 6、SI CAPTCHA 官網(wǎng): 插件地址:http://wordpress.org/plugins/si-captcha-for-wordpress/ 7、SI CAPTCHA Anti-Spam 是一個(gè)WordPress 驗證碼插件,可以給注冊頁(yè)面、登錄頁(yè)面、找回密碼頁(yè)面以及評論功能等添加驗證碼,發(fā)表評論前必須輸入驗證。 8、優(yōu)缺點(diǎn)分析: 1、myQaptcha和Fancy Captcha應該是Wordpress反垃圾評論中用戶(hù)體驗做得比較好的,發(fā)表評論前只要動(dòng)一動(dòng)鼠標就可以了,但是插件可能存在與原有的主題的兼容性問(wèn)題。 2、SI CAPTCHA Anti-Spam 是一個(gè)功能強大的插件,不僅對于反垃圾評論有效果,還可以防止Wordpress惡意注冊、WP后臺賬號暴力破解等,但是難看的數字常常會(huì )擋住評論者的“腳步”。 四、Wordpress防止垃圾評論純代碼法:willin kan的反垃圾評論代碼 1、willin kan的反垃圾評論代碼在網(wǎng)上用的人比較多,實(shí)際測試效果也比較好,特別適用于那些討厭Wordpress插件、喜歡自己折騰WP程序的博主們使用。 2、將以下代碼放到你的主題的function.php中。 ■// 垃圾評論攔截 ■class anti_spam { ■function anti_spam() { ■if ( !current_user_can('level_0') ) { ■add_action('template_redirect', array($this, 'w_tb'), 1); ■add_action('init', array($this, 'gate'), 1); ■add_action('preprocess_comment', array($this, 'sink'), 1); ■} ■} ■function w_tb() { ■if ( is_singular() ) { ■ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=(["'])comment(["'])(.+)/textarea>#", ■"textarea$1name=$2w$3$4/textarea>",$input);') ); ■} ■} ■function gate() { ■if ( !empty($_POST['w']) && empty($_POST['comment']) ) { ■$_POST['comment'] = $_POST['w']; ■} else { ■$request = $_SERVER['REQUEST_URI']; ■$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '隱瞞'; ■$IP = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] . ' (透過(guò)D理)' : $_SERVER["REMOTE_ADDR"]; ■$way = isset($_POST['w']) ? '手動(dòng)操作' : '未經(jīng)評論表格'; ■$spamcom = isset($_POST['comment']) ? $_POST['comment'] : null; ■$_POST['spam_confirmed'] = "請求: ". $request. "n來(lái)路: ". $referer. "nIP: ". $IP. "n方式: ". $way. "n內容: ". $spamcom. "n -- 記錄成功 --"; ■} ■} ■function sink( $comment ) { ■if ( !empty($_POST['spam_confirmed']) ) { ■if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment; ■//方法一: 直接擋掉, 將 die(); 前面兩斜線(xiàn)刪除即可. ■die(); ■//方法二: 標記為 spam, 留在資料庫檢查是否誤判. ■//add_filter('pre_comment_approved', create_function('', 'return "spam";')); ■//$comment['comment_content'] = "[ 判斷這是 Spam! ]n". $_POST['spam_confirmed']; ■} ■return $comment; ■} ■} ■$anti_spam = new anti_spam(); 3、注意:代碼最后提供了兩種對付垃圾評論的辦法,一種是直接阻止評論,另一種是將垃圾評論放在Wordpress評論的待審核隊列中,默認的是第一種,如果你想使用第二種,請給die();加上//,然后去掉“方法二”下面代碼的//符號。 4、優(yōu)缺點(diǎn)分析: 1、直接使用純代碼就可以達到Wordpress反垃圾評論的效果,效率自然要好于使用一些Wordpress插件,這也是為什么不少人喜歡用代碼來(lái)代替插件要實(shí)現的功能。 2、willin kan的反垃圾評論代碼也有可能造成一些誤判,為了最大限度地留住所有人的評論,我們可以將評論放在待審核隊列中,方便我們自己人工來(lái)判定。 五、Wordpress防止垃圾評論純代碼法:阻止全英文和含有日文字符評論 1、根據觀(guān)察,Wordpress的垃圾評論中有95%是全英文評論和含有日文字符的評論,如果能夠禁止這些評論的提交,也就基本上達到了Wordpress防止垃圾評論的目的了。 2、將以下代碼放入function.php中,就可以阻止全英文的評論了。 ■function scp_comment_post( $incoming_comment ) { ■$pattern = '/[一-龥](méi)/u'; ■// 禁止全英文評論 ■if(!preg_match($pattern, $incoming_comment['comment_content'])) { ■wp_die( "You should type some Chinese word (like "你好") in your comment to pass the spam-check, thanks for your patience! 您的評論中必須包含漢字!" ); ■} ■return( $incoming_comment ); ■} ■add_filter('preprocess_comment', 'scp_comment_post'); 3、將以下代碼放入function.php中,就可以阻止包含任意日文字符的評論了。 ■// 禁止日文評論 ■function BYMT_comment_jp_post( $incoming_comment ) { ■$jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u'; ■if(preg_match($jpattern, $incoming_comment['comment_content'])){ ■wp_die( "禁止有日文字符的評論 You should type some Chinese word" ); ■} ■return( $incoming_comment ); ■} ■add_filter('preprocess_comment', 'BYMT_comment_jp_post'); 4、優(yōu)缺點(diǎn)分析: 1、阻止全英文評論和含有日文字符的評論效果是不錯的,從部落的使用體驗來(lái)看,基本上阻止了絕大多數的Wordpress垃圾評論,當然也一兩個(gè)“漏網(wǎng)之魚(yú)”。 2、缺點(diǎn)也很明顯,它會(huì )阻止一些正常的評論,例如有些技術(shù)性的文章會(huì )用到編程代碼,不會(huì )中文的“國際友人”等等,在評論時(shí)都會(huì )遇到無(wú)法評論的情況。 六、Wordpress防止垃圾評論方法小結 1、總得來(lái)看,Wordpress自帶的反垃圾評論功能設置+純代碼防止垃圾評論是最有效果的,也就是最有效率的,建議采用此方法的朋友先在本地做測試,防止代碼不兼容導致網(wǎng)站無(wú)法訪(fǎng)問(wèn)。 2、從用戶(hù)體驗來(lái)看,使用SI CAPTCHA 的用戶(hù)體驗是最差的,而myQaptcha和Fancy Captcha則符合人“懶”的習慣和越簡(jiǎn)單越好的心理要求,對正常的評論者不會(huì )造成太大的影響。 |