Melhor maneira de ocultar um endereço de email em um site?


136

Passei os últimos dias trabalhando na atualização do meu site pessoal. A URL do meu site pessoal é (meu primeiro nome). (Meu sobrenome) .com, como meu sobrenome é bastante incomum e tive a sorte de escolher o nome de domínio. Meu endereço de e-mail é (meu primeiro nome) @ (meu sobrenome) .com. Realmente, quando se trata de adivinhar, não é muito difícil.

De qualquer forma, quero integrar um link mailto: no meu site, para que as pessoas possam entrar em contato comigo. E, apesar de meu endereço de email não ser muito difícil de adivinhar, prefiro que não seja coletado por bots de spam que apenas rastreiam sites em busca de padrões de endereços de email e os adicionam ao banco de dados.

Qual é a melhor maneira de ocultar meu endereço de e-mail, de preferência no formato de link? Os métodos que eu conheço são:

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

Funciona, mas também significa que, assim que meu site acessar o Google, passarei por spam, pois os bots de spam escolhem meu endereço de e-mail com facilidade.

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

Isso é menos desejável, porque não apenas os visitantes não podem clicar nele para me enviar um e-mail, mas os bots de spam mais inteligentes provavelmente serão capazes de detectar os caracteres que a imagem contém.

Sei que provavelmente não existe uma solução perfeita, mas estava me perguntando o que todo mundo achava melhor. Definitivamente, estou disposto a usar o JavaScript, se necessário, pois meu site já faz uso de toneladas dele.


10
Encaminhe a mensagem para sua conta do GMail. ;-)
Dave Jarvis


Esta postagem deve estar vinculada aqui.
Clément

Respostas:


106

Eu codifico os caracteres como entidades HTML ( algo como isto ). Ele não requer que o JS esteja ativado e parece ter parado a maior parte do spam. Suponho que um bot inteligente ainda possa colhê-lo, mas não tive problemas.


6
Isso interrompe o tipo mais simples de colheita de spambot (regex procurando por qualquer texto que se assemelhe a endereço de e-mail) e não tem desvantagens: é tão conveniente para o usuário final quanto o link explict href = mailto: xxx @ yy.
22320 Stephen C. Steel

5
Isso funciona muito bem porque muitos (a maioria?) Dos rastreadores / colheitadeiras são incrivelmente estúpidos.
11119 Jacco

43
De acordo com este estudo empírico de 2008 , a codificação de URL foi a penúltima eficaz. Somente texto simples era pior.
Fuhrmanator

16
Eu sei que isso é tarde, mas vale a pena ressaltar que a sugestão aqui foi usar entidades HTML, que são diferentes da codificação de URL. De acordo com esse estudo, o uso de entidades para os períodos @ e foi o segundo método mais eficaz (os mais eficazes foram três métodos vinculados primeiro que resultaram em 0 mensagens de spam). Seria interessante ver se isso ainda dura quase 6 anos depois.
Bailey Parker

12
Acho irônico que, para proteger seu e-mail, você tenha que inseri-lo em um formulário aleatório e de aparência sombria no site ao qual você vinculou. Honeypotting, alguém? :)
srobinson

84

Pessoalmente, desisti de ocultar meu endereço de e-mail. Acho mais fácil procurar soluções melhores de filtragem de spam do que se preocupar com ofuscar. Você pode passar dias tentando encontrar a melhor maneira de ofuscar seu endereço e, em seguida, basta uma pessoa para vendê-lo a um remetente de spam e todo esse trabalho foi inútil.


Não importa quão boa seja sua filtragem de spam, haverá falsos negativos (os e-mails que passarem por isso não devem). Por fim, você precisa viver com o endereço de email, mas parece que esse tipo de exposição desnecessária aumentaria a recorrência do spam.
23410 Brad Barker

8
@ Brad na minha experiência, este não foi o caso. Uso o correio hospedado pelo Google para meus domínios e meu endereço de e-mail é extremamente fácil de encontrar. Eu tive 0 falsos negativos e 1 falso positivo desde que comecei a usá-lo há mais de 14 meses. Recebo várias centenas de spams por dia na minha pasta de spam.
Rex M

8
Devo acrescentar: o spam não é um bicho-papão que vai comer seus filhos. Receber um e-mail de spam estranho não é o fim do mundo. Clique em "denunciar spam" e siga em frente.
Eyelidlessness

