Najlepszy sposób na zaciemnienie adresu e-mail na stronie internetowej?

Spędziłem ostatnie kilka dni pracując nad aktualizacją mojej osobistej strony internetowej. Adres URL mojej osobistej strony internetowej to (moje imię).(moje nazwisko).com, ponieważ moje nazwisko jest dość nietypowe, i miałem szczęście odebrać nazwę domeny. Mój adres e-mail to (moje imię)@(moje nazwisko). com. tak naprawdę, jeśli chodzi o zgadywanie, nie jest to bardzo trudne.

W każdym razie, chcę zintegrować mailto: link do mojej strony internetowej, aby ludzie mogli się ze mną skontaktować. I mimo, że mój adres e-mail nie jest bardzo trudno się domyślić, wolałbym nie mieć tego zbieranego przez spam boty, które po prostu przeszukują strony w poszukiwaniu wzorców adresów e-mail i dodają je do swojej bazy danych.

Jaki jest najlepszy sposób na zaciemnienie mojego adresu e-mail, najlepiej w formie linku? Metody, które znam to:

<a href="mailto:[email protected]">e-mail me</a>

To działa, ale oznacza to również, że jak tylko moja strona trafi do Google, będę brodząc przez spam jako spam boty łatwo wybrać mój adres e-mail.

<img src="images/e-mail.png" />
Jest to mniej pożądane, ponieważ nie tylko czy odwiedzający nie będą w stanie kliknąć na niego, aby wysłać mi e-mail, ale mądrzejsze boty spamowe prawdopodobnie będą w stanie wykryć znaki, które zawiera obraz. Wiem, że prawdopodobnie nie ma idealnego rozwiązania, ale zastanawiałem się, co wszyscy uważają za najlepsze. Jestem zdecydowanie chętny do korzystania z JavaScript, jeśli to konieczne, ponieważ moja strona już korzysta z tego Tony.
Author: AstroCB, 2009-04-14

25 answers

Koduję znaki jako encje HTML (coś takiego ). Nie wymaga włączania JS i wydaje się, że zatrzymał większość spamu. Przypuszczam, że inteligentny bot może jeszcze go pobrać, ale nie miałem żadnych problemów.

 88
Author: chroder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-14 18:29:01

Osobiście zrezygnowałem z ukrywania mojego adresu e-mail. Łatwiej mi szukać lepszych rozwiązań filtrujących spam niż martwić się o zaciemnianie. Możesz spędzić dni próbując znaleźć najlepszy sposób na zaciemnienie adresu, a potem wystarczy jedna osoba, aby sprzedać twój adres spamerowi, a cała ta praca była bezużyteczna.

 78
Author: Chad Birch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-14 18:29:38

Obecnie akceptowanym rozwiązaniem jest utworzenie formularza kontaktowego, który umożliwia użytkownikom wysyłanie wiadomości e-mail. Jeśli otrzymasz z tego dużo spamu (nie ma go na mojej stronie), możesz dodać captcha na dobrą miarę, a będziesz daleko od "nisko wiszącego owocu" w tym momencie.

Faktem jest, że jeśli podajesz link, który użytkownik może kliknąć, aby otworzyć klienta poczty e-mail z Twoim adresem w polu Do:, to komputer jest w stanie odszyfrować adres e-mail ze strony tak samo jak spam bot.

 65
Author: JoshJordan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-14 18:28:32

ReCAPTCHA oferuje prostą usługę maskowania wiadomości e-mail . Nie musisz zakładać konta i możesz natychmiast zacząć z niego korzystać. Możesz użyć usługi jako łącza lub wyskakującego okienka.

Po rozwiązaniu captcha, Twój adres e-mail pojawia się jako href/mailto, dzięki czemu może być kliknięty/śledzony przez użytkowników, którzy skonfigurowali swoich klientów e-mail do pracy z ich przeglądarkami.

 38
Author: Rich Apodaca,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-01 15:54:13

Wspomniałeś, że to dla twojej osobistej strony internetowej. Na mojej osobistej stronie (np. bobsomers.com) mam tylko akapit, który mówi tak:

The best way to get in contact with me zanim nowa strona zostanie uruchomiona, należy wysłać mi e-mail. Mój adres e-mail to mój imię na tej stronie. Jeśli nie mogę tego zrozumieć z tej podpowiedzi, cóż, może znajdziesz e-mail bardziej wyzwanie niż wymyślenie mojego adres.

