Maneira de listar o endereço de e-mail "Fale conosco" no site, mas reduz a probabilidade de spam?


70

Qual é uma boa maneira de listar um endereço de e-mail "Entre em contato" em um site e reduz a probabilidade de receber spam?

Colocar o endereço de email em uma imagem é a melhor técnica ou existem outras?


35
Esteja ciente de que qualquer coisa que derrote um bot provavelmente também derrotará um usuário com deficiência visual
MrChrister


@ MrChrister ... e branco em branco vence o usuário, mas não o bot.
Talvi Watia

2
Acontece que ... alguém montou um pote de mel e coletou resultados por um período maior. Aqui estão os resultados ... superuser.com/questions/235937/… . Aparentemente, usar CSS para alterar a direção do endereço e / ou inserir código oculto arbitrário em um endereço de email são as melhores soluções. Aparentemente, o OCR não é um item comum na caixa de ferramentas de spambot.
Evan Plaice

har, eu nem sequer me lembro i respondeu a uma pergunta semelhante ao superusuário-one aqui :)
akira

Respostas:


54

Passo todos os formulários de contato por meio de uma conta descartável do Gmail, que encaminha o e-mail para o endereço de e-mail real. É grátis, fácil e a detecção de spam do Gmail é de primeira qualidade.

Ele não exige nenhum esforço extra ao criar o site e, se algo acontecer, basta fazer login na conta do Gmail e sinalizá-la como spam.

Em seguida, você pode definir a caixa de entrada do Gmail para arquivar automaticamente tudo o que foi encaminhado ou até mesmo excluí-la se não desejar que a cópia extra seja mantida lá.


2
Eu tenho uma conta do Google Apps que eu uso de maneira semelhante. A vantagem do Google Apps sobre uma conta do Gmail é que você pode criar até 50 aliases de e-mail (apelidos) por conta. Eu costumava usar as contas do Gmail para coisas desse tipo, mas sempre esquecia as informações de login um ano depois e era mais difícil do que com o Google Apps. (Ainda uma grande técnica +1.)
jessegavin

+1, mas vejo uma desvantagem: algumas pessoas confiam em um email de seu próprio domínio, em vez de em uma configuração usando um provedor de email gratuito.

6
Lazlow: Eu deveria ter sido mais claro. Eu tive esse problema no começo, então atualmente configuro um redirecionamento de email usando o domínio do site, que redireciona para uma conta do Gmail, que encaminha para o meu endereço de email pessoal (que é outra conta do Gmail), que o rotula com um rótulo que define qual site veio e pula a caixa de entrada. As pessoas pensam que está enviando info@mydomain.com ou contact@myotherdomain.com mas todos eles vêm à minha conta do Gmail primária e sentar-se em rótulos para mydomain, myotherdomain, etc.
Callan

11
O Gmail também permite que você responda com o endereço de e-mail que você confirmou. Portanto, você pode responder no gmail como "roy@royronalds.com", embora o email real especifique uma diferença sutil como "enviado em nome de roy@royronalds.com por roy@gmail.com". Poucos provavelmente perceberão que você está usando o Gmail para realmente enviar como se fosse de outro endereço.
Kzqai

@Lazlow read @jessegavin comentário acima
Sruly


20

Minha não resposta é não fazer isso. Os sistemas de email modernos, como o GMail e o dispositivo anti-spam Barracuda, fazem um excelente trabalho de filtragem de spam. Qualquer barreira que você coloca entre você e seus visitantes significa um nível mais baixo de envolvimento e, dependendo do tipo de site, perda potencial de vendas.

Se você estiver preocupado com usuários que não possuem o cliente de email nativo instalado ou que não possuem o manipulador mailto: configurado corretamente, tenha uma página Fale conosco com AMBOS o endereço de email vinculado e um formulário (sem um CAPTCHA) e deixe o usuário escolher.

O spam é irritante, mas é nossa responsabilidade suportar, não nossos usuários.


18

Use a linguagem natural para especificar o endereço de e-mail ...

Ex:

thatguy at gmail dot com