1
@ Brad: Se for desnecessário, não forneça seu endereço. Se for necessário fornecer seu endereço, prepare-se para o spam. Você não pode facilitar para um ser humano enviar um e-mail para você, sem também facilitar para um spambot fazer isso.
Chuck

1
Acabei de postar meu e-mail também não ofuscado. Eu uso o gmail, e o filtro de spam parece funcionar notavelmente bem.
Asmor 22/04/09

68

A solução atualmente aceita é criar um formulário de contato que permita aos usuários enviar um e-mail a você. Se você receber muito spam com isso (não recebo no meu site), poderá adicionar um captcha para uma boa medida e estará longe das "frutas baixas" naquele momento.

O fato é que, se você estiver fornecendo um link no qual um usuário possa clicar para abrir seu cliente de email com o seu endereço no campo Para:, o computador poderá decifrar o endereço de email da página e assim poderá um bot de spam.


2
Ou seja, a lógica para enviar o email deve ser escrita em um código oculto no servidor, para que o endereço nunca seja tornado público.
JoshJordan

8
Embora seja uma boa solução, tecnicamente, é uma solução que é útil para muitos usuários. Apenas dizendo'.
Eyelidlessness

Você está absolutamente certo, mas nunca entendi o porquê. No máximo, você está a apenas um clique do formulário da web, exatamente como faria no mínimo com um cliente de email. A única coisa que adiciona dificuldade é o captcha opcional. Se um usuário não pode passar por isso para entrar em contato com você, a mensagem foi importante?
JoshJordan

15
Eu sempre gosto quando há uma opção para enviar a mensagem a você. A única coisa que me incomoda nos formulários de contato é que ele não deixa nenhum registro no meu próprio sistema de email. (Embora um formulário que CCs qualquer endereço de e-mail pode criar o seu próprio conjunto de problemas.)
Sam Hasler

6
Também não há indicação de que o formulário de email realmente funcionou. Eu já vi muitos que foram silenciosamente quebrados. E-mails reais são devolvidos, pelo menos.
22830 Brian Carper

44

Você mencionou que este é para o seu site pessoal. No meu site pessoal (por exemplo, bobsomers.com), apenas tenho um parágrafo que diz o seguinte:

A melhor maneira de entrar em contato comigo antes do lançamento do novo site é me enviar um email. Meu endereço de e-mail é meu primeiro nome neste site. Se você não conseguir descobrir a partir dessa dica, bem, você pode achar um e-mail mais desafiador do que descobrir meu endereço.

As pessoas parecem capazes de descobrir isso muito bem, pois recebo e-mails legítimos o tempo todo. Às vezes, as melhores soluções não exigem a gravação de nenhum código. :)


7
Este método também filtra as pessoas com QI inferior a um certo nível: D
papa zulu

36

O reCAPTCHA oferece um serviço simples de ofuscação de e-mail . Você não precisa configurar uma conta e pode começar a usá-la imediatamente. Você pode usar o serviço como um link ou como um pop-up.

Depois que o captcha é resolvido, seu endereço de email aparece como um href / mailto, para que ele possa ser clicado / seguido pelos usuários que configuraram seus clientes de email para trabalhar com seus navegadores.


isso é ótimo e funcionará 99,9% do tempo. Obrigado pelo link para. Ele falhará quando o bot estiver automatizando um navegador.
IEnumerator

9
Não acho que a maioria dos usuários da Web se esforce para resolver um captcha apenas para enviar um e-mail a alguém.
AndyM

7
Eu estou com Andy nisso. CAPTCHA é uma dor, e reCAPTCHA é uma dor ainda maior que a média, pois geralmente é muito difícil de ler. Se as pessoas que enviam um e-mail a você são um ponto de conversão (por exemplo, permitindo que os clientes consultem serviços, façam pedidos ou solicitem uma cotação), você realmente deseja facilitar o máximo possível para que eles façam isso.
26410 Sylverdrag

8
O serviço não existe mais.
sorin

O Google Mailhide foi descontinuado desde 31 de março de 2018.
sean

18

Uma maneira leve de ofuscar a hrefâncora é codificá-la com base64:

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

E depois inclua-o codificado:

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

Ou dinamicamente do lado do servidor, por exemplo, no PHP:

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

Em combinação com a reversão de strings, pode ser bastante economizador de 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

Aparentemente, usando CSS para mudar a direção do seu texto funciona muito bem. Esse link também tem um teste de vários outros métodos de ofuscação.

