WordPress自動拒絕包含特定關鍵詞的垃圾迴響

針對WordPress站點的垃圾迴響依舊如潮水般,昨天在給自留地更換新版本主題後,忘記開啟主題內置的垃圾迴響攔截功能,沒想到就半個小時,就有幾十條垃圾迴響!所以,今天的主要話題還是如何防范垃圾迴響。

將下面的代碼添加到主題的functions.php文件,自己根據需要,修改 $ bad_comment_content 數組的內容,任何包含在$ bad_comment_content 數組內的字符,將會被自動拒絕留言。

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

function in_comment_post_like($string, $array) {
foreach($array as $ref) { if(strstr($string, $ref)) { return true; } }
return false;
}
function drop_bad_comments() {
if (!empty($_POST[‘comment’])) {
$post_comment_content = $_POST[‘comment’];
$lower_case_comment = strtolower($_POST[‘comment’]);
$bad_comment_content = array(
‘viagra’,
‘hydrocodone’,
‘hair loss’,
‘xanax’,
‘tramadol’,
‘russian girls’,
‘russian brides’,
‘lorazepam’,
‘adderall’,
‘dexadrine’,
‘no prescription’,
‘oxycontin’,
‘without a prescription’,
‘sex pics’,
‘family incest’,
‘online casinos’,
‘online dating’,
‘cialis’,
‘best forex’,
‘amoxicillin’
);
if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
$comment_box_text = wordwrap(trim($post_comment_content), 80, "\n ", true);
$txtdrop = fopen(‘/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt’, ‘a’);
fwrite($txtdrop, " ————–\n [COMMENT] = " . $post_comment_content . "\n ————–\n");
fwrite($txtdrop, " [SOURCE_IP] = " . $_SERVER[‘REMOTE_ADDR’] . " @ " . date("F j, Y, g:i a") . "\n");
fwrite($txtdrop, " [USERAGENT] = " . $_SERVER[‘HTTP_USER_AGENT’] . "\n");
fwrite($txtdrop, " [REFERER ] = " . $_SERVER[‘HTTP_REFERER’] . "\n");
fwrite($txtdrop, " [FILE_NAME] = " . $_SERVER[‘SCRIPT_NAME’] . " – [REQ_URI] = " . $_SERVER[‘REQUEST_URI’] . "\n");
fwrite($txtdrop, ‘————–**********——————‘."\n");
header("HTTP/1.1 406 Not Acceptable");
header("Status: 406 Not Acceptable");
header("Connection: Close");
wp_die( __(‘bang bang.’) );
}
}
}
add_action(‘init’, ‘drop_bad_comments’);

原文:http://www.wprecipes.com/automatically-refuse-spam-comments-on-your-wordpress-blog

發佈留言