Você ficaria surpreso com o quanto é mais difícil escrever um bot que possa diferenciar a linguagem natural do que escrever um bot que apenas procura o sinal @ e regexes um endereço normal.

Não é 100% infalível, mas não é pior que a ofuscação e não alienará os usuários com deficiência visual e / ou com o JavaScript desativado.

Atualização: Aqui está um exemplo dessa técnica em ação .

Atualização 2:

Acontece que alguém realmente fez uma pesquisa sobre isso e publicou on-line. Veja a postagem do Superusuário descrevendo os resultados ou o artigo original


6
Tendo a questionar essa abordagem. Principalmente porque existe há muito tempo e não consigo imaginar nenhum rastreador de email desenvolvido nos últimos 10 anos que não iniciasse cada nova página substituindo "at", "[at]", "dot" ou similar com seus respectivos personagens.
precisa saber é o seguinte

@phq Por quê? É tão difícil acreditar que não há rastreadores que possam anular todas as opções de ofuscação de JavaScript e codificação tirando um instantâneo de uma página, executando o OCR e a expressão regular para @? Só porque é possível criar um bot que possa solucionar todas essas técnicas não significa que os spammers o façam. A vantagem de usar a linguagem natural é que o uso é muito mais diversificado do que um URI de email padrão. O símbolo @ geralmente não.
Evan Plaice

2
@Evan, meu argumento é que essa técnica se tornou muito comum, o que geralmente é um problema no combate ao spam. Afirmo que essa técnica não é uma linguagem natural, seria algo como "Envie-me um email no exemplo de domínio com o tld com e o nome de usuário foo". A técnica "at" é apenas uma técnica de substituição de símbolo.
Hultqvist

@phq Eu diria que as técnicas baratas de ofuscação de javascript existem há tanto tempo e são fáceis de quebrar. O ponto é que ele não eliminará os scrapers da página de capturar e-mails das páginas, mas reduzirá a probabilidade, como sugere a pergunta. Além disso, é a opção mais fácil de implementar sem alienar seus usuários. Não vejo como seu argumento torna essa opção pior do que qualquer outra.
Evan Plaice

11
Eu também vithatguy funny-symbol gmail.com
rlb.usa

12

Pessoalmente, não exibo endereços de email nos sites, mas, em vez disso, tenho um formulário de contato acessível e fácil de usar, além de uma indicação de quem é o email; permitindo que os usuários enviem e-mails para os proprietários e operadores do site, sem expor os endereços de e-mail ou ter que passar por vários ciclos de JavaScript, etc.

Geralmente, é o melhor caminho a percorrer se a sua filtragem de spam não for tão sofisticada.


2
Agora existem muitos spammers que preenchem esses formulários de contato.
Txwikinger 09/07/10

4
Eu nunca preencho formulários de contato. Se não conseguir encontrar um e-mail de contato, simplesmente não negocio com essa empresa. Agora, se é uma obrigação para mim e não há contato por e-mail, prefiro ligar por telefone, mesmo internacionalmente. O problema com os formulários de contato é que nunca posso ter certeza de que eles encaminharão uma cópia das informações digitadas para o meu endereço de e-mail. Portanto, sou obrigado a copiar e colar as informações em algum lugar para acompanhar os detalhes.
vmarquez

@ várquez: Justo o suficiente. Você ficaria feliz se houvesse a opção de encaminhar o e-mail para o seu endereço também? Eu tenho vários clientes que desejam permitir que seus usuários os enviem por e-mail de uma maneira que funcione de maneira acessível, não habilitada para JS, sem expor seus endereços de e-mail a spammers. Eles têm seus números de telefone em seus sites, para que você possa entrar em contato com eles dessa maneira; Por curiosidade, você grava seus telefonemas com as empresas para acompanhá-los também (visto que a maioria afirma gravá-los para treinamento)?
Zhaph - Ben Duguid

