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

La miniserie continua:


Autore: Camu di DueChiacchiere

Leggi anche...

Come creare una Newsletter con WordPress e FeedBurner

Come creare una Newsletter con WordPress e FeedBurner

Esistono tantissimi servizi di Newsletter e Mailing List, la maggior parte dei quali è a pagamento o ha dei limiti. Tra le possibilità gratuite, è bene evitare i plugin per WordPress che girano in locale, in quanto richiedono troppe risorse per inviare le email e non sono molto affidabili. Una buona soluzione free è quella ...
WordPress: Aggiungere un feed RSS personalizzato

WordPress: Aggiungere un feed RSS personalizzato

Ci sono tantissime ragioni per cui si potrebbe voler aggiungere un feed RSS secondario: dare la possibilità ai lettori di iscriversi sia al feed completo che a quello breve; impostare un feed rss personalizzato per gli aggregatori di blog; creare una newsletter con FeedBurner; mostrare il feed in un formato particolare... Nei prossimi giorni vedremo più nel dettaglio ...
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, ...
NextGen Gallery: una galleria fotografica per Wordpress

NextGen Gallery: una galleria fotografica per WordPress

Capita spesso di aver bisogno di una galleria di immagini per il proprio blog e allora si parte alla caccia dei plugin migliori e che più rispecchiano quello che abbiamo in mente. Vi suggerisco allora il miglior plugin per creare la propria gallery: si tratta di NextGen Gallery. La parte amministrativa è veramente ben ...
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 ...

4 Commenti

  1. Mac

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

    17 aprile 2010, 17:24

3 Citazioni