Il modo migliore per offuscare un indirizzo e-mail su un sito Web?


136

Ho passato gli ultimi giorni a lavorare per aggiornare il mio sito web personale. L'URL del mio sito Web personale è (il mio nome). (Il mio cognome) .com, poiché il mio cognome è piuttosto insolito e sono stato abbastanza fortunato da scegliere il nome di dominio. Il mio indirizzo e-mail è (il mio nome) @ (il mio cognome) .com. Quindi davvero, quando si tratta di indovinarlo, non è molto difficile.

Comunque, voglio integrare un mailto: link nel mio sito Web, in modo che le persone possano contattarmi. E, nonostante il mio indirizzo e-mail non sia molto difficile da indovinare, preferirei non farlo raccogliere da robot spam che eseguono semplicemente la scansione dei siti Web per i modelli di indirizzi e-mail e li aggiungono al loro database.

Qual è il modo migliore per offuscare il mio indirizzo e-mail, preferibilmente in forma di link? I metodi che conosco sono:

<a href="mailto:x@y.com">e-mail me</a>

Funziona, ma significa anche che non appena il mio sito web colpisce Google, passerò in rassegna lo spam poiché i robot spam individuano facilmente il mio indirizzo e-mail.

<img src="images/e-mail.png" />

Questo è meno desiderabile, perché non solo i visitatori non saranno in grado di fare clic su di esso per inviarmi un'e-mail, ma i robot spam più intelligenti saranno probabilmente in grado di rilevare i caratteri che l'immagine contiene.

So che probabilmente non esiste una soluzione perfetta, ma mi stavo solo chiedendo cosa tutti pensavano fosse meglio. Sono assolutamente disposto a utilizzare JavaScript se necessario, poiché il mio sito Web ne fa già uso.


10
Inoltra il messaggio al tuo account GMail. ;-)
Dave Jarvis,


Questo post dovrebbe essere collegato qui.
Clément,

Risposte:


106

Codifico i personaggi come entità HTML ( qualcosa del genere ). Non richiede l'abilitazione di JS e sembra aver bloccato la maggior parte dello spam. Suppongo che un robot intelligente potrebbe ancora raccoglierlo, ma non ho avuto problemi.


6
Questo interrompe il tipo più semplice di raccolta di spambot (regex alla ricerca di qualsiasi testo che assomigli e indirizzo e-mail) e non ha alcun aspetto negativo: è altrettanto conveniente per l'utente finale come il link esplicativo href = mailto: xxx @ yy.
Stephen C. Steel,

5
Funziona abbastanza bene perché molti (la maggior parte?) Dei cingolati / mietitori sono incredibilmente stupidi.
Jacco,

43
Secondo questo studio empirico del 2008 , la codifica URL era la meno efficace. Solo il semplice testo era peggio.
Fuhrmanator,

16
So che è in ritardo, ma vale la pena sottolineare che il suggerimento qui era di utilizzare entità HTML, che sono diverse dalla codifica URL. Secondo quello studio, l'uso di entità per i punti @ e era il secondo metodo più efficace (i più efficaci erano tre metodi legati per primi che portavano tutti a 0 messaggi di spam). Sarebbe interessante vedere se questo vale ancora circa 6 anni dopo.
Bailey Parker,

12
Trovo ironico che per proteggere la tua e-mail devi inserirla in un modulo casuale e dall'aspetto ombroso sul sito a cui ti sei collegato. Honeypotting, qualcuno? :)
srobinson,

84

Personalmente, ho rinunciato a nascondere il mio indirizzo email. Trovo più facile cercare soluzioni migliori per filtrare lo spam piuttosto che preoccuparmi di offuscare. Potresti passare giorni cercando di trovare il modo migliore per offuscare il tuo indirizzo, e poi tutto ciò che serve è una persona per vendere il tuo indirizzo a uno spammer e tutto quel lavoro era inutile.


Non importa quanto sia buono il tuo filtro antispam, ci saranno falsi negativi (le e-mail che superano quella non dovrebbero). Alla fine devi convivere con l'indirizzo e-mail, ma sembra che questo tipo di esposizione non necessaria aumenterebbe la ricorrenza dello spamming.
Brad Barker,

8
@ Brad nella mia esperienza non è stato così. Uso la posta ospitata da Google per i miei domini e il mio indirizzo email è estremamente facile da trovare. Ho avuto 0 falsi negativi e 1 falso positivo da quando ho iniziato a usarlo più di 14 mesi fa. Ricevo diverse centinaia di spam al giorno nella mia cartella spam.
Rex M

