I web scraper sono ingannati dalle e-mail oscurate? [duplicare]

25

È una pratica comune online che invece di scrivere la tua email come [email protected] persone invece la scriverà come someone AT example.com nel tentativo di rendere più difficile per i web scrapers trovare il tuo indirizzo email su un sito web.

Questo è ancora più efficace? Immagino che chiunque raschi il web per le e-mail possa altrettanto facilmente controllare un modello del genere e trasformarlo in un indirizzo e-mail.

Sono sicuro che alcune strategie di oscuramento dell'indirizzo email sono più efficaci di altre, dal momento che non tutte le combinazioni leggibili da un umano potrebbero essere spiegate in un programma, ma quelle comuni come quella che ho descritto sopra potrebbero essere trovato altrettanto facilmente.

Se stai cercando di offuscare un messaggio di posta elettronica, quale tipo di strategie potrebbero essere utilizzate per garantire che un lettore umano possa capire, ma un programma non lo farebbe? Non è possibile che il raschietto continui ad essere aggiornato per comprendere nuovi modelli non appena l'autore li trova?

    
posta DLeh 18.02.2015 - 21:23
fonte

5 risposte

18

In realtà hai diversi metodi, dovresti ovviamente considerare che tali bot che raccolgono questo contenuto stanno essenzialmente raschiando le pagine che incontrano e cercando pattern che assomigliano a indirizzi email. Come dici tu, è un po 'una corsa agli armamenti e non c'è nulla che impedisca alle persone che sviluppano tali scraper di implementare questi metodi (aspetta, è per quello che stai chiedendo?)

Nella maggior parte dei casi eviterete di creare un collegamento ipertestuale dal vostro indirizzo e-mail, e certamente volete evitare di usare mailto: - che fondamentalmente sta annunciando a chiunque legga la pagina " hey, sono un indirizzo email ".

Iniziamo con una spaziatura semplice e semplice:

m y e m a i l @ m y d o m a i n . c o m

Ovviamente è un indirizzo email per un umano, sembra un gruppo di lettere casuali con spazi per un raschietto. Non ti piace la spaziatura? Molto meno comune ma molto più infallibile è quello di convertire il tuo indirizzo email in un'immagine. È ancora leggibile dall'uomo, ma non sarà qualcosa che la maggior parte degli e-mail sta cercando, per non parlare dell'analisi.

Che ne dici di convertire la tua punteggiatura (@ e punto) nei loro equivalenti HTML ( @ e . rispettivamente)?

myemail@mydomain.com

Questo sembra ancora un indirizzo email quando viene eseguito il rendering dal browser, ma non sarà così difficile da aggirare dal punto di vista dello scraping dato che dovresti solo cercare . e @ - ma perché fermarsi qui? Perché non andare fino in fondo e basta codificare l'intero indirizzo email? Questo può essere fatto abbastanza facilmente con uno strumento come Encoder Mailto di Rumkin , improvvisamente il tuo indirizzo email assomiglia a questo:

myema%69l@my%64%6fma%69n%2e%63om

Questo rende ancora come ci si aspetterebbe da un browser, ma è fondamentalmente senza senso per quanto riguarda qualsiasi raschietto che non prenda in considerazione la codifica.

Puoi farlo anche con i CSS se sei così propenso a qualcosa del genere:

<style>
  my-email::after { content: attr(data-domain); } 
  my-email::before { content: attr(data-user); }
</style>

<my-email data-user="myemail" data-domain="mydomain.com">@</my-email>

Oppure, come già discusso su Stack Overflow , puoi semplicemente utilizzare JavaScript.

    
risposta data 18.02.2015 - 21:40
fonte
8

Nascondere la tua email usando javascript può solo farti arrivare così lontano. Esistono due tipi di motori di scraping che vengono utilizzati per raccogliere dati da un sito Web.

Classico: Il classico raschietto esegue semplicemente una richiesta GET sull'url e quindi analizza l'HTML restituito dal server.

  • Vantaggio: offre il vantaggio di una raccolta dati rapida e di un throughput più elevato sia dal punto di vista della larghezza di banda che del processore.
  • Svantaggio: in realtà non carica la pagina come un browser. Dal momento che non è stato caricato alcun DOM, qualsiasi contenuto basato su javascript non sarà disponibile per il raschietto. Ciò significa che qualsiasi metodo menzionato da Flyk funzionerà alla grande combattendo questi scraper.

Basato sul browser: i raschiatori basati sul browser sono una nuova generazione di raschietti e consentono al motore di caricare effettivamente la pagina in un "browser web". (alcuni di questi sono senza testa - phantom.js )

  • Vantaggio: questo tipo di raschietto ha la capacità di rappresentare in modo efficace una pagina Web e di raschiare i risultati esattamente come apparirebbero a un utente. Ciò significa che questo tipo di raschietto può leggere qualsiasi e-mail che è stata codificata con javascript.

  • Svantaggio: questi scraper sono anche molto più complessi da creare e richiedono un periodo di caricamento più lungo e una maggiore larghezza di banda prima che una pagina possa essere raschiata. Per questi motivi, molti scraper usano ancora lo stile classico di scraping.

Alla fine, sarebbe meglio usare javascript per codificare il tuo indirizzo e-mail anziché digitarlo semplicemente in testo normale. Se vuoi veramente la migliore protezione per la tua email, dovresti usare il metodo per creare un'immagine del tuo indirizzo email.

Le immagini possono essere lette usando l'OCR, ma la complessità è ben oltre la maggior parte dei motori di scraping.

    
risposta data 18.02.2015 - 23:55
fonte
2

Un'idea abbastanza folle potrebbe essere quella di includere l'indirizzo e-mail in un'immagine o in un testo. Immagino che questo metodo possa essere sconfitto da un programma in grado di leggere il testo nelle immagini, ma sarebbe molto più difficile da sconfiggere del semplice testo.

    
risposta data 18.02.2015 - 21:48
fonte
0

If trying to obfuscate an email, what kind of strategies could be used to ensure that a human reader can understand but a program would not?

Una soluzione alternativa (che non visualizza l'e-mail sulla pagina) consiste nell'utilizzare un modulo di contatto con un meccanismo captcha per impedire l'invio di massa.

Potresti aggiungere a questo una risposta automatica da un indirizzo email reale (uno che può essere salvato come contatto).

    
risposta data 19.02.2015 - 09:11
fonte
-2

Per essere onesti, il metodo più sicuro consiste nell'utilizzare un'immagine del tuo indirizzo email come precedentemente indicato.

Lo svantaggio principale di questo è che se gli utenti hanno immagini disabilitate, non lo vedranno. Tuttavia, questo può essere neutralizzato dal tag HTML img alt="" alt, inserendo la tua email come caratteri codificati in HTML: ad es. &#109;&#121;&#101;ma%69&#108;&#64;my%64%6fma%69&#110;%2e%63&#111;m .

Un altro lato negativo sarebbe che gli utenti non possono fare clic su questo ... semplicemente avvolgere l'immagine in un link mailto , ma ciò negherebbe completamente l'indirizzo email nascosto dagli scrapers.

    
risposta data 19.02.2015 - 12:06
fonte

Leggi altre domande sui tag