Tudo o que você usar será inevitavelmente derrotado. Seu principal objetivo deve ser evitar incomodar os usuários.


4
Isso pode copiar e colar, talvez? IIRC
alex

7
Quando o endereço é copiado e colado, ele será exibido ao contrário. Isso pode ser desanimador para os usuários, se você quiser que seja o mais fácil possível entrar em contato com você.
Christian Davén

10

Não use técnicas de ofuscação aqui, porque provavelmente é o primeiro lugar que os coletores de e-mail procurarão para descobrir como as pessoas estão ofuscando e-mails. Se você precisa ter seu endereço de e-mail visível no site, não copie literalmente o método de outra pessoa; ofuscá-lo de uma maneira única que nenhum outro site usou para que seu método não seja conhecido pelos harvesters antes que eles visitem o site.


8
Como é muito recursivo.
21715 Paul Tomblin

Unililt: a resposta de Sam Hasler se aplica independentemente da resposta principal. Seguindo a técnica de ofuscação mais popular, você está indo com o alvo mais provável de colheita.
Eyelidlessness

A menos que a resposta de topo é não realmente usar ofuscação :)
JoshJordan

@ Josh Jordan: concordou, na verdade votei na sua resposta. Meu argumento é que qualquer técnica popular de ofuscação acabará sendo notada pelos spammers e eles escreverão um código para desofuscá-la.
21339 Sam Hasler

2
Atualmente, esta página é o 28º resultado retornado pelo google para [ofuscar endereço de email], embora eu espere que aumente mais eventualmente.
21339 Sam Hasler

8

Você pode fazer o que o Google faz no Google Code (e Groups). Exiba uma parte do email e uma parte clicável ("..."). Clicando que indica que você deseja saber o e-mail, e você é solicitado a preencher um captcha. Depois, o e-mail (e outros?) Ficam visíveis para você.


8

o meu é realmente simples:

<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
pobre rapaz que possui o hello@gmail.com :)
duedl0r

2
Não há e-mails no Gmail com 5 caracteres.
Paulo Ney

6

Eu uso ofuscação JavaScript, dê uma olhada neste por exemplo:

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


2
-1: você olhou o código que ele gera? Na verdade, ele não ofusca seu endereço de e-mail se você o incluir no "texto do link" e desmente seu objetivo com "mailto:". Pior, é uma solução que requer Javascript, na qual não se deve confiar no conteúdo básico.
Eyelidlessness

6

Um site que eu mantenho usa um meio JavaScript bastante simplista de (espero) manter os spambots fora.

Os links de email chamam uma função JS:

função sendEmail (nome, domínio) {
    location.href = 'mailto:' + nome + '@' + domínio;
}

Para garantir que apenas os usuários com o JS ativado possam ver o link, escreva-os com isso:

função writeEmailLink (nome real, nome, domínio) {
    document.write ('<a href = "javascript: sendEmail (\' '
      + nome + '\', \ '' + domínio + '\') "> ');
    document.write (nome real);
    document.write ('</a>');
}   

O uso de uma função JS para gravar um link que chama outro significa que existem duas camadas de proteção.


4

Como o pôster acima disse, eu também uso a ofuscação de JavaScript no site de anotações .

A página da web gera algum JavaScript que pode ser aprimorado. A mailto:sequência de texto é clara e identificável por robôs (que podem identificar e ocultar essa sequência), mas se alguém entrar na página da web do jottings.com um endereço de email do formulário em mailto:addr@site.tldvez deaddr@site.tld e depois remover o textomailto:a partir do JavaScript gerado, de repente se tem um JavaScript que não parece ter nada a ver com email - apenas JavaScript aleatório, com o qual a web está cheia. Pode-se melhorar ainda mais eliminando o texto do link - substituí o meu por uma imagem do meu endereço de email que está em uma fonte bastante obscura. Então, caso esse método no jottings.com se torne popular, eu escolhi aleatoriamente os nomes das variáveis ​​no JavaScript de saída para tornar difícil para um robô identificar uma instância do código JavaScript gerado pelo jottings.

Obviamente, algumas dessas melhorias poderiam ser incorporadas ao mecanismo das próprias anotações e, como o código está disponível abertamente, isso seria relativamente fácil.

Um exemplo pode deixar isso um pouco mais claro. Usei o Jottings Obfuscator no link acima para obscurecer mailto:foo@bar.com(note que estou enganando a intenção original do site de jottings, inserindo a string em mailto:foo@bar.comvez de foo@bar.com) com o texto "Send Me Email", que as anotações se transformaram neste 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>