8
Ehm, dovrei aggiungere: lo spam non è un uomo nero che mangerà i tuoi figli. Ricevere un'e-mail di spam dispari non è la fine del mondo. Fai clic su "segnala spam" e vai avanti.
mancanza di palpebre

1
@Brad: se non è necessario, non fornire il tuo indirizzo. Se è necessario fornire il tuo indirizzo, preparati per lo spam. Non puoi rendere facile per un essere umano inviarti un'e-mail senza anche rendere facile per uno spambot farlo.
Chuck,

1
Pubblico anche la mia e-mail non offuscata. Uso Gmail e il filtro antispam sembra funzionare molto bene.
Asmor,

68

La soluzione attualmente accettata è quella di creare un modulo di contatto che consenta agli utenti di inviarti un'e-mail. Se ricevi molto spam da quello (io non sul mio sito), allora puoi aggiungere un captcha per buona misura, e sarai lontano dai "frutti bassi" a quel punto.

Il fatto è che se stai fornendo un link su cui un utente può fare clic per aprire il proprio client di posta elettronica con il tuo indirizzo nel campo A: allora il computer è in grado di decifrare l'indirizzo di posta elettronica dalla pagina e così può un bot di spam.


2
Vale a dire, la logica per inviare l'e-mail deve essere scritta in un codice nascosto sul lato server in modo che l'indirizzo non sia mai reso pubblico.
JoshJordan,

8
Sebbene sia una buona soluzione, tecnicamente, è una soluzione che viene offerta a molti utenti. Sto solo dicendo.
mancanza di palpebre

Hai assolutamente ragione, ma non ho mai capito il perché. Al massimo, sei a un clic di distanza dal modulo web, proprio come lo saresti almeno con un client di posta elettronica. L'unica cosa che aggiunge difficoltà è il captcha opzionale. Se un utente non è in grado di contattarlo, il suo messaggio è importante?
JoshJordan,

15
Mi piace sempre quando c'è un'opzione per CC il messaggio. L'unica cosa che mi preoccupa dei moduli di contatto è che non lascia traccia nel mio sistema di posta elettronica. (Anche se un modulo che controlla qualsiasi indirizzo e-mail può creare il proprio set di problemi.)
Sam Hasler,

6
Non c'è inoltre alcuna indicazione che il modulo e-mail abbia funzionato. Ho visto troppi che sono stati silenziosamente rotti. Le email reali rimbalzano, almeno.
Brian Carper,

44

Hai detto che questo è per il tuo sito web personale. Sul mio sito personale (ad esempio, bobsomers.com) ho solo un paragrafo che dice questo:

Il modo migliore per contattarmi prima che il nuovo sito sia attivo è inviarmi un'e-mail. Il mio indirizzo e-mail è il mio nome su questo sito Web. Se non riesci a capire da quel suggerimento, beh, potresti trovare l'e-mail più una sfida che capire il mio indirizzo.

Le persone sembrano essere in grado di capirlo bene, dato che ricevo sempre e-mail legittime. A volte le migliori soluzioni non richiedono la scrittura di alcun codice. :)


7
Questo metodo filtra anche le persone con QI inferiore a un certo livello: D
papa zulu

36

reCAPTCHA offre un semplice servizio di offuscamento della posta elettronica . Non è necessario configurare un account e puoi iniziare a usarlo immediatamente. È possibile utilizzare il servizio come collegamento o come popup.

Dopo aver risolto il captcha, il tuo indirizzo e-mail appare come href / mailto, in modo che possa essere cliccato / seguito dagli utenti che hanno configurato i loro client e-mail per funzionare con i loro browser.


questo è fantastico e funzionerà il 99,9% delle volte. Grazie per il link a. Fallirà quando il robot sta automatizzando un browser.
IEnumerator,

9
Non penso che la maggior parte degli utenti web si impegnerà a risolvere un captcha solo per inviare un'email a qualcuno.
AndyM,

7
Sono con Andy su questo. I CAPTCHA sono un dolore e i reCAPTCHA sono un dolore ancora più grande della media poiché spesso sono troppo difficili da leggere. Se le persone che ti inviano per email sono un punto di conversione (ad esempio, consentire ai clienti di informarsi sui servizi, ordinare o chiedere un preventivo), vuoi davvero renderlo il più semplice possibile per loro.
Sylverdrag,

