BigThink

Un aiuto ad Akismet: un plugin WordPress per bloccare gli IP

Akismet

Continuiamo con la miniserie di Camu: dopo l’introduzione al file .htaccess, andiamo a creare il plugin che lo modificherà.

Nella serie precedente abbiamo visto quale  sia il meccanismo su cui si basano i plug-in: i ganci. Associati alle azioni che avvengono in WordPress, ad essi possono essere attaccate funzioni personalizzate che fanno ciò che desideriamo.

L’idea ha avuto così tanto successo che gli stessi plug-in hanno iniziato ad usarla, mettendo a disposizione i propri hooks. Uno di questi è Akismet, noto filtro antispam gratuito per WordPress.

Cercando in rete, pare che non molti sanno che Akismet fornisce alcuni agganci, intorno ai quali è possibile sviluppare altre funzioni che ne arricchiscono le potenzialità. Nel nostro caso, ad esempio, attaccheremo una funzione al gancio akismet_spam_caught, che viene invocato subito dopo che il guardiano ha pizzicato un commento di spam.

Di fatto, la nostra funzione non fa altro che aprire in scrittura il file .htaccess, di cui ho parlato la scorsa volta, ed aggiungere in fondo (append, direbbero gli inglesi) una nuova riga con le informazioni sul malintenzionato di turno:

function blocca_ip() {
    $data_corrente = date('Ymd H:i');
    $percorso_htaccess = 'QUI INDICA IL PATH ASSOLUTO DOVE SI TROVA IL TUO .htaccess';
    // Ad esempio una cosa tipo  /home/mhd-01/miosito/htdocs/.htaccess

    file_put_contents($percorso_htaccess, 'SetEnvIf Remote_Addr "^'.str_replace('.','\.',$_SERVER['REMOTE_ADDR'])."$\" bruttoceffo=1 # $data_corrente\r\n", FILE_APPEND);
}

Agganciamo quindi la funzione ad Akismet:

add_action('akismet_spam_caught','blocca_ip');

In questo modo, la prossima volta che il “brutto ceffo” si presenterà a bussare alla porta del server web, nessuno gli aprirà.

I più attenti avranno osservato che in tutto questo procedimento non è previsto un meccanismo di perdono, e che di fatto la lista nera tende a crescere all’infinito. In effetti, con un po’ di buona volontà, è possibile scrivere un plug-in più articolato in grado di togliere un indirizzo dalla lista nera, consentendogli di nuovo l’accesso al sito (in fondo neppure Akismet è infallibile).

Ma questo esula dall’argomento che volevo affrontare in questa nuova miniserie, quindi al momento ti toccherà modificare manualmente il file .htaccess cancellando (o commentando con il cancelletto) le righe corrispondenti agli indirizzi che vuoi “perdonare”.

Nel frattempo puoi scaricare qui il codice sorgente del plug-in:

WordPress Blocca IP  WordPress Blocca IP (632 bytes) - scaricato 926 volte

La miniserie continua:


Autore: Camu di DueChiacchiere

Leggi anche...

Plugin WP: inserire un testo predefinito alla fine dei post

Plugin WP: inserire un testo predefinito alla fine dei post

Dopo aver scritto WordPress trick: inserire un testo predefinito alla fine dei post, alcuni mi hanno chiesto se potevo rilasciare un plugin che implementasse quel trick, e allora eccovi accontentati. Con Add2post potete inserire un testo a vostra scelta, in fondo a tutti i post di una determinata categoria o di un autore selezionato. ...
Integrare il pulsante "Condividi" con Facebook Connect

Integrare il pulsante “Condividi” con Facebook Connect

Praticamente tutti i blog hanno ormai un pulsante "Condividi su Facebook" che apre una noiosa finestra popup esterna per pubblicare l'articolo sulla bacheca del proprio profilo. E se invece integrassimo questa funzionalità con Facebook Connect? Cosa succederebbe? Semplice, invece di avere una finestra esterna, si aprirebbe un layer interno alla pagina con il famoso ...
Inserire blocchi di codice in WordPress evidenziando la sintassi

Inserire blocchi di codice in WordPress evidenziando la sintassi

Se gestite un blog simile al mio in cui trattate di programmazione o di sviluppo web, potreste aver bisogno di inserire dei segmenti di codice nei vostri post e magari anche la possibilità di evidenziare la sintassi come sul vostro editor preferito. A meno che non vogliate mettervi a colorare a mano ogni singola ...
WordPress: creare una sezione di post in Evidenza

WordPress: creare una sezione di post in Evidenza

Vi è mai capitato di scrivere un ottimo articolo e vederlo sparire nel tempo, senza alcuna visita o commento? Esistono varie tecniche per dare visibilità ai post più vecchi del nostro blog, che normalmente non verrebbero più letti, e portargli nuovamente visite. Possiamo usare plugin come Related Post with Thumb per mostrare gli articoli ...
WordPress: Dare agli spammer la possibilità di redimersi

WordPress: Dare agli spammer la possibilità di redimersi

Si conclude oggi la miniserie di Camu: dopo aver visto come va modificato l'.htaccess e come farlo in automatico, oggi impariamo a personalizzare la pagina di errore. Dai commenti sul mio blog alla prima puntata di questa miniserie è venuta fuori un'interessante discussione su cosa "vedono" gli spammer presenti nella lista nera quando tentano ...

4 Commenti

  1. Mac

    solo una curiosità ma doce dovrei mettere il file appena scricato?
    ciao grazie

    17 aprile 2010, 17:24

3 Citazioni