Alberto Carozzo collaboratore di GiveMeAChance editoria on line dai un futuro alle tue passioni
'' Se non sei tu a credere a te stesso, non sperare che possano farlo gli altri. (Lance Armstrong) '' - - '' Per scoprire il futuro non è necessario essere indovini ma è assolutamente indispensabile essere anticonformisti. (Gary Hamel, C.K. Prahalad) '' - - '' A forza di seguire la corrente si finisce in qualche fogna. (Michael Connelly) '' - - '' I giovani cercano l'impossibile e generazioni dopo generazioni lo conseguono. '' - - '' Gli uomini che ragionano sempre non fanno la storia. '' - - '' Se nei prossimi 10 anni leggerai un libro al mese riguardante la tua attività, con quei centoventi libri diventerai un dei più grandi esperti che esistano nel tuo campo. (Jim Rohn) '' - - '' Penso che una volta leadership significasse imporsi, oggi è possedere le qualità necessarie per meritare la stima delle persone. (Indira Gandhi) '' - - '' Il cambiamento è automatico, il progresso no. (Anthony Robbins) '' - - '' Uccidi il mostro finchè è piccolo. '' - - '' Solo colui che conosce poco la natura umana cerca la felicità cambiando qualsiasi cosa fuorchè la propria indole. (Samuel Johnson) '' - - '' Tutte le cose sono difficili prima di diventare facili. (John Norley) '' - -

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''


Lettore di ebook


iRex Technologies
iLiad 2nd Edition
Finalmente puoi leggere i tuoi eBook sul più avanzato dispositivo di lettura elettronica e scrittura digitale disponibile sul mercato.

Cerca su Amazon

Le tue domande

Sei alla ricerca
di altre Risposte?
Inviaci la tue
Domande !!





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

RSS News
RSS Blog

Newsletter e Omaggio

Novità

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!

 




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


Delitto a Cinecittà



Il sale sulla coda


Il Marito Virtuale



Babilonia


Il Vescovo di Lusaka



Una donna chiamata Gesù