8
Il servizio non esiste più.
sorin,

Google Mailhide è stato sospeso dal 31 marzo 2018.
sean

18

Un modo leggero per offuscare l' hrefancora è di codificarlo in base64:

> btoa('mailto:email@example.com')
< "bWFpbHRvOmVtYWlsQGV4YW1wbGUuY29t"

E poi includilo hardcoded:

<a href="javascript:window.location.href=atob('bWFpbHRvOmVtYWlsQGV4YW1wbGUuY29t')">E-Mail</a>

O dinamicamente lato server, ad esempio in PHP:

<a href="javascript:window.location.href=atob('<?= base64_encode("mailto:email@example.com") ?>')">E-Mail</a>

In combinazione con l'inversione di stringa potrebbe essere un bel salvataggio di spam:

<a href="javascript:window.location.href=atob('<?= base64_encode("mailto:email@example.com") ?>')" style="unicode-bidi: bidi-override; direction: rtl;"><?= strrev("email@example.com") ?></a>

14

Apparentemente usare CSS per cambiare la direzione del tuo testo funziona abbastanza bene. Quel link ha anche un test su un sacco di altri metodi di offuscamento.

Qualunque cosa tu usi, sarà inevitabilmente sconfitta. Il tuo obiettivo principale dovrebbe essere quello di evitare di infastidire i tuoi utenti.


4
Questo forse riempie copia e incolla? IIRC
alex

7
Quando l'indirizzo viene copiato e incollato, verrà visualizzato al contrario. Questo potrebbe essere scoraggiante per gli utenti, se vuoi che sia il più semplice possibile contattarti.
Christian Davén,

10

Non utilizzare alcuna tecnica di offuscamento qui perché è probabilmente il primo posto in cui i raccoglitori di email cercheranno di scoprire come le persone stanno offuscando le e-mail. Se devi avere il tuo indirizzo e-mail visibile sul sito non limitarti a copiare alla lettera il metodo di qualcun altro; offuscalo in un modo unico che nessun altro sito ha usato in modo che il tuo metodo non sia noto ai raccoglitori prima che visitino il tuo sito.


8
Molto ricorsivo.
Paul Tomblin,

Unniloct: la risposta di Sam Hasler si applica indipendentemente da quale sia la risposta migliore. Seguendo la tecnica di offuscamento più popolare, stai andando con l'obiettivo più probabile della raccolta.
mancanza di palpebre

A meno che la risposta migliore non sia effettivamente usare l'offuscamento :)
JoshJordan

@JoshJordan: d'accordo, in realtà ho votato per la tua risposta. Il mio punto era che qualsiasi tecnica di offuscamento popolare alla fine verrà notata dagli spammer e loro scriveranno il codice per deo-offuscarlo.
Sam Hasler,

2
Attualmente questa pagina è il 28 ° risultato restituito da Google per [indirizzo e-mail offuscato], anche se mi aspetto che alla fine aumenterà.
Sam Hasler,

8

Potresti fare come Google su Google Code (e gruppi). Visualizza una parte dell'e-mail e una parte cliccabile ("..."). Fare clic per indicare che si desidera conoscere l'e-mail e viene richiesto di compilare un captcha. Successivamente l'e-mail (e altre?) Sono visibili a te.


8

il mio è in realtà semplice:

<h3 id="email">hello@gmail.com</h3><!-- add a fake email -->


    $(document).ready(function(){
//my email in reverse :)
            var s = 'moc.elibomajninbew@htiek';
            var e = s.split("").reverse().join("");
            $('#email').html('<a href="mailto:'+e+'">'+e+'</a>');
    });

9
povero ragazzo che possiede il hello@gmail.com :)
duedl0r

2
Non ci sono e-mail su Gmail con 5 caratteri.
Paulo Ney,

6

Uso l'offuscamento JavaScript, dai un'occhiata a questo per esempio:

http://www.jottings.com/obfuscator/


2
-1: hai visto il codice che genera? In realtà non offusca il tuo indirizzo e-mail se lo includi nel "testo del link" e smentisce il suo scopo con "mailto:". Peggio ancora, è una soluzione che richiede Javascript, su cui non si dovrebbe fare affidamento per i contenuti di base.
mancanza di palpebre

6

