2009-08-18 6 views
12

Qualcuno è riuscito a prevenire lo spam sul proprio sito senza gravare sul visitatore (ad esempio CAPTCHA) e senza utilizzare un sistema di segnalazione centralizzata dello spam (ad es. Akismet)Come impedire lo SPAM senza CAPTCHA o un sistema gestito centralmente (es. Akismet)

ho trovato this & it looks promising, but doesn't contain detailed deployment instructions.

voglio presentare i miei moduli web senza appesantire i miei utenti con CAPTCHA come le tecnologie, ma anche ad automatizzare attivamente prevenire lo spam.

Non sembra esistere un'istruzione/tutorial dettagliato su come implementare tale tecnologia.

responsabilità

Inoltre, mi rendo conto non c'è pallottola d'argento opportuno prevenire lo spam. Ma se si mette semplicemente in atto un sistema di prevenzione non invasivo (invisibile all'utente) che blocca il 95% di spam, varrebbe la pena di implementarlo.

+0

Molte idee discusse qui http://stackoverflow.com/questions/ 8472/pratico-non-immagine-basato-approcci captcha – skaffman

+1

@skaffman, quell'articolo nel caso non l'avessi notato ha il link nel mio post originale come soluzione. La mia domanda è che, non esiste un'istruzione abbastanza dettagliata su come implementare una tale tecnologia – TimJK

+0

Mea culpa. Come lo eri. – skaffman

risposta

3

Honey Pot captcha (article by Phil Haack). È il solito metodo impiegato per fare ciò che stai cercando. Non è infallibile, ma cosa è veramente?

Questo sembra essere praticamente quello che hai già esplorato. Esegui la tua dovuta diligenza per capire quali sono i limiti della soluzione, se trovi che soddisfa le tue esigenze, assicurati che questa tecnica è stata utilizzata da altri.

1

Se ci fosse una soluzione definitiva, non ci sarebbe affatto bisogno di CAPTCHA. Tuttavia, se le dimensioni del tuo sito non sono abbastanza grandi da giustificare la ricerca manuale di un modo per hackerarlo, la sicurezza attraverso l'oscurità potrebbe essere il modo migliore. Ad esempio il link che hai fornito sopra o semplice come aggiungere un input chiamato qualcosa come "City_2" e renderlo nascosto. Se la casella di input è compilata, è probabile che tu abbia uno spammer che riempie automaticamente ogni campo, semplicemente scarica i dati e vai avanti ... Solo i miei 2 centesimi.

+1

Mentre la soluzione City_2 può essere buona, volevo commentare che "la sicurezza attraverso l'oscurità" non è affatto un tipo di sicurezza. – JasCav

+0

@Jason: i captcha in quanto tali sono "sicurezza attraverso l'oscurità", letteralmente in realtà. È necessario identificare un testo oscurato (distorto), è tutto qui. Non esiste una vera * sicurezza *, non ci sono parti nascoste, chiavi segrete precedentemente scambiate o altro. Un Captcha è solo un po 'più oscuro per una macchina che per un umano, e questo è il punto. – deceze

0

This è un'ottima soluzione di lavoro, l'utilizzo nei miei progetti.

Vale la pena di provare ...

+0

Sembra un servizio gestito centralmente per contrassegnare i miei commenti come spam o no. Preferirei avere tutto locale nel mio sistema e non fare affidamento su una terza parte. Grazie però – TimJK

0

Io uso Akismet, che è in realtà solo molto simile ad un filtro anti-spam e-mail, ma abbastanza potente come si costruisce continuamente un profilo bayesiano con le spam combinate di ogni sito utilizzando il servizio (circa 18 milioni di commenti al giorno). Il loro servizio web è estremamente semplice e molto veloce - ha appena inviato il commento sul filo e invierà una risposta "spam" o "non spam". Ci sono existing Akismet libraries per quasi tutte le piattaforme.

Sul mio sito, se il commento passa, lo metto nel database, altrimenti lo ignoro silenziosamente.

+0

Ho modificato la mia domanda, nessun sistema centralizzato di gestione dello spam per favore. (Non voglio fare affidamento su terze parti) – TimJK

1

Sbarazzarsi del 99% dello spam, si veda questo - http://wordpress-plugins.feifei.us/hashcash/

Ovviamente impedisce solo di spam, è necessario agire insieme con Akismet o qualcos'altro e ottenere una protezione al 100%.

Aggiornamento: Come funziona HashCash? Lo spamming non costa nulla (è gratis usando le botnet), ecco perché funziona. Quindi l'idea è che se questo processo può essere fatto (CPU) costoso, lo spamming/i messaggi di massa non funzionerebbero.Maggiori dettagli sono qui - http://en.wikipedia.org/wiki/Hashcash

Una versione più semplice può essere implementata utilizzando JavaScript. Prima di inviare il modulo, lo script produrrebbe un valore calcolato. Questo processo deve essere costoso per la CPU. La maggior parte delle botnet eviterebbe di farlo e quindi nessuno spam automatico.

+0

Non è chiaro come funzioni HashCash. Ti dispiace elaborare? – TimJK

+0

risposta aggiornata con ulteriori informazioni –

1

Recentemente ho provato una tecnica molto semplice. Ho notato che quando viene presentato un insieme di pulsanti radio, i bot spam sembrano scegliere sempre la prima opzione o accettare qualsiasi cosa sia stata pre-verificata. Quindi su un sito web che gestisco ho un modulo che gli utenti compilano con una mezza dozzina di domande. Una delle domande è un "tipo di voce" con i pulsanti di opzione per le scelte. Così ho aggiunto una nuova prima scelta, "I am a spammer", con un commento parentetico che spiega perché la scelta è lì, e ne ha fatto il default. Se il modulo viene inviato con quell'opzione selezionata, restituisco un messaggio di errore invece del solito messaggio di conferma. Da quando l'ho fatto, la quantità di spam che ricevo è scesa quasi a zero. Non so se ciò che è rimasto sono i robot spam che adottano una strategia diversa - scegliere casualmente tra i pulsanti di opzione disponibili - o se si tratta di spammer umani piuttosto che di robot.

Principalmente ho fatto questo come un esperimento per vedere se avrebbe funzionato, e francamente perché era divertente ingannare i bot spam in semplici confessioni e trasformazioni! Per lo più lo faccio discutere: forse contribuirà a una migliore idea.

Se uno spammer ha deciso che il mio piccolo sito valeva la pena di dedicare la loro attenzione speciale, potrebbe facilmente battere questo con un robot spam leggermente più intelligente. Ma si potrebbe dire di molti schemi anti-spam.

0

Commento generale su qualsiasi sistema anti-spam: niente di quello che si sta per essere sicuro al 100%. Se il tuo sito è abbastanza grande o abbastanza gratificante che uno spammer decide di dedicare un'attenzione particolare alla sua rottura, probabilmente troverà un modo. Ma è come se dicessero di solito sulla sicurezza domestica: certo, un ladro esperto e professionale può battere qualsiasi sistema di allarme che il proprietario di casa medio possa permettersi. Ma tieni fuori i goffi amatori, e se fai abbastanza guai per il professionista, aumenti il ​​rischio per lui che nel momento in cui lo rompe, sarai tornato a casa o un vicino lo vedrà e chiamerà il polizia. Quando lavoravo per l'esercito, facevamo regolarmente riferimento all'equilibrio tra sicurezza e impedendo agli utenti legittimi di svolgere il proprio lavoro. L'obiettivo in campo militare non è un'ipotetica "sicurezza assoluta", ma piuttosto qualcosa di buono da ridurre il rischio a "livelli accettabili" coerenti con il minimo disagio per le persone autorizzate. Ovviamente ciò che costituisce "accettabile" dipende da cosa stai proteggendo: spero certamente che le persone che stavano proteggendo le testate nucleari abbiano insistito su un livello di sicurezza più alto di quello che abbiamo messo attorno ai sistemi radar. Le persone nelle aree in cui si sospettavano gli attacchi, come le basi in Medio Oriente, avevano maggiore sicurezza di quelle che avevamo nelle basi dell'America centrale. Etc.

Punto in questione: quanto è probabile che un target sia il tuo sito? Spero davvero che la mia banca utilizzi una sicurezza più severa per proteggere i miei soldi di quanto non mi prenda la briga di usare per prevenire la trasmissione di abstract di spam sul sito della convention che gestisco. I siti che hanno milioni di visitatori e sono noti probabilmente hanno bisogno di una sicurezza migliore rispetto a siti oscuri con migliaia o centinaia di visitatori. Quanto è "abbastanza buono"?

6

Fondamentalmente uso un trucco sul mio sito per prevenire lo Spam e funziona alla grande (almeno fino a quando i programmatori spambot leggeranno questo post;)).