Ludzie wydają się być w stanie to rozgryźć po prostu dobrze, jak dostaję legalne e-mail cały czas. Czasami najlepsze rozwiązania nie wymagają pisania żadnego kodu. :)

 35
Author: Bob Somers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-15 01:56:02

Najwyraźniej używanie CSS do zmiany kierunku tekstu działa całkiem dobrze. Ten link ma również test kilku innych metod maskowania.

Cokolwiek użyjesz, nieuchronnie zostanie pokonane. Twoim głównym celem powinno być uniknięcie denerwowania użytkowników.

 14
Author: Brian Carper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-14 18:34:33

Nie używaj tutaj żadnych technik zaciemniania, ponieważ prawdopodobnie jest to pierwsze miejsce, gdzie Żniwiarze e-maili będą szukać, aby dowiedzieć się, jak ludzie zaciemniają e-maile. Jeśli musisz mieć swój adres e-mail widoczny na stronie, nie kopiuj dosłownie cudzej metody; zaciemniaj ją w unikalny sposób, którego nie używała żadna inna strona, aby Twoja metoda nie była znana żniwiarzom przed wizytą na twojej stronie.

 11
Author: Sam Hasler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-14 21:53:50

Lekkim sposobem na zaciemnienie href kotwicy jest base64-kodowanie jej:

> btoa('mailto:[email protected]')
< "bWFpbHRvOmVtYWlsQGV4YW1wbGUuY29t"

A następnie dołącz go na twardo:

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

Lub dynamicznie po stronie serwera np. w PHP:

<a href="javascript:window.location.href=atob('<?= base64_encode("mailto:[email protected]") ?>')">E-Mail</a>

W połączeniu z odwracaniem ciągu może być całkiem spam-save:

<a href="javascript:window.location.href=atob('<?= base64_encode("mailto:[email protected]") ?>')" style="unicode-bidi: bidi-override; direction: rtl;"><?= strrev("[email protected]") ?></a>
 11
Author: Fabio Poloni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-13 08:45:06

Możesz zrobić tak jak Google na Google Code (i grupach). Wyświetla par tof e-mail i klikalną część ("..."). Kliknięcie wskazuje, że chcesz znać e-mail i zostaniesz poproszony o wypełnienie captcha. Potem e-mail(i inne?) są widoczne dla Ciebie.

 8
Author: Ross,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-15 10:45:55

Jedna strona internetowa, którą utrzymuję, używa nieco uproszczonego JavaScript, aby (miejmy nadzieję) utrzymać spamowanie.

Linki e-mail wywołują funkcję JS:

function sendEmail(name, domain) {
    location.href = 'mailto:' + name + '@' + domain;
}

Aby upewnić się, że tylko użytkownicy, którzy mają włączone JS, mogą zobaczyć link, napisz je za pomocą tego:

function writeEmailLink(realName, name, domain) {
    document.write('<a href="javascript:sendEmail(\''
      + name + '\', \'' + domain + '\')">');
    document.write(realName);
    document.write('</a>');
}   

Użycie jednej funkcji JS do wypisania łącza wywołującego inne oznacza, że istnieją dwie warstwy ochrony.

 6
Author: Stewart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-14 22:17:22

Używam obfuscation JavaScript, spójrz na to na przykład:

Http://www.jottings.com/obfuscator/

 5
Author: Codebrain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-14 18:26:47

Mój jest rzeczywiście prosty:

<h3 id="email">[email protected]</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>');
    });
 5
Author: keithics,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-20 11:01:40

Jak wspomniano powyżej na plakacie, używam również maskowania JavaScript ze strony jottings.

Strona generuje JavaScript, który można ulepszyć. mailto: ciąg tekstowy jest czytelny i identyfikowalny przez roboty( które mogłyby go wykryć i odblokować), ale jeśli ktoś wejdzie w jottings.com strony internetowej adres e-mail formularza mailto:[email protected] zamiast [email protected], a następnie usuwa tekst mailto: z generowanego JavaScript, nagle ma się jakieś JavaScript, który nie wygląda tak, jakby miał w ogóle coś wspólnego z e-mailem - po prostu losowy JavaScript, którego sieć jest pełna. Można to jeszcze poprawić, pozbywając się tekstu linku - mój zastąpiłem obrazem mojego adresu e-mail, który jest w dość niejasnej czcionce. Wtedy na wszelki wypadek ta metoda na jottings.com staje się popularne, losowe nazwy zmiennych w wyjściowym JavaScript, aby utrudnić robotowi wykrycie wystąpienia jottings wygenerowanego JavaScript kod.

