Welcome To My Blog

Selasa, 11 Oktober 2011

WP Hack: Script untuk Mengatasi Komentar Spam


Anda sebagai pengguna blog pasti sudah tahu dengan Spam, diibaratkan sampah yang dapat mengganggu kesehatan kita. Begitu juga dalam blog yang dapat mengganggu Traffic dan SEO blog anda. Setiap blog pasti memiliki sebuah script atau plugin, seperti Akisment atau dengan menambahkan Captcha di form komentar. Tapi bagaimana melindungi blog Anda bahkan lebih? Tips ini mungkin bisa membantu.

Tambahkan kode berikut ke dalam file function.php theme WordPress Anda, maka apabila komentar yang mengandung salah satu kata yang terdapat dalam array $bad_comment_content akan otomatis ditolak.

Metode 1: Memblokir Kata

1 function in_comment_post_like($string, $array) {
2 foreach($array as $ref) { if(strstr($string, $ref)) { return true; } }
3 return false;
4 }
5 function drop_bad_comments() {
6 if (!empty($_POST['comment'])) {
7 $post_comment_content = $_POST['comment'];
8 $lower_case_comment = strtolower($_POST['comment']);
9 $bad_comment_content = array(
10 'viagra',
11 'hydrocodone',
12 'hair loss',
13 '[url=http',
14 '[link=http',
15 'xanax',
16 'tramadol',
17 'russian girls',
18 'russian brides',
19 'lorazepam',
20 'adderall',
21 'dexadrine',
22 'no prescription',
23 'oxycontin',
24 'without a prescription',
25 'sex pics',
26 'family incest',
27 'online casinos',
28 'online dating',
29 'cialis',
30 'best forex',
31 'amoxicillin'
32 );
33 if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
34 $comment_box_text = wordwrap(trim($post_comment_content), 80, "\n ", true);
35 $txtdrop = fopen('/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt', 'a');
36 fwrite($txtdrop, " --------------\n [COMMENT] = " . $post_comment_content . "\n --------------\n");
37 fwrite($txtdrop, " [SOURCE_IP] = " . $_SERVER['REMOTE_ADDR'] . " @ " . date("F j, Y, g:i a") . "\n");
38 fwrite($txtdrop, " [USERAGENT] = " . $_SERVER['HTTP_USER_AGENT'] . "\n");
39 fwrite($txtdrop, " [REFERER ] = " . $_SERVER['HTTP_REFERER'] . "\n");
40 fwrite($txtdrop, " [FILE_NAME] = " . $_SERVER['SCRIPT_NAME'] . " - [REQ_URI] = " . $_SERVER['REQUEST_URI'] . "\n");
41 fwrite($txtdrop, '--------------**********------------------'."\n");
42 header("HTTP/1.1 406 Not Acceptable");
43 header("Status: 406 Not Acceptable");
44 header("Connection: Close");
45 wp_die( __('Good bye spammer | Adios spammer | Selamat tinggal spammer') );
46 }
47 }
48 }
49 add_action('init', 'drop_bad_comments');

Sourcecode: wprecipes

Diatas hanyalah beberapa kata yang sering digunakan oleh spammer, jika anda ingin menambahkannya lagi, silahkan anda download daftar kata tersebut.

Metode 2: Memblokir Tautan atau URL

Metode berikut ini merupakan cara untuk memblokir autolink tautan atau url di komentar, hal ini sangat penting juga apabila ada salah satu kata (spam) dibuat dengan sebuah tautan. Tambahkan script berikut ke dalam function.php.
1 remove_filter('comment_text', 'make_clickable', 9);

Cukup mudah bukan, kini setelah anda menyimpan kode tersebut ucapkan “Selamat Tinggal Spammy Comments!.”

Tidak ada komentar:

Posting Komentar

 
Buku Tamu