334-7156315 info@cinaliano.it
Traduzione e interpretariato cinese e italiano

Protezione da spam in lingua inglese

Come tutti i blog che tengono i commenti aperti, anche questo lotta costantemente contro lo spam e i messaggi più o meno pertinenti, che in alcuni giorni possono essere davvero numerosi.

Esistono dei rimedi, ognuno dei quali ha punti di forza e controindicazioni. L’ideale è combinare varie soluzioni, mantenendo un equilibrio tra facilità di interazione e pulizia. Una soluzione radicale è naturalmente quella di chiudere i commenti, però questo approccio annulla quasi del tutto la possibilità di dialogare con i lettori. Oppure, se si usa WordPress, si possono installare dei plugin appositi. Uno che sembra funzionare piuttosto bene è Hiddy Antispam: tra i suoi pregi, quello di consumare poca CPU e di essere molto leggero.

Una soluzione che sembra molto efficace è invece quella di bloccare commenti che contengano determinate parole. Questo blog è indirizzato ad un pubblico italiano o al più cinese, e quindi si è deciso di bannare ogni commento in lingua inglese, che è la lingua del 99% dello spam che arriva qua.

Con il codice seguente è possibile adattare la lista alle proprie esigenze: per utilizzarlo, bisogna copiarlo e incollarlo nel file “functions.php” prima del tag di chiusura. Poi sostituire XXXXXX e YYYYYY con le parole scelte, eventualmente aggiungendone altre. Per escludere intrusi che parlano in lingua inglese basta aggiungere parole come “your”, “free”, o altre più o meno intuibili.

Chi dovesse tentare di scrivere un commento contenente una delle parole vietate, dopo l’invio si ritroverebbe su una pagina vuota con la scritta “Il tuo commento conteneva parole vietate”. Di esso non rimane alcuna traccia.

Importante: non dimenticare di inserire una virgola alla fine delle varie parole, ma non dopo l’ultima. Fonte: qua.

   // CODICE ANTI SPAM
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']);

        // Lista di parole indesiderate
        // Commenti contenenti queste parole saranno eliminati automaticamente
        $bad_comment_content = array(
            'XXXXXX',
            'YYYYYY'
        );

        if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
            wp_die( __('Il tuo commento conteneva parole vietate.') );
        }
    }
}
add_action('init', 'drop_bad_comments');