2
@Zhap: Você está certo, fico feliz se a página com o formulário tiver uma nota indicando que vou receber uma cópia do meu pedido por e-mail. Alguns sites incluem essa nota e eu uso o formulário. Nos casos em que preciso ligar por telefone, não faço minha solicitação durante a ligação. Peço um e-mail e prossigo para enviá-los. Prefiro os contatos iniciais a serem feitos pelo e-mail, porque tenho a tendência de fazer pesquisas de produtos / serviços em nome de muitos clientes e, assim, mantenho uma trilha detalhada do que foi solicitado / respondido em cada caso.
vmarquez

@ várquez: Você não pôde preencher o formulário e depois salvar / imprimir em PDF o formulário preenchido?
Andrew Grimm

9

use css para esconder algum ruído do texto real (apenas em uma linha, eu o formatei para melhor ilustrar a técnica):

u<span class="spam">noise</span>ser
@<span class="spam">noise</span>
example<span class="spam">noise</span>
.com

e depois use este pequeno fragmento de css:

.spam { display: none; }

se você precisar de mailto:conteúdo válido , precisará criá-lo via jscript no dom. Consulte algumas das outras respostas para isso. mas eu não sou um grande amigo disso.


isso funciona para selecionar o texto?
Andrei Rînea

2
Porém, isso não é acessível, pois os leitores de tela tendem a ignorar as folhas de estilo.
usar o seguinte

8

O que faço é escrever o endereço de email como palavras, envolto em uma tag span: <span class="email">joe dot blow at gmail dot com</span>. Em seguida, um script no nível da página é executado, capturando essas extensões e substituindo cada uma por um link de email construído. Pode não ser muito obscuro, mas não tive queixas. Além disso, se o JavaScript estiver desativado, o usuário ainda poderá ler o texto da extensão real.


Isso não será de grande ajuda contra bons robôs. Se o bot executa o JavaScript (o que não é muito importante - execute a página em um mecanismo do navegador e pegue o HTML gerado), ele tem um endereço perfeito. Pegar alguém at gmail dot com não é um pouco mais difícil do que pegar someone@gmail.com
Mircea Chirea

8

A melhor solução: use um filtro de spam .

Na verdade, eu uso o Gmail para lidar com minha conta de email POP3 da minha empresa, porque é muito mais fácil verificar emails em computadores diferentes. Os filtros de spam do Gmail são os melhores do mundo.

Assim, você pode exibir webmaster@example.com como seu endereço de e-mail e esquecer o spam.


+1, o Spam Assassin também pode ser ajustado para ser extremamente eficaz para aqueles que não desejam usar o Google.
Tim Post

7

usando codificação html como &#649&#7854&#7575, o navegador exibirá "abc"


11
Eu usei essa técnica antes e parece funcionar bem. Também é transparente para os usuários e não dependem de JavaScript :)
Michael Mior

Seria uma dor real escrever um bot para analisar esse texto. Por outro lado, é bastante óbvio que é um endereço de email ou algo sensível.
Mircea Chirea

Na verdade, seria muito fácil escrever um bot para analisar entidades HTML. Decifrar texto codificado é algo que os computadores fazem com muita facilidade, mas os humanos têm muito mais problemas (e é por isso que o navegador faz isso por você). É por isso que é meio estranho que esse método ainda seja eficaz.
Lèse majesté

5

Use uma biblioteca gráfica (como GD, compatível com PHP ou similar) para criar dinamicamente imagens .png contendo os endereços de email.

Comparada à minha outra resposta, essa solução é menos irritante para os usuários (mas não é transparente; eles não podem copiá-los e colá-los, mas devem digitá-los novamente do zero), mas também são menos seguros: um computador pode ler a imagem não ofuscada.

Mas, no geral, acho que é um bom compromisso; Isso impedirá a grande maioria dos bots de spam.


Também irá incomodar a grande maioria dos usuários. Sem clique, sem copiar e colar, obrigado, isso é especialmente irritante em um pequeno dispositivo como um telefone, onde você não pode digitar rapidamente.
Mircea Chirea

5

Uma maneira bastante boa, embora não perfeita, é criar o endereço de email via javascript. A maioria das aranhas que procuram e-mails não executa javascript e, portanto, não encontra um endereço de e-mail legível.

