Alberto Carozzo collaboratore di GiveMeAChance editoria on line dai un futuro alle tue passioni
'' Tutte le cose sono difficili prima di diventare facili. (John Norley) '' - - '' Il buon legname non cresce facilmente. Più forte è il vento, più robusto è l'albero. (J. Willard Marriott) '' - - '' E' nel momento delle decisioni che si crea il tuo destino. (Anthony Robbins) '' - - '' Un giorno la paura bussò alla porta, il coraggio andò ad aprire ... e non c'era più nessuno. (Johann Wolfgang Goethe) '' - - '' Chi pondera a lungo prima di fare un passo, passerà la sua vita su una gamba sola. (Anthony De Mello) '' - - '' Io prendo delle decisioni. Forse non sono perfette, ma è meglio prendere delle decisioni imperfette che essere alla continua ricerca i decisioni perfette che non si troveranno mai. (Charles De Gaulle) '' - - '' La più grande scopertadella mia generazione è che un essere umano può cambiare la propria vita cambiando atteggiamento. (William James) '' - - '' L'ingrediente chiave del successo è credere veramente, e il vero successo comincia nel credere in se stessi. (Colin Turner) '' - - '' Stai attento ai tuoi pensieri, perchè diventano parole. Stai attento alle tue parole, perchè diventano abitudini. Stai attento alle tue abitudini perchè diventano carattere. Stai attento al tuo carattere, perchè diventa il tuo destino. (Frank Outlaw) '' - - '' Chiunque smetta di imparare è vecchio, che abbia venti o ottant'anni. Chiunque continua ad imparare resta giovane, la più grande cosa nella vita è mantenere la propria mente giovane. (Henry Ford) '' - - '' Oggi è il primo giorno del resto della tua vita. (Og Mandino) '' - -

Alberto Carozzo - WordPress: patch anti spam

      Questa nota deriva da una esperienza fatta sul campo: stiamo parlando degli attacchi spam al Blog WordPress.

Vi racconto la genesi dell'antefatto e quanto accaduto.

Dopo aver esaminato i tool gratuiti più in voga del Web ed analizzato le esigenze di GiveMeAChance, nella progettazione del blog, alla fine ho scelto WordPress. La release è stata scaricata da wwww.wordpress-it.it nella sua versione italiana.

In seguito, sono stati aggiunti i seguenti plugin

  • 1- wp-Captcha-contact-form-7[1].1.8.0.2.zip
  • 2- wp-affiliate.zip
  • 3- wp-adsense-manager.zip

Successivamente è stato scelto ed installato il tema: 'Coffee Desk 2.0 di Roam2Rome'.
Ma qui già sono state incontrate le prime difficoltè, infatti il captcha non funzionava correttamente e si è reso necessario l'inserimento della seguente linea di codice nel file
wp-content/themes/coffee-desk/comments.php

do_action('comment_form',$ post->ID);


Purtoppo neanche questo è stato sufficiente; qualche giorno dopo si è verificato un attacco da parte di SPAMMER: la struttura di ricezione dei commenti da parte dei visitatori veniva riempita di messaggi spammer inneggianti viagra e cose simili: il tema 'Coffee Desk 2.0 di Roam2Rome' unitamente al captcha non erano più in grado di reggere l'impatto del flooding spam.

Dopo aver studiato la forma dell'attacco e vedendo che arrivava sempre dagli stessi IP e contenente messaggi più o meno somiglianti, ho provveduto ad ampliare, dalla console di amministazione di wordpress, il numero di tags riconosciuti come spam, includendo anche gli indirizzi IP di provenienza dello spam.
Questa soluzione ha permesso di evitare la pubblicazione sul blog dei messaggi degli spammer, ma, per come è stato progettato wordpress, i messaggi venivamo comunque riconosciuti come commenti (anche se non pubblicati) e memorizzati nel DB di wordpress rischiando di ingigantire in breve tempo la tabella dei commenti stessi.

Allora per prima cosa ho creato la seguente procedura PHP per ripulire il DB

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//
// File WP_delSPAM.php
//
// Deletes all SPAM comments from wp262_comments table
//
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

// Include default settigns and connection to database
include 'common.h'; (una mia personale libreria per definire le costanti $ DB_SERVER, $ DB_USER, $ DB_PASS)

$ SPAM='spam';

$ con = mysql_connect($ DB_SERVER, $ DB_USER, $ DB_PASS);
if (!$ con) {
  echo mysql_error();
  exit;
}
if (!mysql_select_db($ DB_NAME,$ con)) {
  echo mysql_error();
  mysql_close($ con);
  exit;
}

$ query = 'DELETE FROM wp262_comments WHERE comment_approved = $ SPAM';
mysql_query($ query,$ con);
mysql_close($ con);
echo('Fatto');


Successivamente per evitare di riempire nuovamente il DB dei messaggi spamming, ho modificato il codice della funzione wp_new_comment() del file wp-includes/comment.php nel seguente modo:

function wp_new_comment( $ commentdata ) {
  $ commentdata = apply_filters('preprocess_comment', $ commentdata);

  $ commentdata['comment_post_ID'] = (int) $ commentdata['comment_post_ID'];
  $ commentdata['user_ID'] = (int) $ commentdata['user_ID'];

  $ commentdata['comment_author_IP'] = preg_replace( '/[^0-9a-fA-F:., ]/', '',$ _SERVER['REMOTE_ADDR'] );
  $ commentdata['comment_agent'] = $ _SERVER['HTTP_USER_AGENT'];

  $ commentdata['comment_date'] = current_time('mysql');
  $ commentdata['comment_date_gmt'] = current_time('mysql', 1);

  $ commentdata = wp_filter_comment($ commentdata);

  $ commentdata['comment_approved'] = wp_allow_comment($ commentdata);

  /* Inizio Vecchio codice
  $ comment_ID = wp_insert_comment($ commentdata);

  do_action('comment_post', $ comment_ID, $ commentdata['comment_approved']);

  if ( 'spam' !== $ commentdata['comment_approved'] ) { // If it's spam save it silently for later crunching
    if ( '0' == $ commentdata['comment_approved'] )
      wp_notify_moderator($ comment_ID);

      $ post = &get_post($ commentdata['comment_post_ID']); // Don't notify if it's your own comment

  if ( get_option('comments_notify') && $ commentdata['comment_approved'] && $ post->post_author != $ commentdata['user_ID'] )
    wp_notify_postauthor($ comment_ID, $ commentdata['comment_type']);
  }
  Fine Vecchio codice */

  /* Inizio Nuovo Codice */
  if ($ commentdata['comment_approved'] == 'spam'){
    $ comment_ID=-1;
  } else {
    $ comment_ID = wp_insert_comment($ commentdata);
    do_action('comment_post', $ comment_ID, $ commentdata['comment_approved']);
    if ( 'spam' !== $ commentdata['comment_approved'] ) { // If it's spam save it silently for later crunching
      if ( '0' == $ commentdata['comment_approved'] )
        wp_notify_moderator($ comment_ID);
        $ post = &get_post($ commentdata['comment_post_ID']); // Don't notify if it's your own comment
    if ( get_option('comments_notify') && $ commentdata['comment_approved'] && $ post->post_author != $ commentdata['user_ID'] )
      wp_notify_postauthor($ comment_ID, $ commentdata['comment_type']);
    }
  }
  /* Fine Nuovo Codice */

  return $ comment_ID;
}


Dopo aver filtrato taggato i messaggi dannosi come spam, svuotato il db e posto uno scudo davanti alla registrazione dei messaggi non graditi nel db, rimane da creare un popup a ritroso che invii allo spammer un messaggio di avviso del tipo:

''Sul sito www.givemeachance.it/public/Wp262/ stanno arrivando messaggi spam provenienti dall'indirizzo xx.xx.xx.xx. Preghiamo di interrompere immediatamente tale attività, diversamente saremo costretti ad esporre denuncia nei vostri confronti. Grazie GiveMeAChance''


Strumenti

 Stampa questa pagina di GiveMeAChance Editoria Online  Invia questa pagina di GiveMeAChance Editoria Online ad un amico  Registra GiveMeAChance Editoria Online nei tuoi bookmark
Newsletter e Omaggio

Novità

Partnership Program con
Edizioni La Vita Felice




R.I.D.E.
Risveglio Interiore
Dell'Essere

Emanuela Maria Brussa - R.I.D.E. - Risveglio Interiore Dell'Essere

L'unico libro che parla di TE!



Come diventare
un venditore TOP 10
su Internet


Incrementa anche tu
il tuo business
seguendo i consigli di Nicola Bertrami: successo di critica da parte dei migliori Internet Marketer Americani

Scarica Gratis

scarica gratis ebook, curiosità, video

Scarica Gratis
Più di 40 ebook, più di 50 curiosità, video ed altro ancora!

Social Network

Condividi GiveMeAChance sul tuo Social Network
Facebook LinkedIn TwitThis oknotizie MySpace
diggita segnalo Digg Google Live
Technorati Wikio IT Viadeo SphereIt YahooMyWeb
FriendFeed Segnala su Del.icio.us Segnala su reddit Segnala su newsvine Segnala su Furl
Segnala su Fark Segnala su Spurl Segnala su BlinkList Segnala su BlinkBits Segnala su Connotea
Segnala su Simpy Segnala su StumbleUpon Segnala su Linkroll Segnala su BlogMarks Segnala su SphereIt
Aggiungi su Excite Bookmark Segnala su Informazione.it Segnala su Upnews Segnala su Faves Segnala su Ma.gnolia
Aggiungi su Netvouz Aggiungi su BarraPunto Aggiungi su BlogMemes Aggiungi su Blogsvine Aggiungi su De.lirio.us
Aggiungi su Sphinn Aggiungi su Yahoo! Buzz

Iniziativa

Segui il Quadrifoglio di
GiveMeAChance

Segui il Quadrifoglio di GiveMeAChance

il prossimo autore che
pubblica Gratis
con GiveMeAChance

puoi essere tu!

Siamo su Internet Magazine

 





R.I.D.E.
Risveglio Interiore
Dell Essere

La tua Azienda sul Web:
Come avviare una
Web Presence Commerciale
Quasi GRATIS


Come diventare
un venditore TOP 10 su Internet


Il Metodo SFERA nel tennis
Come imparare a vincere



L'Albero degli Zecchini:
Un'analisi irriverente del
Sistema Bancario Italiano


Lo Stalinista



Marozia La Papessa



Ankhenaton Il Profeta di Dio


Il Vescovo di Lusaka



Una donna chiamata Gesù


Delitto a Cinecittà



Il sale sulla coda


Il Marito Virtuale



Babilonia