Un sito Web che mantengo utilizza un mezzo JavaScript un po 'semplicistico per (spero) tenere fuori gli spambots.

I collegamenti e-mail richiamano una funzione JS:

funzione sendEmail (nome, dominio) {
    location.href = 'mailto:' + nome + '@' + dominio;
}

Per assicurarti che solo gli utenti che hanno JS abilitato possano vedere il link, scrivili con questo:

funzione writeEmailLink (realName, nome, dominio) {
    document.write ('<a href = "javascript: sendEmail (\' '
      + nome + '\', \ '' + dominio + '\') "> ');
    document.write (realname);
    document.write ( '</a>');
}   

L'uso di una funzione JS per scrivere un collegamento che chiama un altro significa che esistono due livelli di protezione.


4

Come ha detto un poster sopra, uso anche l'offuscamento JavaScript dal sito Web delle annotazioni .

La pagina Web genera alcuni JavaScript che possono essere migliorati. La mailto:stringa di testo è in chiaro e identificabile dai robot (che potrebbero individuare questa e non offuscare questa stringa), ma se si accede alla pagina Web jottings.com un indirizzo e-mail del modulo mailto:addr@site.tldanziché addr@site.tlde quindi rimuove il testomailto:dal JavaScript generato, si ha improvvisamente un po 'di JavaScript che non sembra avere nulla a che fare con l'e-mail - solo JavaScript casuale di cui il Web è pieno. Uno può migliorare ulteriormente eliminando il testo del link: ho sostituito il mio con un'immagine del mio indirizzo e-mail che è in un carattere abbastanza oscuro. Quindi, nel caso in cui questo metodo su jottings.com diventi popolare, ho randomizzato i nomi delle variabili nell'output JavaScript per rendere difficile per un robot individuare un'istanza di codice JavaScript generato da jottings.

Ovviamente alcuni di questi miglioramenti potrebbero essere integrati nel meccanismo sui jottings stessi, e poiché il codice è apertamente disponibile ciò sarebbe relativamente semplice.

Un esempio potrebbe renderlo un po 'più chiaro. Ho usato Jottings Obfuscator al link qui sopra per oscurare mailto:foo@bar.com(nota che sto tradendo l'intento originale del sito Web di jottings inserendo la stringa mailto:foo@bar.comanziché foo@bar.com) con il testo "Inviami e-mail", che jottings ha trasformato in questo Javascript:

<script type="text/javascript" language="javascript">
<!--
// Email obfuscator script 2.1 by Tim Williams, University of Arizona
// Random encryption key feature by Andrew Moulden, Site Engineering Ltd
// This code is freeware provided these four comment lines remain intact
// A wizard to generate this code is at http://www.jottings.com/obfuscator/
{ coded = "3A1OTJ:rJJ@VAK.GJ3"
  key = "J0K94NR2SXLupIGqVwt8EZlhznemfaPjs7QvTB6iOyWYo3rAk5FHMdxCg1cDbU"
  shift=coded.length
  link=""
  for (i=0; i<coded.length; i++) {
    if (key.indexOf(coded.charAt(i))==-1) {
      ltr = coded.charAt(i)
      link += (ltr)
    }
    else { 
      ltr = (key.indexOf(coded.charAt(i))-shift+key.length) % key.length
      link += (key.charAt(ltr))
    }
  }
document.write("<a href='mailto:"+link+"'>Send Me Email</a>")
}
//-->
</script><noscript>Sorry, you need Javascript on to email me.</noscript>

Dopo averlo recuperato, lo incollo in un editor e:

  1. Rimuovi il mailto:
  2. sostituisci il testo del link con il puntatore a un'immagine del mio indirizzo email
  3. rinominare tutte le variabili
  4. sostituisci la sezione "noscript" con un altro link all'immagine dell'indirizzo email

Concludo con questo:

<script type="text/javascript" language="javascript">
<!--
// Email obfuscator script 2.1 by Tim Williams, University of Arizona
// Random encryption kkeoy feature by Andrew Moulden, Site Engineering Ltd
// This kudzu is freeware provided these four comment lines remain intact
// A wizard to generate this kudzu is at http://www.jottings.com/obfuscator/
{ kudzu = "3A1OTJ:rJJ@VAK.GJ3"
  kkeoy = "J0K94NR2SXLupIGqVwt8EZlhznemfaPjs7QvTB6iOyWYo3rAk5FHMdxCg1cDbU"
  shift=kudzu.length
  klonk=""
  for (variter=0; variter<kudzu.length; variter++) {
    if (kkeoy.indexOf(kudzu.charAt(variter))==-1) {
      lutu = kudzu.charAt(variter)
      klonk += (lutu)
    }
    else {
      lutu = (kkeoy.indexOf(kudzu.charAt(variter))-shift+kkeoy.length) % kkeoy.length
      klonk += (kkeoy.charAt(lutu))
    }
  }
document.write("<a href='"+klonk+"'><img src='contactaddressimage.png' alt='Send Me Email' border='0' height='62' width='240'></a>")
}
//-->
</script>
<noscript>
    <img src="contactaddressimage.png" border="0" height="62" width="240">
    <font face="Arial" size="3"><br>&nbsp;</font></p>
</noscript>

3

Non so come funzionerebbe. Potresti non lasciare fuori il tuo indirizzo e-mail e farlo caricare usando una chiamata AJAX al termine del caricamento della pagina. Non sono sicuro che i robot spam possano rilevare l'HTML modificato o che siano abbastanza intelligenti da ascoltare su altro traffico HTTP per provare a scegliere gli indirizzi e-mail o se scansionano semplicemente la pagina quando viene ricevuta la prima volta.


Tempo impiegato per l'implementazione del caricamento della posta elettronica AJAX: 3 giorni. Tempo risparmiato nello spam non è necessario eliminare: 17 minuti.

2

Un ragazzo ha testato nove modi diversi di presentare un indirizzo e-mail su una pagina e poi ha pubblicato i risultati sul suo blog.

I suoi tre modi migliori erano:

  1. Modifica della direzione del codice con CSS
  2. Utilizzo della visualizzazione CSS: nessuna
  3. Crittografia ROT13

Avvertenza: è stata pubblicata due anni fa. I robot spam potrebbero essere diventati più intelligenti.


1

Se lavori con PHP, puoi prendere uno script gratuito che lo fa automaticamente. Si chiama "Private Daddy" e lo usiamo per il nostro servizio di streaming audio online. Solo una riga di codice e funziona immediatamente ... puoi prenderlo qui


Vorrei sapere perché qualcuno ha votato in negativo. Sarebbe utile spiegare.
Yannis Dran,

1

Un altro approccio potrebbe essere quello di utilizzare un framework JavaScript e associare i dati / il modello agli elementi HTML. Nel caso di AngularJS, gli elementi HTML verrebbero scritti come:

<a href="mailto:{{contactEmail}}"><span>{{contactEmail}}</span></a>

L'associazione {{data}} interpolazione utilizza una variabile ambito che contiene il valore effettivo dell'email. Inoltre, è possibile utilizzare un filtro che gestisce la decodifica dell'e-mail come segue:

<a href="mailto:{{contactEmail | decode}}"><span>{{contactEmail | decode}}</span></a>

I vantaggi sono nel modo in cui è scritto l'HTML. Il rovescio della medaglia è che richiede il supporto di scripting che alcuni potrebbero essere un no no.

solo un altro approccio.


1

Utilizzando JQuery, ma può essere facilmente portato su JS semplice se necessario. Prenderà il seguente blocco HTML. Questo esempio che ho fornito è anche per i tel:collegamenti per le telefonate.

<a class="obfuscate" 
 href="mailto:archie...trajano...net">
 archie...trajano...net
</a>
<a class="obfuscate"
 href="tel:+One FourOneSix-EightFiveSix-SixSixFiveFive">
 FourOneSix-EightFiveSix-SixSixFiveFive
</a>

e convertilo nei collegamenti corretti utilizzando Javascript.

$ (". obfuscate"). each (function () {

$ (This) .html ($ (this) .html ()
.replace ("...", "@"). sostituisci (/\.\.\./ g, ".")
.replace (/ One / g, "1")
.replace (/ Two / g, "2")
.replace (/ Tre / g, "3")
.replace (/ Four / g, "4")
.replace (/ Five / g, "5")
.replace (/ Six / g, "6")
.replace (/ Seven / g, "7")
.replace (/ Eight / g, "8")
.replace (/ Nine / g, "9")
.replace (/ Zero / g, "0"))

$ (this) .attr ("href", $ (this) .attr ("href")
.replace ("...", "@"). sostituisci (/\.\.\./ g, ".")
.replace (/ One / g, "1")
.replace (/ Two / g, "2")
.replace (/ Tre / g, "3")
.replace (/ Four / g, "4")
.replace (/ Five / g, "5")
.replace (/ Six / g, "6")
.replace (/ Seven / g, "7")
.replace (/ Eight / g, "8")
.replace (/ Nine / g, "9")
.replace (/ Zero / g, "0"))

})

