Nascondere, offuscare o impedire in altro modo la raccolta di indirizzi e-mail [chiuso]

5

Sto sviluppando una webapp di repository pubblico per la mia organizzazione.

Sarà una webapp pubblica, esposta a Internet. È possibile interrogare tutte le persone e le unità organizzative e verranno visualizzati i relativi dati di contatto. È sviluppato come app a pagina singola contro un back-end di REST. Probabilmente ci sarà anche un front-end mobile in futuro.

Un requisito è che le e-mail delle persone siano visibili e siano link cliccabili con l'attributo mailto:[email protected] href, in modo che gli utenti possano fare clic sull'indirizzo per iniziare rapidamente a scrivere un'email.

D'altra parte, voglio rendere difficile la raccolta di e-mail per gli spammer (so che con il requisito di cui sopra, sarà sempre possibile ottenere gli indirizzi e-mail ma non voglio che sia molto più semplice). Quindi non voglio esporre le email in chiaro nella mia API.

La versione precedente di questa app utilizzava text-to-image generato dal server per mostrare l'indirizzo, quindi il gestore onclick utilizzava una chiamata AJAX per ottenere l'indirizzo effettivo dal server (in base all'ID della persona), quindi attiva il link "mailto".

Non sembra buono generare una o due chiamate server aggiuntive per ogni persona visualizzata, specialmente quando si visualizza un elenco di risultati di ricerca. Sto pensando che probabilmente potrei fare di meglio. Ad esempio, potrei semplicemente includere il campo email nella mia API, ma offuscarlo / crittografarlo. L'app (o qualsiasi cliente futuro creato da noi come un'app mobile) saprebbe come decodificare l'indirizzo email.

C'è un modo migliore per farlo?

    
posta Pierre Henry 26.11.2015 - 11:02
fonte

3 risposte

1

Innanzitutto, lasciami dire che l'immagine è una buona soluzione e non richiede ulteriori roundtrip al server durante la visualizzazione dei risultati di ricerca: una volta generato, l'immagine può essere salvata in un file immagine sul filesystem del server e servito come semplice <img src="user337567.png"/> . Ciò significa che il server si occuperà essenzialmente di memorizzare nella cache le immagini, ricalcolandole solo nel caso in cui un indirizzo email sia cambiato. I round trip aggiuntivi al server saranno richiesti solo quando l'utente fa clic su un'immagine di un indirizzo email, ma fare clic su un'operazione eseguita in tempo umano e quindi rappresenta un sovraccarico trascurabile.

Un piccolo problema con questo approccio è che gli spammer potrebbero usare la tecnologia di riconoscimento ottico dei caratteri. Un modo per tener conto di questa possibilità sarebbe rendere gli indirizzi di posta elettronica difficili da leggere, un po 'come un captcha, ma non avrai mai una metrica che ti indichi la tua riuscita.

Altri approcci:

  1. Richiedi autenticazione.

    Rendi le pagine web della tua webapp del repository pubblico visibili a tutti i visitatori, ma nascondi gli indirizzi email. Quando un visitatore fa clic (o aleggia sopra) un indirizzo email nascosto, informa che è necessario registrarsi per poter visualizzare tali informazioni. Nel processo di registrazione, richiede un captcha. La logica dietro questo:

    È giusto che tu possa vedere i nostri indirizzi email se prima ci fai sapere il tuo, vero?

    Tieni presente che puoi persino utilizzare questo approccio oltre a per offrire gli indirizzi email come immagini selezionabili, per una maggiore sicurezza.

    Si noti inoltre che è possibile utilizzare questo approccio per proteggere molte più informazioni rispetto ai soli indirizzi e-mail. (Che cosa succede se è necessario proteggere anche i numeri di telefono in seguito?)

  2. Utilizza ulteriori misure anti-raccolta.

    Un approccio comunemente usato è quello di richiedere che i client utilizzino i cookie, in modo da essere in grado di identificare ogni cliente, e quindi tenere traccia delle richieste ricevute dal server da un client specifico, e se il client invia troppe richieste troppo velocemente , quindi aggiungerli alla lista nera. Normalmente, la blacklist significa negare qualsiasi servizio, ma nel tuo caso, la lista nera potrebbe semplicemente significare che da quel momento in poi non gli mostri più indirizzi email, o che da quel momento in poi inizi a mostrare loro immagini invece di indirizzi email.

    Tieni presente che questa è una cosa generalmente utile da avere, che potrebbe impedire diversi tipi di abuso e che potresti volerlo implementare indipendentemente da ciò che stai facendo in modo specifico per gli indirizzi email.

  3. Implementa "ti richiameremo"

    Se vuoi davvero evitare l'autenticazione, invece di visualizzare gli indirizzi e-mail, puoi avere un campo "contatto" che, quando cliccato, apre una finestra di dialogo che chiede al visitatore di inserire il loro indirizzo e-mail, (probabilmente insieme a un captcha,) e invia al visitatore un messaggio e-mail a cui il visitatore può rispondere.

risposta data 26.11.2015 - 17:15
fonte
5

Non pensare troppo alle cose, il modo più ovvio (rendere l'immagine al posto del testo) è esattamente la cosa giusta da fare qui.

Al giorno d'oggi, qualsiasi ritardo o costo di elaborazione coinvolto in una chiamata server extra sarà trascurabile rispetto al tipo di tempo impiegato da un utente per muovere un mouse e fare un clic in primo luogo. (Dal punto di vista di un computer, le persone si muovono in ultra ultra-slow motion.)

    
risposta data 26.11.2015 - 11:06
fonte
2

Perché non utilizzare un'immagine come sopra indicato e includere un indirizzo email (leggermente) crittografato per ogni immagine, insieme a una funzione Javascript locale per risolvere l'e-mail offuscata al clic? In questo modo tutto rimane single-trip, ma la maggior parte dei raccoglitori di spam non attaccheranno all'evento e cercheranno un percorso di processo per un risultato, leggeranno il tag e sperano che sia valido. Semplice ed efficace, no? Non la cura finisce tutto, ma dovrebbe fare.

    
risposta data 26.11.2015 - 16:25
fonte

Leggi altre domande sui tag