2015-03-05 11 views
6

Questa è una domanda ricorrente sul sito web, ma dopo aver passato 20 minuti a sfogliare vecchie domande non sono riuscito a trovare una soluzione moderna.Come proteggere gli indirizzi e-mail su un sito Web dai moderni robot abilitati a JS?

Ho già utilizzato questo metodo basato su JS per proteggere gli indirizzi. Prima del metodo JS stavo usando soluzioni basate su immagini e flash. Di seguito è il mio vecchio modo.

esempio animato codepen: http://codepen.io/anon/pen/kIjKe/

HTML:

<span class="reverse eml">[email protected]</span><br> 

CSS:

.reverse { 
    unicode-bidi: bidi-override; 
    direction: rtl; 
} 

.eml { 
    display: inline; 
} 

JS:

function reverseEmails() { 
    if (jQuery(".eml.reverse").length > 0) { 
    jQuery(".eml.reverse").each(function() { 
     var that = jQuery(this); 
     var email = that.text().split("").reverse().join(""); 
     that.removeClass("reverse"); 
     that.html("<a href='mailto:" + email + "'>" + email + "</a>"); 
    }); 
    } 
} 

Nessuno di questi metodi sembrano funzionare nowad ays, dal momento che gli scraper basati su Node.js sono in grado di generare un'immagine della pagina che stanno raschiando, quindi leggendo qualsiasi dato leggibile dall'uomo da tale immagine - puoi indovinare il resto.

Esiste un metodo che funziona oggigiorno, in cui gli utenti sono ancora in grado di leggere/fare clic su/copiare e incollare gli indirizzi di posta elettronica, ma i bot abilitati per JS non possono farlo?

+0

IMHO non dovresti preoccupartene più ... basta usare un buon filtro spam. Riceverai comunque lo spam, anche su indirizzi che non sono pubblicati sul web. – CBroe

+1

Accettare lo spam come inevitabile è solo * sbagliato *. Non posso affermare di avere indirizzi al 100% non spam, ma sono riuscito a mantenere il livello fino al livello in cui posso ancora inviare un reclamo di abuso su tutti e ciascuno che ricevo. – tripleee

+0

La mia e-mail ha più di 10 anni e ricevo ancora solo una piccola quantità di spam. È fattibile se non sei distratto :) – red

risposta

1

Inserire l'indirizzo di posta elettronica in una pagina separata che è raggiungibile solo risolvendo un CAPTCHA.

Concesso, quindi la sicurezza è valida solo come la sicurezza del CAPTCHA.

L'utilizzo delle proprie offuscazioni può essere un'alternativa seria se si dispone solo di un numero limitato di indirizzi che si desidera proteggere. Alcune idee che ho usato in passato;

  • Cruciverba. Rendilo davvero facile, con spunti come titoli di canzoni famosi con una parola mancante (facile da google e nessun dibattito su possibili seconde interpretazioni). Puoi inserire molte lettere per renderlo ancora più semplice.
  • Registrazione audio con rumore di fondo. Non volevo usare la mia voce, quindi ho usato un sintetizzatore vocale, con accento tedesco (-: AT & T web demo IIRC) e mescolato in un paio di secondi di musica in sottofondo (Frank Zappa Peaches en regalia ha funzionato molto bene per me, ma i gusti sono diversi).
  • Immagine disegnata a mano. Mi piace disegnare i contorni delle lettere ma dubito che siano abbastanza regolari da passare qualsiasi OCR.

Il vero manzo qui non è lo splendore stellare di queste soluzioni, ma i diversi approcci che spero possano ispirarvi a pensare in nuove direzioni. Alla fine, sarai sempre più al sicuro se trovi la tua soluzione unica; qualsiasi cosa che assomigli ad un "nuovo standard de facto" sarà il frutto a più bassa pendenza che gli scraper trascorreranno del tempo cercando di cogliere.

Per inciso, ho cercato di pensare all'usabilità per le persone con disabilità, quindi ho effettivamente distribuito la versione audio come ripiego per le persone che hanno problemi con l'interazione con gli altri due, che si basano sul layout visivo.

A proposito, pochissime persone vogliono mandarmi email in questi giorni comunque (o forse lo fanno, ma finiscono per essere respinte come spam?) Che è francamente un sollievo. Quelli che in genere utilizzano le informazioni di registrazione whois per il mio nome di dominio (che utilizza un indirizzo anonimo fornito dal registratore whois) o sono dei buoni indovini.

+0

Indovina che andrò con un captcha di dialogo modale Click-to-activate che mette l'indirizzo e-mail sulla pagina se ci riesci. – red

1

Sospetto che l'intuizione sia corretta, se un indirizzo di posta elettronica viene visualizzato su una pagina, un bot può scriverlo.

La tua migliore scommessa è quella di coinvolgere il lato server in qualche modo.

Ad esempio, se si desidera solo visitatori di essere in grado di raggiungere voi, allora si può aggiungere un modulo "contattaci" come questo: https://store.theonion.com/t-contact.aspx

Se si desidera che i visitatori siano in grado di raggiungere la vicenda, poi potrebbe essere necessario creare un sistema di anonimizzazione come quelli di Craigslist.

6

Questo è il mio metodo preferito, che ho trovato funzionare sinora, non è a prova di proiettile, in teoria un bot in grado di analizzare i CSS3 e preformerà una ricerca di testo può ancora trovarlo o uno spambot che ha attivato eventi in per raccogliere gli indirizzi email sarebbe necessario alimentare la pagina in fondamentalmente un browser headless, in qualche modo determinare quali potrebbero essere i contenuti e-mail offuscati da JS questi scenari sono enormi quantità di lavoro per eventuali benefici e nessuno spammer prenderebbe in considerazione di farlo, il fatto è non ho avuto lo spam fino ad oggi e funziona benissimo per gli esseri umani, sia per leggere o fare clic su:

<style> 
    .email:after{ content:'@mydomain.com'; } 
    </style> 
    Contact me at:<div class="email">myemail</div> 
    <script> 
$('.email').click(function(){ 
window.location.href='mailto:'+$(this).html()+'@mydomain.com'; 
}); 
</script> 

il fatto è che l'email non è un collegamento in modo bot non attivano l'evento click come esimo Non so nemmeno che farà qualcosa.

+0

Trucco intelligente. Per iniziare a usare questo oggi. –

+0

Grazie per questo suggerimento, sembra abbastanza solido. – red

Problemi correlati