Corsi on-line

WordPress: controllo anti-spam basato sulla lunghezza degli URL

Se gestite un blog basato sull’engine Open Source WordPress, sicuramente avrete notato come il sistema dei commenti venga costantemente preso di mira dagli spammers; per limitare i disagi derivanti da questo fenomeno sono disponibili numerose estensioni, come per esempio Akismet che viene fornita di default e viene gestita direttamente dalla Auto(matt)ic fondata dal “papà” di WP, Matt Mullenweg. Una volta attivata Akismet gran parte dei commenti indesiderati dovrebbero essere bloccati, ma un semplice hack potrebbe incrementare il livello di sicurezza nella gestione degli input.

WordPress

WordPress

La procedura descritta in questo post si basa sul criterio della lunghezza degli URL, infatti, nella stragrande maggioranza dei casi gli spammers utilizzano i commenti per veicolare traffico verso risorse esterne; non di rado tali URL sono rappresentati da stringhe particolarmente “descrittive” che li rendono insolitamente lunghi.

Dovendo adottare tale criterio per il riconoscimento dello spam, si potrebbe intervenire aprendo il file “functions.php” e inserendo all’interno di esso uno snippet come il seguente:

function rkv_url_spamcheck( $approved , $commentdata ) {
    return ( strlen( $commentdata['comment_author_url'] ) > 50 ) ? 'spam' : $approved;
}
add_filter( 'pre_comment_approved', 'rkv_url_spamcheck', 99, 2 );

Nel caso specifico verranno considerati spam tutti i commenti che contengono URL più lunghi di 50 caratteri (“strlen( $commentdata[‘comment_author_url’] ) > 50”), tale valore potrà essere modificato arbitrariamente.

La soluzione proposta ha il vantaggio di controllare tutti gli URL contenuti in un commento, compreso quello relativo all’autore, ma presenta lo svantaggio di produrre non di rado falsi positivi, per cui dovrà essere utilizzata con estrema attenzione.

Via: CSS-Tricks

Post correlati
I più letti del mese
Tematiche