Aqui está apenas um exemplo de como isso poderia ser feito.


3
e os usuários que não têm o JavaScript ativado?
Evan Plaice

11
@Evan: Quem, neste século 21, desativa o JavaScript, exceto aqueles administradores de sistema raros que navegam na Web a partir de uma caixa de produção? ;-)
Chris W. Rea

11
@ Chris, eu só ligo o Javascript (ou cookies), se houver algo específico que eu quero do site que o exija (como este site, por exemplo). Claro, eu posso ser o último da minha espécie ... :)
Cyclops

5

Eu uso um script Python simples para converter o endereço de email em um link mailto em que o endereço de email é codificado em entidade HTML. Isso é completamente transparente para o usuário, mas parece obscurecer o conteúdo o suficiente para derrotar a maioria dos bots de colheita simplórios.

#! /usr/bin/env python3.0

def entity_encode(text):
    out = ""
    ba = text.encode()
    for i in range(len(ba)):
        out = out + "&#x{0:02x};".format (ba[i])
    return out

def print_email_link(address) :
        print('<!-- {0} -->'.format(address))
        print('<a href="{0}{1}">{1}</a>'.format(entity_encode("mailto:"), entity_encode(address)))


print_email_link("test123@example.com")

Isso fornece a saída

<!-- test123@example.com -->
<a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#x74;&#x65;&#x73;&#x74;&#x31;&#x32;&#x33;&#x40;&#x65;&#x78;&#x61;&#x6d;&#x70;&#x6c;&#x65;&#x2e;&#x63;&#x6f;&#x6d;">&#x74;&#x65;&#x73;&#x74;&#x31;&#x32;&#x33;&#x40;&#x65;&#x78;&#x61;&#x6d;&#x70;&#x6c;&#x65;&#x2e;&#x63;&#x6f;&#x6d;</a>

Quando o resultado é colado em uma página da web, o navegador exibe o texto "test123@example.com" como uma hiperlinha para "mailto: test123@example.com"; portanto, é tão conveniente para o usuário final quanto incluir o endereço no Claro. Mas parece derrotar muitos robôs de colheita.

Obviamente, excluo o comentário com a versão ASCII simples do endereço depois de colar o link do email oculto no local apropriado na fonte HTML da página da web.


4

Peça ao usuário para resolver um CAPTCHA antes de mostrar o endereço de e-mail (ou se você tiver um formulário de contato, antes de permitir que o usuário o envie).

É o mais irritante para os usuários, mas definitivamente o mais eficaz.


9
Não sei o que é mais irritante, ter que digitar captcha ou clicar em um link de e-mail para obter um assistente de configuração do Outlook Express. Obviamente, depende do público, mas acho que o formulário de contato é o caminho a percorrer.
Gabriel

@ Gabriel: Captcha é definitivamente irritante, mas eu concordo plenamente com você. Eu gostaria que as pessoas parassem de usar o mailto. Hoje em dia, é fácil enviar e-mails diretamente pelo servidor.
Omar Kohl

11
CAPTCHA não é uma solução IMHO. Não castigue seus usuários pelos pecados dos outros. Você está sobrecarregando seus usuários onde existem outras soluções.
vmarquez

3

Sou fã de ofuscação, onde o endereço de email é essencialmente renderizado com Javascript.

Por exemplo, my@email.compoderia ser renderizado como

<a href="javascript:location='mailto:\u006d\u0079\u0040\u0065\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d';void 0">
<script type="text/javascript">document.write('\u006d\u0079\u0040\u0065\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d')</script></a>

Para o usuário, é um texto normal e pode ser copiado e colado. Bots, por outro lado, terão mais dificuldade com isso.

Aqui está o ofuscador que eu usei.


Você também pode usar<a href="#" onclick="document.location.href='mailto:...'; return false">
Mark Henderson

Essas duas soluções não funcionarão muito bem sem o JS, certo?
Grant Palin

2

Mão única:

  <script language="javascript"> 
  <!--
  var name = "user"
  var host1 = "gm"
  var host2 = "ail.com"
  var addr =
  document.write("<a href=mai" + "lto:" + 
    name + "&#64;" + host1 + host2 +
    ">" + name + "&#64;" + host1 + host2 + "</a>")
  //-->
 </script> 

