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 899 volte

La miniserie continua:


Autore: Camu di DueChiacchiere

Leggi anche...

WordPress: aggiungere un testo alla fine del feed RSS

WordPress: aggiungere un testo alla fine del feed RSS

Tempo fa ho spiegato come inserire un testo predefinito alla fine dei post, dal quale è venuto fuori anche un plugin: Add2post. Oggi vorrei fare una cosa analoga, ma con i feed RSS: vedremo quindi come inserire automaticamente un testo predefinito alla fine di ogni elemento del nostro feed, senza l'utilizzo di alcun plugin. Un ...
WordPress trick: inserire un testo predefinito alla fine dei post

WordPress trick: inserire un testo predefinito alla fine dei post

Una funzionalità che può spesso tornare utile sul vostro blog WordPress è quella di inserire un testo alla fine di alcuni post, in modo automatico. Ad esempio, una buona idea per incrementare i nostri guadagni può essere quella di inserire una breve frase, con tanto di link al programma di affiliazione, sotto tutti i ...
Un gancio per attaccarsi a WordPress

Un gancio per attaccarsi a WordPress

Con questo primo Guest Post inizia una miniserie di articoli scritti da Camu, che ci condurrà passo-passo nella personalizzazione del nostro blog WordPress. Una delle funzionalità che fanno di WordPress una piattaforma su cui sviluppare funzionalità personalizzate per il proprio sito, è la capacità di essere esteso tramite i cosiddetti plugin. Possiamo fare l'analogia con ...
Usare l'editor di WordPress all'interno dei nostri plugin

Usare l’editor di WordPress all’interno dei nostri plugin

Dopo lunghe ricerche e moltissimi test, ho finalmente trovato il modo di inserire l'editor di WordPress all'interno dei plugin creati da me. Immaginate di sviluppare un plugin WordPress, nelle cui opzioni avete una textarea dove l'utente deve poter scrivere del testo formattato. Come prima idea potrebbe venirvi in mente di utilizzare TinyMCE ed incorporare ...
WordPress trick: come risolvere il problema del feed non valido

WordPress trick: come risolvere il problema del feed non valido

Qualche volta potrà capitarvi un problema piuttosto fastidioso con WordPress: improvvisamente il vostro feed RSS risulta non più valido ed il browser si rifiuta di visualizzarlo, segnalando un errore di interpretazione XML senza un apparente motivo. Disperati, andate in cerca del problema, aggiornate la versione di WordPress e tutti i plugin attivi, ma niente, ...

1 Commento

  1. Mac

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

    17 aprile 2010, 17:24

3 Citazioni