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:[email protected]">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.
fonte
Respostas:
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.
fonte
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.
fonte
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.
fonte
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:
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. :)
fonte
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.
fonte
Uma maneira leve de ofuscar a
href
âncora é codificá-la com base64:E depois inclua-o codificado:
Ou dinamicamente do lado do servidor, por exemplo, no PHP:
Em combinação com a reversão de strings, pode ser bastante economizador de spam:
fonte
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.
fonte
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.
fonte
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ê.
fonte
o meu é realmente simples:
fonte
Eu uso ofuscação JavaScript, dê uma olhada neste por exemplo:
http://www.jottings.com/obfuscator/
fonte
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:
Para garantir que apenas os usuários com o JS ativado possam ver o link, escreva-os com isso:
O uso de uma função JS para gravar um link que chama outro significa que existem duas camadas de proteção.
fonte
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 emmailto:[email protected]
vez de[email protected]
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:[email protected]
(note que estou enganando a intenção original do site de jottings, inserindo a string emmailto:[email protected]
vez de[email protected]
) com o texto "Send Me Email", que as anotações se transformaram neste Javascript:Depois de recuperá-lo, colo-o em um editor e:
mailto:
Termino com isso:
fonte
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.
fonte
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:
Advertência - foi publicada há dois anos. Os robôs de spam podem ter ficado mais inteligentes.
fonte
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
fonte
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 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:
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.
fonte
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.e converta-o para os links adequados usando Javascript.
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)
fonte
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
ou
jQuery
PHP
Para mais segurança, você pode mudar
.on
por.one
assim$(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:
.
.
fonte
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.
fonte
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.
fonte
Se alguém estiver usando o Rails, poderá usar a
actionview-encoded_mail_to
gema. ( https://github.com/reed/actionview-encoded_mail_to )Existem algumas opções:
fonte
fonte
Agora, a Cloudflare oferece serviço de ofuscação de e - mail gratuito . Essa pode ser uma opção se você usar o Cloudlfare.
fonte
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 [email protected] 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:
Que o código esteja com você.
fonte
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.
fonte
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):
fonte
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.
fonte