L'ho documentato in modo più dettagliato qui https://trajano.net/2017/01/obfuscating-mailto-links/

L'algoritmo di de / offuscamento è piuttosto semplice, quindi non è nemmeno troppo faticoso da scrivere (non è necessario l'analisi di base64)


1

La soluzione di chiamata Ajax

La cosa migliore è avere un modulo sul sito Web e non mostrare l'indirizzo e-mail, perché tutti i robot sono più intelligenti giorno dopo giorno, ma se è necessario mostrare l'indirizzo e-mail sul sito Web, è possibile farlo con una chiamata Ajax sul proprio server e mostralo al clic.

HTML

<a class="obfmail" href="#" rel="info">click here to show email address</a>

o

<a class="obfmail" href="#" rel="info">
    <img src="img/click-to-show-email.jpg">
</a>

jQuery

$(document).one'click', '.obfmail', function(e) {
    e.preventDefault();
    a = $(this);
    addr = a.attr('rel');
    $.ajax({
        data: { 
            email: addr
        },
        url : "/a/getemail",
        type: "POST",
        dataType: 'json',
        success: function(data) {
            a.html(data.addr);
            a.attr('href', 'mailto:' + data.addr);
        }
    });
});

PHP

if($_POST['email']) {
    ...
    return json_encode(array(
        code     => '200',
        response => 'success',
        addr     => 'info@domain.ltd'
    ));
}