Depois de recuperá-lo, colo-o em um editor e:

  1. remova o mailto:
  2. substituir o texto do link pelo ponteiro para uma imagem do meu endereço de email
  3. renomeie todas as variáveis
  4. substitua a seção "noscript" por outro link para a imagem do endereço de email

Termino com isso:

<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

Não sei como isso funcionaria. Você não pode deixar seu endereço de e-mail de fora e carregá-lo usando uma chamada AJAX assim que a página terminar de carregar. Não tenho certeza se os robôs de spam podem captar o HTML alterado ou se são espertos o suficiente para escutar em outro tráfego HTTP para tentar escolher endereços de email ou se apenas digitalizam a página quando ela é recebida pela primeira vez.


Tempo gasto implementando a implementação de carregamento de e-mail AJAX: 3 dias. Tempo economizado em spam que você não precisa excluir: 17 minutos.

2

Um cara testou nove maneiras diferentes de apresentar um endereço de email em uma página e depois publicou os resultados em seu blog.

Suas três melhores maneiras eram:

  1. Alterando a direção do código com CSS
  2. Usando a exibição CSS: none
  3. Criptografia ROT13

Advertência - foi publicada há dois anos. Os robôs de spam podem ter ficado mais inteligentes.


1

Se você trabalha com PHP, pode pegar um script gratuito que faz isso automaticamente. Chama-se "Private Daddy" e o usamos para nosso próprio serviço de streaming de áudio online. Apenas uma linha de código e funciona de imediato ... você pode pegá-lo aqui


Eu gostaria de saber por que alguém rebaixou isso. Seria útil explicar.
Yannis Dran

1

Outra abordagem poderia ser usar uma estrutura JavaScript e vincular os dados / modelo aos elementos HTML. No caso do AngularJS, os elementos HTML seriam escritos como:

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

A ligação de interpolação {{data}} usa uma variável de escopo que contém o valor real do email. Além disso, também pode ser usado um filtro que lida com a decodificação do email da seguinte maneira:

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

Os benefícios estão na maneira como o HTML é escrito. A desvantagem é que ele exige suporte a scripts, o que alguns podem ser um não-não.

apenas outra abordagem.


1

Utilizando JQuery, mas pode ser facilmente portado para JS simples, se necessário. Aceitará o seguinte bloco HTML. Este exemplo que forneci também é para tel:links para chamadas telefônicas.

<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 converta-o para os links adequados usando Javascript.

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

$ (this) .html ($ (this) .html ()
.replace ("...", "@"). replace (/\.\.\./g, ".")
. substituir (/ Um / g, "1")
. substituir (/ Dois / g, "2")
. substituir (/ Três / g, "3")
. substituir (/ Quatro / g, "4")
. substituir (/ Cinco / g, "5")
.replace (/ Seis / g, "6")
.replace (/ Seven / g, "7")
.replace (/ Oito / g, "8")
. substituir (/ Nove / g, "9")
.replace (/ Zero / g, "0"))

$ (this) .attr ("href", $ (this) .attr ("href")
.replace ("...", "@"). replace (/\.\.\./g, ".")
. substituir (/ Um / g, "1")
. substituir (/ Dois / g, "2")
. substituir (/ Três / g, "3")
. substituir (/ Quatro / g, "4")
. substituir (/ Cinco / g, "5")
.replace (/ Seis / g, "6")
.replace (/ Seven / g, "7")
.replace (/ Oito / g, "8")
. substituir (/ Nove / g, "9")
.replace (/ Zero / g, "0"))

})

Documentei com mais detalhes aqui https://trajano.net/2017/01/obfuscating-mailto-links/

O algoritmo de / ofuscação é bastante simples, portanto, não é muito cansativo escrever (não é necessário analisar a base64)


1

A solução de chamada Ajax

O melhor é ter um formulário no site e não mostrar o endereço de e-mail, porque todos os robôs são mais inteligentes dia após dia, mas se você precisar mostrar o endereço de e-mail no site, pode fazê-lo com chamada ajax no seu site. servidor e mostre-o no clique.

HTML

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

ou

<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'
    ));
}