codice è come questo:

Nello script che costruisce il sito che contiene il modulo, ho implementato:

$_SESSION['lastSiteId'] = 'something Unique'; 
$_SESSION['lastSiteRequest'] = time(); 

Lo script che contiene la logica di scrivere i commenti a un database contenente tale :

Ricordare che questo è uno pseudocodice per darvi un'idea. Devi implementarlo tutto da solo alla fine ...;)

Tutto ciò che fa è controllare se sono passati più di 5 secondi tra il redering del modulo e l'invio di una richiesta POST.

State attenti che gli ingegneri spambot non stanno dormendo. Le scommesse sono, che gli spambot possono aspettare qualche secondo prima di postare input indesiderati se il programmatore lo vuole in quel modo. La domanda sarebbe: Quanti messaggi spam possono essere inviati se lo spammer deve attendere 5 secondi tra le richieste? Vedi, forse questa è la soluzione definitiva alla prevenzione dello spam.

Combinando i test del tempo con i test javascript (se possibile e voluto) più i trucchi dei campi nascosti precompilati/non riempiti, dovresti risparmiare qualche anno da oggi.

+0

nel momento in cui scrivo questo commento, i primi robot SPAM hanno superato il mio meccanismo di prevenzione SPAM. È il "Il tuo sito web è onore ai miei occhi. Continua a scrivere pagine di questo tipo." - Tipo di spam.Ci sono voluti quasi 2 anni per un bot di SPAM per inviare un commento al mio blog, quindi penso che il mio approccio sia buono e debba essere reso un po 'più forte. – mondjunge

0

Nel modulo (commenti o anche modulo di contatto) si dovrebbe aggiungere un ingresso nascosto

<input type="text" id="hidden_input" name="hidden_input" style="display:none;"/>

e scrivere un po 'di php per verificare se questo ingresso è pieno, quindi con una selezione 'se di altro 'è possibile controllare

if($_POST['hidden_input'] != ""){ 
    echo('<p>You are a spambot!!!</p>');  
} 

Questo perché le persone non possono vedere questo modulo, quindi non può essere riempito da noi. In questo modo infatti bot riempie ogni input, quindi se ogni input è fill PHP invia questo messaggio di errore e non invia commenti o email al server,

Problemi correlati