Lo spam è una delle maggiori insidie del social web. Secondo siti come Postini, 10 messaggi di posta elettronica su 12 sono spam. Come se ciò non fosse già abbastanza per farti rabbrividire, 1 email su 39 contiene un virus. Lo spam sta penetrando anche in altre regioni di Internet. I creatori del software di blogging Wordpress riportano che quasi l'87% di tutti i commenti sul blog sono anche spam. Poiché le applicazioni di messaggistica e comunicazione proliferano su tutto il Web, gli sviluppatori e i proprietari dei siti devono diventare creativi nella lotta contro le migliaia e migliaia di messaggi indesiderati in streaming ogni giorno. Decidere sul miglior metodo di prevenzione dello spam nei tuoi blog, forum o anche moduli di contatto può essere difficile. In questo articolo daremo un'occhiata ad un servizio chiamato Akismet e come può aiutare. Vedremo anche perché alcuni altri metodi per combattere lo spam falliscono.
Disabilitazione di più invii consecutivi. Gli spammer pubblicano quasi sempre più di un commento o messaggio SPAM alla volta. Un metodo comune per combattere lo spam è quello di registrare il messaggio in arrivo con l'indirizzo IP dell'utente e un timestamp del post. Quindi, quando un utente tenta di pubblicare più commenti, è possibile verificare se l'utente ha pubblicato più di una volta all'interno di una determinata finestra di tempo, ad esempio 30 secondi, o se il poster corrente è anche l'ultimo. Questo non è un metodo a prova di proiettile perché gli spammer possono usare i proxy quando vogliono postare più volte, ei robot hanno tutto il tempo che vogliono spammare il tuo sito.
Lista nera delle parole chiave. Un altro metodo per combattere lo spam è creare una lista nera di parole chiave di spam comuni e non consentire i post contenenti le parole. Nella sua forma più semplice, puoi creare una serie di parole chiave e verificare se una stringa in arrivo le contiene. Gli spammer hanno sviluppato difese contro questo metodo pubblicando variazioni delle parole. Sostituiscono lettere con numeri, simboli e altri caratteri simili per creare un'ampia selezione di varianti di parole chiave.
CAPTCHA. CAPTCHA (Test di Turing pubblico completamente automatizzato) è una delle più comuni tecniche di prevenzione dello spam sul web oggi. La tecnica è molto utile e quasi tutti i siti che consentono di registrarsi per un account o pubblicare informazioni utilizzano pubblicamente CAPTCHA in un modo o nell'altro. I test CAPTCHA possono essere file audio, ma sono più comunemente immagini che presentano una serie di caratteri e numeri che devi inserire in un modulo. La tecnica è uno strumento utile per bloccare i robot che tentano di visitare il tuo sito per pubblicare messaggi di spam o creare account falsi con informazioni false.
CAPTCHA funziona bene per l'uso previsto, ma ci sono piccoli inconvenienti. Un CAPTCHA richiede (ancora un altro) campo che gli utenti possano compilare dopo aver inserito nomi utente, password e domande di sicurezza. C'è comprensibilmente un fattore di disturbo che accompagna il loro uso. Inoltre, gli utenti disabili potrebbero non essere in grado di utilizzare il campo CAPTCHA. Infine, gli spammer umani possono anche inviare spam al tuo sito perché un CAPTCHA blocca solo gli spammer robot.
Dopo aver esaminato alcuni dei metodi attuali e i loro punti deboli, ci si potrebbe chiedere cos'altro possiamo fare per proteggere le nostre applicazioni di blogging. Vorrei introdurre un nuovo strumento per combattere lo spamming dai creatori di WordPress. Il servizio si chiama Akismet ed è descritto dai suoi creatori come "... uno sforzo collaborativo per rendere il commento e il trackback dello spam un non-problema e ripristinare l'innocenza nei blog, così non dovrai mai più preoccuparti dello spam".
Lo strumento può essere implementato in qualsiasi progetto purché si disponga di una chiave API, che può essere utilizzata gratuitamente per uso non commerciale o acquistata per uso commerciale per un minimo di $ 5 al mese. Ci sono diversi plugin di Akismet per software esistenti, e questi sono identificati più avanti in questo articolo. In alternativa, puoi includere il servizio nei tuoi progetti come dimostreremo.
A partire da ora l'unico modo per ricevere una chiave API è registrarsi per un account utente gratuito su WordPress.com. Trasforma il tuo browser verso http://wordpress.com/signup/ e compila i normali campi obbligatori: nome utente, password ed email come mostrato di seguito, quindi leggi e accetta i termini del contratto di servizio. Assicurati di registrarti a un blog perché non puoi ricevere una chiave API senza la registrazione. Non preoccuparti di questo dettaglio, perché la chiave API non sarà legata a un blog specifico. Una volta terminato il processo di registrazione dovresti ricevere un'e-mail con la tua nuova chiave API.
Ora dovrai scaricare e decomprimere PHP5Akismet.0.4.zip (24K) da Achingbrain. Carica il singolo file php in un'area accessibile dai tuoi script. Gli altri file e la documentazione sono solo per riferimento.
Assumeremo che tu stia lavorando con un progetto esistente. Questo potrebbe essere qualsiasi cosa che permetta ai contributi degli utenti come un forum o un blog. Assumeremo anche che la logica per la creazione e la visualizzazione del contenuto esista già. Con questo in mente, il nostro primo passo è caricare il file nel nostro progetto.
include "percorso / su / file / Akismet.class.php";
Successivamente avremo bisogno di creare una nuova istanza della classe Akismet. Usando il costruttore di classi, possiamo passare la nostra chiave API e l'URL del sito che lo utilizza. Assicurati di sostituire i seguenti dati con i tuoi.
$ akismet = new Akismet ("http://myblog.com", "API KEY HERE");
Ora il servizio richiede i dati dei commenti reali che vogliamo verificare. Nell'esempio seguente sto usando alcuni dati di esempio, ma in produzione le informazioni sui commenti derivano dai dati POST. Il servizio Akismet confronta quindi le informazioni sui commenti con un database di oltre 7.486.928.953 commenti spam e restituisce un risultato se il post inviato è stato identificato come un commento spam.
$ akismet-> setCommentAuthor ("Justin Shreve"); $ Akismet-> setCommentAuthorEmail ( "[email protected]"); $ Akismet-> setCommentAuthorURL ( "http://serenelabs.com"); $ Akismet-> setCommentType ( "forum"); $ akismet-> setCommentContent ("Sono davvero d'accordo con quello che stai dicendo! Non posso credere di non averlo mai pensato prima!");
Le funzioni presentate qui sono piuttosto semplici. L'unica funzione che richiede ulteriori spiegazioni è la funzione setCommentType. Questo è usato da Akismet per aiutare il servizio a identificare l'origine del commento (è stato pubblicato su un newsgroup, forum o blog pubblico?), E puoi passare qualsiasi argomento tu voglia. Ad esempio, se si sta utilizzando la funzione per la prova di spam di una wiki, quindi utilizzare wiki come tipo. Se stai proteggendo un blog, quindi usa un tipo di blog.
Ora useremo una funzione chiamata isCommentSpam. Questa è la funzione che effettivamente contatta il servizio. La funzione booleana restituirà true se il commento è identificato come spam e falso se il commento è verificato come legittimo.
if ($ akismet-> isCommentSpam ()) // Qui possiamo archiviare la logica per gestire i commenti spam. // Di solito è possibile archiviare il commento internamente per una consultazione successiva nel caso in cui il servizio commetta un errore. else // Qui è dove si inserisce il contenuto nel database.
Usare Akismet è semplice come queste poche righe di codice! Ora hai integrato un servizio antispam nel tuo sito. Il servizio può essere utilizzato in combinazione con altre forme di difesa antispam menzionate in precedenza. Tieni presente che Akismet è un servizio che cresce ogni volta che lo utilizzi perché le funzioni contribuiscono al contenuto dello spam nel database. Potrebbero esserci dei messaggi validi a volte identificati come spam e viceversa. Di conseguenza, potremmo voler integrare un po 'più di funzionalità per gestire potenziali errori di identificazione.
Se un messaggio è erroneamente identificato come SPAM, allora puoi avvisare Akismet, che provvederà a gestirlo di conseguenza. In alternativa, puoi contrassegnare un commento come SPAM se è successo a cadere nel filtro Akismet. Quando si implementa la seguente funzionalità, assicurarsi che i dati dei commenti nelle variabili siano impostati nello stesso formato di cui sopra.
La funzione
$ Akismet-> submitHam ();
può essere usato per notificare al servizio che il commento che hanno segnalato come spam è in realtà ok.
Mentre la funzione
$ Akismet-> submitSpam ();
può essere usato per notificare al servizio che un commento che è stato approvato in realtà è un pezzo di spam.
PHP5 non è per tutti. Le librerie di Akismet sono state create anche in un sacco di altre lingue. Di seguito sono riportati alcuni dei più popolari:
Tutti questi possono essere facilmente integrati nei tuoi progetti nello stesso modo descritto sopra.
Non senti il bisogno di lanciare il tuo software ma vuoi comunque usare Akismet? Esistono già molte soluzioni per blog, CMS o software per forum:
Spero che questa guida serva come introduzione a forme alternative di combattimento spam. Un sito senza SPAM non solo appare più professionale per gli utenti, ma è anche molto più facile da gestire per amministratori e moderatori.