Você pode escrever "Decifrar meu e-mail: usuário no com dot gmail" em <noscript>tags para aqueles com o javascript desativado. Dessa forma, você obtém a funcionalidade de hiperlink. Você tem uma boa chance de manter os spamers longe do seu endereço e as pessoas com o javascript desativado ou os navegadores apenas com texto ainda podem obter o seu endereço de email.


Eu uso o mesmo, com vários vars - quanto a mim pareceria mais difícil reunir os valores individuais de um bot.

2

Todas as técnicas de ofuscação do mundo não podem ajudar a longo prazo, se houver muitas pessoas entrando em contato com você. Tudo o que precisamos é de alguém para você soltar uma mensagem e mais tarde infectado por algum malware que varre seu inbox / mail enviado / livro de endereços / whatever para endereços válidos, andyour dirigir-se lá fora, que está sendo passada de lista para lista [I ainda têm contatos que são estúpidos o suficiente para colocar lá o endereço de e-mail e a senha nos formulários on-line pelo motivo mais idiota, você provavelmente também o mais recente foi um site que se ofereceu para calcular o "gráfico e previsões de astrologia de e-mail" de alguém que imediatamente enviou spam os contatos de fool com um convite para o mesmo site e a <deidade> só sabe em que outras listas estamos agora] .

O endereço nos meus sites públicos não é apenas um endereço descartável - está em um subdomínio descartável. Se eu começar a receber spam nesse subdomínio, crio um novo, atualize os sites onde meus detalhes de contato estão listados e, pouco tempo depois, removo completamente o subdomínio dos registros DNS. Se você fizer isso, ou qualquer outra técnica de endereço descartável, certifique-se de deixar claro (em qualquer página que lista o endereço e no rodapé de qualquer email enviado usando esse endereço) que o endereço será alterado no futuro e se as pessoas puderem para passar, eles devem verificar novamente para garantir que tenham o endereço correto.

Isso tem a vantagem de ser apenas um endereço simples para as pessoas clicarem (se seu navegador + mala direta estiverem vinculadas dessa maneira) ou copiar + colar sem precisar usar o cérebro para editar o endereço posteriormente (sempre fico surpreso com o número de pessoas inteligentes e observadoras não conseguem acertar esse tipo de coisa). Isso também significa que meu servidor de email não passa seus dias devolvendo mensagens enviadas para endereços "aleatórios" (aaron @, adam @, amy01 @, ...) nos subdomínios expirados. Também não confunde os leitores de tela usados ​​pelos cegos ou mal situados.

Outra opção que eu ainda não tentei é usar uma solicitação AJAX para ler o endereço de e-mail e outros detalhes. Isso pode ser um pouco mais eficaz que a document.writeofuscação com base, mas adicionará uma carga extra no servidor da web.

Eu costumava usar os formulários "entre em contato comigo", mas descobri que eles são spam tanto quanto, às vezes mais do que endereços de email em texto sem formatação - às vezes por scripts que tentam usar o formulário para criar uma conta em algum lugar, em vez de use-o como um formulário de contato.


1

Se você possui um filtro de bot (usando 1x1px, sub-rede, bots conhecidos, detecção de jscript, referenciador http e agente do navegador), você simplesmente não pode exibir as informações se for um bot.

Solução em PHP:

<?
if (!isbot()) {
  echo 'mailto:'.$email_address_for_real_people;
  }
  else {
  echo 'mailto:yourself_bot@'.$bots_domain_address;
  }
?>

BTW, isbot()é uma função criada pelo usuário que aponta para qualquer rotina de filtro de bot que você tenha.
Talvi Watia

1

A coisa mais fácil que encontrei é usar um formulário de contato em que haja um endereço padrão, mas também a capacidade do usuário selecionar para quem a comunicação deve ir (marketing, vendas, suporte técnico etc.). Em seguida, com base no valor da lista suspensa, os dados do formulário postado são enviados pelo servidor para o endereço de email apropriado.