Oczywiście niektóre z tych usprawnień mogłyby zostać wbudowane w mechanizm samego jottings, a ponieważ kod jest otwarty, byłoby to stosunkowo łatwe.

Przykład może to nieco wyjaśnić. Użyłem Jottings Obfuscator pod linkiem powyżej, aby obscure mailto:[email protected] (zauważ, że oszukuję pierwotną intencję strony jottings, wpisując ciąg mailto:[email protected] zamiast [email protected]) z tekstem "wyślij mi e-mail", który jottings przekształcił się w ten 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:[email protected]"
  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>

Po tym jak to odzyskam wklejam do edytora i:

  1. usuń mailto:
  2. zastąp tekst linku wskaźnikiem do obrazu mojego adresu e-mail
  3. Zmień nazwę wszystkich zmiennych
  4. zastąp sekcję "noscript" innym linkiem do obrazu adresu e-mail

Kończę z tym:

<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:[email protected]"
  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>
 4
Author: Al Whaley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-30 11:41:09

Nie wiem, jak dobrze by to działało. Czy nie możesz zostawić swojego adresu e-mail i załadować go za pomocą połączenia AJAX po zakończeniu ładowania strony. Nie jestem pewien, czy boty spamowe mogą odebrać zmieniony HTML lub czy są wystarczająco sprytne, aby słuchać innego ruchu HTTP, aby spróbować wybrać adresy e-mail lub czy po prostu skanują stronę, ponieważ jest odbierana za pierwszym razem.

 3
Author: uriDium,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-14 20:13:10

Jeden facet przetestował dziewięć różnych sposobów prezentacji adresu e-mail na stronie, a następnie opublikował wyniki na swoim blogu.

Jego trzy najlepsze sposoby to:

  1. Zmiana kierunku kodu za pomocą CSS
  2. Using CSS display: none
  3. szyfrowanie ROT13

Zastrzeżenie -- to było dodane 2 lata temu. Boty spamowe mogły być mądrzejsze.

 2
Author: Doug Harris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-03 19:38:21

Innym podejściem może być użycie frameworka JavaScript i powiązanie danych / modelu z elementami HTML. W przypadku AngularJS elementy HTML byłyby zapisane jako:

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

Powiązanie interpolacyjne {{data}} używa zmiennej scope, która zawiera rzeczywistą wartość wiadomości e-mail. Ponadto można również użyć filtra, który obsługuje dekodowanie wiadomości e-mail w następujący sposób:

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

Korzyści tkwią w sposobie pisania kodu HTML. Minusem jest to, że wymaga skryptów wsparcie, dla którego niektórzy mogą być Nie Nie.

Kolejne podejście.
 1
Author: ozkary,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-28 17:12:37

Rozwiązanie wywołania Ajax

Najlepiej jest mieć formularz na stronie internetowej, a nie pokazywać adres e-mail, ponieważ wszystkie roboty są bardziej inteligentne dzień po dniu, ale jeśli chcesz pokazać adres e-mail na stronie internetowej, więc możesz zrobić to za pomocą połączenia ajax na serwerze i pokazać go po kliknięciu.

HTML

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

Lub

<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     => '[email protected]'
    ));
}