Per maggiore sicurezza, puoi cambiare .onin .onequesto modo $(document).one('click', '.obfmail', function(e) {o persino lavorare con un token generato da PHP che passi nei dati su una chiamata Ajax, per accettare una sola chiamata della funzione Ajax in questo modo:

html: <a class="obfmail" href="#" rel="info" token="w3487ghdr6rc">

jQuery:

...
addr = a.attr('rel');
tkn  = a.attr('token');
$.ajax({
    data: { 
        email: addr,
        token: tkn
    }, ...

.

È possibile codificare anche l'indirizzo e-mail restituito o invertirlo.

.

Funziona bene anche per i numeri di telefono!


0

Onestamente, il tuo problema potrebbe essere controverso se ti chiedessi se un mailto è davvero quello che vuoi usare. Molte persone che usano la posta web, ad esempio, o non hanno la corretta configurazione del client di posta nel proprio browser non trarranno vantaggio da un mailto. Stai esponendo il tuo indirizzo email per una funzione che non funzionerà per gran parte dei tuoi utenti.

Quello che potresti fare invece è utilizzare un modulo per inviare l'e-mail dietro le quinte in modo che l'indirizzo e-mail sia nascosto e non ti devi preoccupare dei poveracci che non beneficeranno di un mailto.


0

Se dici sul tuo sito che "Il mio indirizzo e-mail è (il mio nome) @ (il mio cognome) .com.", E il tuo nome e cognome sono dannatamente ovvi, sembra essere la migliore protezione dallo spam hai intenzione di ottenere.


le parentesi non sono effettivamente consentite nelle e-mail complete? sembra che potrebbe essere un indirizzo email valido. : p
Kzqai,

1
Questo è un altro motivo per cui i robot spam mancheranno la posta in arrivo. :-)
Decano J

0

Se qualcuno usa Rails, può usare la actionview-encoded_mail_togemma. ( https://github.com/reed/actionview-encoded_mail_to )

Ci sono alcune opzioni:

: encode - Questa chiave accetterà le stringhe "javascript" o "hex". Passare "javascript" creerà e codificherà dinamicamente il link mailto quindi lo valuterà nel DOM della pagina. Questo metodo non mostrerà il link sulla pagina se l'utente ha JavaScript disabilitato. Passare "hex" codificherà hex_indirizzo email prima di inviare il link mailto.

: replace_at - Quando non viene fornito il nome del collegamento, l'indirizzo e-mail viene utilizzato per l'etichetta del collegamento. È possibile utilizzare questa opzione per offuscare l'indirizzo e-mail sostituendo il segno @ con la stringa indicata come valore.

: replace_dot: quando non viene fornito il nome del collegamento, l'indirizzo e-mail viene utilizzato per l'etichetta del collegamento. È possibile utilizzare questa opzione per offuscare l'indirizzo e-mail sostituendo il. nell'email con la stringa indicata come valore.


0
<!-- Multi-Email Obfuscator  -->
<!-- step 1: &#064; = @  -->
<!-- step 2: a scrap element  -->
<!-- step 3: ROT13 encode for .com  -->
info<!-- step 1 -->&#064;<!-- step 2 --><b style="display:none">my</b>domain<!-- step 3 --><script>document.write(".pbz".replace(/[a-zA-Z]/g,function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);}));</script>


0

Poiché questa soluzione non è menzionata da nessuna parte, ma funziona bene per me:

Lo faccio:

  • crea un link mailto con email false. Mi piace admin@localhost.localdomain per ovvi motivi: Spammer potrebbe spammare la propria botnet quando si utilizza questo indirizzo non selezionato.

  • digita il vero indirizzo e-mail e inseriscilo in un intervallo nascosto non correlato ma reperibile o qualunque elemento ti piaccia. Ovviamente per offuscare l'e-mail e nasconderla dal raccoglitore. A seconda della struttura del progetto, potresti anche volerlo inserire in una variabile JS o Session.

  • creare un gestore di clic per questi collegamenti dopo un secondo che decifra e scrivere l'indirizzo e-mail corretto nel collegamento mailto falso che non impedisce le impostazioni predefinite. Non penso che i crawler facciano clic sui link mailto, ma se lo facessero, probabilmente non aspetteranno un secondo, mentre un essere umano dovrebbe essere estremamente veloce per fare clic su un link nel primo secondo dopo il pageload.

Ora hai un link mailto completamente funzionale ma offuscato, honeypoted e timeecured.

Esempio di file php funzionante:

<html>
<head>
<title>E-Mail Obfuscating</title>
</head>
<body>
<?php
$email = "example@email.org";
echo "<a class='emailLink' href='mailto:admin@localhost.localdomain' >Send me an e-mail!</a>"
    ."<span style='display:none' data-hash='" . base64_encode($email) . "' />";
?>
<script>
<!--
var emailLinks = document.getElementsByClassName("emailLink");
setTimeout(function() {
    for(var i=0; i <emailLinks.length; ++i){
        emailLinks[i].addEventListener("click", function(){
            let encodedEmail = this.nextSibling.getAttribute('data-hash');
            let decodedEmail = atob(encodedEmail);
            this.href = "mailto:" + decodedEmail;
            this.text = decodedEmail;
        });
    }
}, 1000);

-->
</script>
</body>
</html>

Possa il codice essere con te.


0

Cosa succede se si crea un collegamento "Contattami" che punta a una directory protetta da una password? Certo, devi dare il pass per accedere.

"Contattami"> ••••••••••••> contact / index.html

Una volta effettuato l'accesso, la pagina contact / index.html rivela l'e-mail, ad esempio un mailto.


-1

Uso una funzione PHP per generare javascript per generare l'email al caricamento della pagina. Si noti che non è necessario PHP per generare il JS in fase di esecuzione, è possibile generare il JS una volta localmente e quindi includere il JS statico nella pagina.

Puoi anche utilizzare la funzione collegata con questo frammento di seguito per offuscare automaticamente gli indirizzi e-mail in un determinato HTML (dove $ elaboratedContent è l'HTML):

 $emailMatches = array();
 $matchCount = preg_match_all('/(?:[a-zA-Z0-9_\.\-])+\@(?:(?:[a-zA-Z0-9\-])+\.)+(?:[a-zA-Z0-9]{2,4})+/', $processedContent, $emailMatches);

 if($matchCount > 0) {
    $emailMatches = $emailMatches[0];

    foreach($emailMatches as $email) {
    $replacement = createJSMailLink($email);

    $processedContent = str_replace($email, createJSMailLink($email), $processedContent);
 }

dove hai definito createJSMailLink ()?
Stelian,

-2

Controllare questo fuori.

Il "Modulo Enkoder" crittograferà il tuo indirizzo e-mail e convertirà il risultato in un JavaScript autovalutante, nascondendolo dai robot di raccolta e-mail che eseguono la scansione del Web alla ricerca di indirizzi esposti. Il tuo indirizzo verrà visualizzato correttamente dai browser web, ma sarà praticamente indecifrabile per i robot di raccolta e-mail.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.