Execute esta lista de contatos de uma tabela de banco de dados para poder atualizar / adicionar entradas facilmente ao menu suspenso. Dessa forma, você nunca expõe nenhum tipo de endereço ao amplo mundo dos bots de spam e ainda oferece aos usuários uma ótima maneira de enviar feedback.


1

De jeito nenhum, José! - Sim, José!

Não há absolutamente nenhuma maneira de 'parar' a coleta de a href="mailto:" endereços de email. Acredita-se há muito tempo que o uso de JavaScript é uma boa maneira de impedir a maioria dos robôs de colheita, mas hoje em dia os robôs são muito bons em derrotar esse método. Eles também podem derrotar imagens que contêm endereços de email, da mesma maneira que podem derrotar o captcha usando o software decaptcha.

A melhor maneira!

A melhor abordagem seria usar um serviço de correio respeitável que ofereça um bom bloqueio de spam. O Google G Suite e o Microsoft Office 365 usam um algoritmo incomparável a qualquer software no mercado, principalmente porque recebem milhões de e-mails por dia e são capazes de 'aprender' e colocar spam na lista negra muito antes mesmo de tentar enviar um e-mail para você.

De fato, há um ano, o Google disse que sua tecnologia de aprendizado de máquina agora bloqueia 99,9% das mensagens de spam e phishing do Gmail , Microsoft Exchange local e servidores de correio rodando atrás do plesk / cpanel não conseguem competir com essa proteção.

Sumário

Bloqueie o spam usando um serviço de e-mail respeitável capaz de aprendizado de máquina de IA. Você também pode dar um passo adiante, impedindo que os spammers visitem seu site usando o Cloudflare, que detectará uma grande maioria de bots agressivos antes que eles cheguem ao seu site.


0

Eu uso fred@no-spam.domain.com há anos. Os usuários normalmente sabem o suficiente para excluir o 'sem spam'.

Caso contrário, basta usar um formulário de contato com um 'captcha' e enviar o email diretamente do site.


4
Estou surpreso que seus usuários saibam o suficiente para excluir o 'sem spam'. Geralmente, fazer suposições sobre os usuários serem capazes de pensar que um passo à frente leva a resultados bastante desastrosos. Não me ocorreria remover o não-spam, a menos que você adicionasse alguma nota instruindo-me a fazê-lo (e mesmo nesse caso muitas pessoas não leem notas, pop-ups ...).
Omar Kohl

7
Como você sabe que seus usuários sabem remover 'sem spam'? Você só ouvirá quem fizer: ¬)
pelms

11
@ peles: Bom ponto, mas alguns consideram isso uma vantagem. Ele pode atuar como um filtro de inteligência triagem seu e-mail de entrada ...
David Spillett

0

Aqui está outro ofuscador de e-mail: Enkoder , de Dan Benjamin. Ele vem como um aplicativo on-line e um aplicativo autônomo para Mac.


0

Uma coisa que faço é usar a API do http://www.stopforumspam.com para verificar se há spammers. Sinta-se à vontade para entrar em contato comigo para obter detalhes e terei prazer em ajudá-lo!

Bud Manz

Manz Web Designs, LLC Empresas



0

Eu uso uma função PHP para gerar algum javascript para gerar o script em tempo de execução. Observe que você não precisa do 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 trecho abaixo para ofuscar automaticamente os 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);
 }
}

0

Se você estiver usando um formulário de contato, poderá usar a técnica divertida de usar nomes aleatórios para suas entradas.

Por exemplo, eu faço um formulário de contato, em vez de usar o email como entrada, eu usaria liame, mesmo com nome (eman) e comentário (tnemmoc). Os bots não sabem realmente o que essas entradas fazem, então apenas as desconsideram.


0

Configurei um formulário / planilha do Google Docs. Posso verificar as entradas do formulário uma vez por dia e minha caixa de entrada não é inundada.


0

Use o Zoho Creator para configurar um formulário de contato. O feedback que você recebe será armazenado em um banco de dados que você pode acessar on-line e também será enviado por 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.