Para mais segurança, você pode mudar .onpor .oneassim $(document).one('click', '.obfmail', function(e) {ou até mesmo trabalhar com um PHP gerado símbolo que você passa para dados sobre chamadas ajax, a aceitar apenas uma chamada da função ajax assim:

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

jquery:

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

.

Também é possível codificar o endereço de email retornado ou invertê-lo.

.

Também funciona bem para números de telefone!


0

Honestamente, seu problema pode ser discutível se você fez uma pergunta sobre se um mailto é realmente o que você deseja usar. Muitas pessoas que usam o web mail, por exemplo, ou não têm a configuração adequada do cliente de email no navegador, não se beneficiarão do mailto. Você está expondo seu endereço de email para uma função que não funcionará para grande parte dos seus usuários.

O que você pode fazer é usar um formulário para enviar o e-mail nos bastidores, para que o endereço de e-mail fique oculto e você não precise se preocupar com os pobres coitados que não se beneficiarão de um mailto.


0

Se você diz em seu site que "Meu endereço de e-mail é (meu primeiro nome) @ (meu sobrenome) .com." E seu nome e sobrenome são bastante óbvios, essa parece ser a melhor proteção contra spam. você vai conseguir.


os parênteses não são realmente permitidos em e-mails completos? Parece que esse poderia ser um endereço de email válido. : p
Kzqai 23/12/2009

1
Essa é outra razão pela qual os bots de spam perderão sua caixa de entrada. :-)
Dean J

0

Se alguém estiver usando o Rails, poderá usar a actionview-encoded_mail_togema. ( https://github.com/reed/actionview-encoded_mail_to )

Existem algumas opções:

: encode - Essa chave aceita as strings "javascript" ou "hex". Passar "javascript" criará e codificará dinamicamente o link mailto e o avaliará no DOM da página. Este método não mostrará o link na página se o usuário tiver o JavaScript desativado. Passar "hex" codificará hexadecimalmente o endereço de email antes de gerar o link mailto.

: replace_at - quando o nome do link não é fornecido, o endereço de email é usado para o rótulo do link. Você pode usar esta opção para ofuscar o endereço de email, substituindo o sinal @ pela string fornecida como valor.

: replace_dot - quando o nome do link não é fornecido, o endereço de email é usado para o rótulo do link. Você pode usar esta opção para ofuscar o endereço de email, substituindo o. no email com a string fornecida como valor.


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

Como esta solução não é mencionada em nenhum lugar, mas funciona bem para mim:

Eu faço isso:

  • crie um link mailto com email falso. Gosto de admin@localhost.localdomain por razões óbvias: o spammer pode enviar spam para sua própria botnet ao usar esse endereço desmarcado.

  • codifique o endereço de e-mail real e coloque-o em um espaço oculto não relacionado, mas localizável ou em qualquer elemento que você desejar. Obviamente, ofuscar o e-mail e escondê-lo da colheitadeira. Dependendo da estrutura do seu projeto, você pode colocá-lo em uma variável JS ou Session.

  • crie um manipulador de cliques para esses links depois de um segundo que decifre e grave o endereço de email correto no link mailto falso, sem impedir os padrões. Eu não acho que os rastreadores cliquem nos links mailto, mas, se o fizerem, provavelmente não esperarão um segundo, enquanto um ser humano precisaria ser extremamente rápido para clicar em um link no primeiro segundo após o carregamento da página.

Agora você tem um link mailto totalmente funcional, mas ofuscado, com criptografia e com garantia de tempo.

Exemplo de arquivo php de trabalho:

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

Que o código esteja com você.


0

E se criar um link "Entre em contato" apontando para um diretório protegido por uma senha? Claro, você tem que dar o passe para acessar.

"Entre em contato comigo"> •••••••••••> contact / index.html

Uma vez acessada, a página contact / index.html revela o email, um email para, por exemplo.


-1

Eu uso uma função PHP para gerar algum javascript para gerar o email no carregamento da página. Observe que você não precisa PHP para gerar o JS no tempo de execução, é possível gerar o JS uma vez localmente e incluir o JS estático na sua página.

Você também pode usar a função vinculada com esse snippet abaixo para ofuscar automaticamente endereços de email em um determinado HTML (onde $ processingContent é o 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);
 }

onde você definiu createJSMailLink ()?
Stelian

-2

Veja isso .

O 'Enkoder Form' criptografará seu endereço de e-mail e converterá o resultado em um JavaScript de auto-avaliação, ocultando-o dos robôs de coleta de e-mail que rastreiam a Web em busca de endereços expostos. Seu endereço será exibido corretamente pelos navegadores da Web, mas será praticamente indecifrável para os robôs de coleta de e-mail.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.