Dla większego bezpieczeństwa możesz zmienić .on przez .one w ten sposób $(document).one('click', '.obfmail', function(e) { lub nawet pracować z tokenem generowanym przez PHP, który PRZEKAZUJESZ do danych podczas wywołania ajax, aby zaakceptować tylko jedno wywołanie funkcji ajax w ten sposób:

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

Jquery:

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

.

Możliwe jest również zakodowanie zwracanego adresu e-mail lub odwrócenie go.

.

Działa Dobrze również dla numerów telefonów !

 1
Author: Meloman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-11 20:34:58

Szczerze mówiąc, twój problem może być dyskusyjny, jeśli zadasz pytanie, czy mailto jest naprawdę tym, czego chcesz użyć. Wiele osób, które na przykład korzystają z poczty internetowej lub nie mają odpowiedniej konfiguracji klienta pocztowego w swojej przeglądarce, nie skorzysta z mailto. Ujawniasz swój adres e-mail dla funkcji, która nie będzie działać dla dużej części użytkowników.

Zamiast tego możesz użyć formularza, aby wysłać e-mail Za kulisami, aby e-mail adres jest ukryty i nie musisz się martwić o biednych saperów, którzy nie skorzystają z poczty.

 0
Author: Brad Barker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-14 18:30:56

Jeśli powiesz na swojej stronie, że "mój adres e-mail to (moje imię)@(moje nazwisko).com.", a Twoje imię i nazwisko są całkiem oczywiste, wydaje się to najlepszą ochroną przed spamem, jaką dostaniesz.

 0
Author: Dean J,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-23 15:30:36

Jeśli pracujesz z PHP, możesz pobrać darmowy skrypt, który robi to automatycznie. To się nazywa "prywatny tatuś" i używamy go do naszego własnego streamingu audio online. Wystarczy jedna linijka kodu i działa po wyjęciu z pudełka... możesz go pobrać tutaj

 0
Author: Reuven,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-07 10:36:34

Jeśli ktoś używa Rails, może użyć actionview-encoded_mail_to gem. ( https://github.com/reed/actionview-encoded_mail_to )

Istnieje kilka opcji:

: encode-ten klucz będzie akceptował łańcuchy "javascript" lub "hex". Podanie "javascript" dynamicznie utworzy i zakoduje mailto link następnie eval go do DOM strony. Ta metoda nie pokaże link na stronie, jeśli użytkownik ma wyłączoną obsługę JavaScript. Przechodząc "hex" czy hex zakoduje email_address przed wysłaniem mailto link.

: replace_at-gdy nazwa linku nie jest podana, email_address jest używany do etykiety łącza. Możesz użyć tej opcji, aby zaciemniaj adres email_address, zastępując znak @ ciągiem znaków podana jako wartość.

: replace_dot-gdy nazwa linku nie jest podana, email_address jest używany do etykiety łącza. Możesz użyć tej opcji aby zaciemnić email_address, zastępując . w mailu z the string podana jako wartość.

 0
Author: chug2k,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-24 15:17:57
<!-- 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
Author: PHC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-10 05:34:39

Używając JQuery, ale w razie potrzeby można go łatwo przenieść na zwykły JS. Zajmie następujący blok HTML. Ten przykład, który podałem, dotyczy również linków tel: do połączeń telefonicznych.

<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>

I przekonwertować go do odpowiednich linków za pomocą Javascript.

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

$(this).html($(this).html()
.replace("...", "@").replace(/\.\.\./g, ".")
.replace(/One/g, "1")
.replace(/Two/g, "2")
.replace(/Three/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("...", "@").replace(/\.\.\./g, ".")
.replace(/One/g, "1")
.replace(/Two/g, "2")
.replace(/Three/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"))

})

Udokumentowałem to bardziej szczegółowo tutaj https://trajano.net/2017/01/obfuscating-mailto-links/

Algorytm de/obfuscation jest dość prosty, więc nie jest zbyt podatny na pisanie (nie ma potrzeby parsowania base64)

 0
Author: Archimedes Trajano,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-10 01:41:37

Używam funkcja PHP do generowania javascript, aby wypisać wiadomość e-mail podczas ładowania strony. Zauważ, że nie potrzebujesz PHP do generowania JS w czasie wykonywania, możesz wygenerować js raz lokalnie, a następnie dołączyć statyczny JS na swojej stronie.

Możesz również użyć funkcji połączonej z poniższym fragmentem, aby automatycznie zaciemnić adresy e-mail w danym HTML (gdzie $processedContent jest 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);
 }
 -1
Author: iloveitaly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-26 18:00:19

Sprawdź to .

'formularz enkodera' zaszyfruje Twój adres e-mail i przekonwertuje wynik na samoocenę JavaScript, ukrywając go przed robotami zbierającymi wiadomości e-mail, które przeszukują sieć w poszukiwaniu ujawnionych adresów. Twój adres będzie poprawnie wyświetlany przez przeglądarki internetowe, ale będzie praktycznie nieczytelny dla robotów zbierających wiadomości e-mail.

 -2
Author: Zaki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-03 10:41:25