web-dev-qa-db-pt.com

Como evitar o spam através de um site?

Parece que estamos recebendo MUITO spam de email, temos uma combinação dos endereços de email como links mailto e formulários de contato que são enviados para o mesmo endereço.

Que medidas podemos adotar para eliminar a maioria do spam?

Precisamos manter um endereço de e-mail visível e um formulário de contato para que não haja como removê-los.

5
Rob

uma solução para isso é processar as informações de email codificadas e uma função javascript decodificá-las e mostrá-las após o carregamento da página.

Nada difícil de codificar e decodificar; um simples pode fazer o trabalho.

Outra maneira é renderizar seu email em uma imagem e mostrá-la.

Com qualquer truque como esse, os spammers não conseguem ler facilmente seu email para colocá-lo em um banco de dados e começam a enviar spam.

Encontrei uma página com muitos exemplos: http://csarven.ca/hiding-email-addresses

Agora, para o formulário de contato, você deve usar um CAPTCHA,

http://en.wikipedia.org/wiki/CAPTCHA

ou algumas outras idéias semelhantes. https://stackoverflow.com/questions/8472/practical-non-image-based-captcha-approaches/2544519

7
Aristos

Tenho muita experiência em interromper o spam. Na verdade, eu costumava falar com a GFI e compartilhava algumas das minhas técnicas de filtro com elas.

Você pode interromper o spam com quase 100% de eficácia com algumas etapas simples. Isso não nega a necessidade de um filtro anti-spam ou significa que você nunca receberá spam; no entanto, apenas algumas coisas quase impedirão o spam. Na verdade, é extremamente fácil.

Um pouco de fundo:

Eu provavelmente odeio spam mais do que a maioria. Eu dirigi um servidor de lista com várias listas de e-mail anos atrás por mais de uma década. Quando iniciei os servidores de lista, sabia que o spam seria um problema, por isso criei meu próprio filtro de email e nunca um email de spam chegou com zero falso-positivos. Corri meus e-mails pessoais pelo servidor da lista. Simples.

Mas não é isso que estou sugerindo.

Quando desliguei meus servidores de lista, tive que encontrar outras maneiras altamente eficazes de impedir o spam e descobri que, se você pode impedir que os raspadores de endereço de email levantem seu endereço de email de qualquer site, isso é 99% da tarefa. Mas você nem sempre tem controle sobre tudo isso, é claro. Então, usei outra técnica antiga como um soco de um a dois (etapas 1 e 2).

Etapa 1: Crie um alias de email para cada vez que você fornecer um endereço de email. Isso geralmente é uma coisa extremamente fácil de fazer, especialmente se você executa seu próprio servidor de email. Mesmo que você não execute seus próprios servidores de email, a maioria dos provedores de serviços de email e hosts da Web permite a criação de aliases. Portanto, quando me registro em uma conta online, crio um alias para essa conta. Sempre que forneço um email a alguém, crio um alias. Sem exceções. Eu o aviso para não tornar o alias o nome de domínio de outros sites, mas algo semelhante para que você saiba onde seu endereço de email foi comprometido e onde alterar qualquer endereço de email, se necessário. Não fique com preguiça neste. Criar um alias exclusivo para cada pessoa, site, entidade realmente poupa muito trabalho e dor depois. Isso é especialmente importante para os membros da família e alguns amigos menos técnicos que, por algum motivo, nunca parecem manter seu anti-spam atualizado.

Etapa 2: mova seu endereço de email. Eu criei minha própria ferramenta de envio de e-mail há mais de uma década. Mas aqui estão alguns dos antecedentes que você precisa conhecer antes de entrar no processo.

Os endereços de e-mail podem ser extraídos de sites usando uma variedade de ferramentas que variam em sofisticação. A maioria ainda é limitada de uma maneira específica, mas você descobrirá que muitas das técnicas do munge, como usar [at], colocar espaços, inserir texto a ser modificado, como [remover isso], ainda podem ser raspadas . De fato, muitas técnicas de JavaScript podem ser copiadas simplesmente porque são facilmente reconhecidas e gravadas no código como uma correspondência de padrão. Além disso, muitas imagens também podem ser raspadas simplesmente porque o código pode ser escrito para reconhecer o texto em uma imagem, independentemente do que você faz, incluindo a aplicação de um filtro de imagem no objeto de texto antes da renderização. Os raspadores tornaram-se bastante sofisticados, com certeza.

Mas o que eles não conseguem lidar é a aleatoriedade.

Eu escrevi uma ferramenta de munge que é completamente anônima e é 100% eficaz por mais de uma década. Aqui está: http://www.closetnoc.org/mungemaster/ Por favor, use-o. É gratuito e eu o criei porque odeio muito o spam. Toda vez que você usa essa ferramenta, ela cria uma nova imersão. É resolve o problema de correspondência de padrões que descrevi anteriormente. Uma opção é mover o endereço de e-mail várias vezes pelo número de vezes que você o publicar no site. Como a aleatoriedade é importante, essa técnica aumenta a probabilidade de sucesso. Mas você realmente não precisa fazer isso se não quiser. Ainda é extraordinariamente eficaz e permite que um link de email resida no seu site da maneira que as pessoas esperam.

Etapa 3: use um filtro anti-spam. Existem vários que funcionam no nível do servidor, como um gateway antes do servidor de email, entre o servidor e o cliente ou dentro do cliente. Qualquer que você escolher depende do seu cenário. Eu usei o GFI como gateway quando eu era um host da web. Eu também usei meu próprio mecanismo de filtragem mencionado anteriormente. Agora eu uso o SpamAssassin. Ambos são altamente eficazes, mas não completamente à prova de idiotas.

Etapa 4: isso se aplica apenas àqueles que executam seu próprio servidor de email, mas é uma técnica altamente eficaz, pouco conhecida e simples. Crie um servidor de lista e use o Majordomo. O Majordomo usa seus próprios filtros anti-spam/segurança altamente eficazes. Embora eu não me lembre de como costumava fazer isso, é algo que não leva muito tempo para descobrir. É altamente recomendado se você não se importa de adicionar outra camada.

Etapa 5: Quarentena de e-mails de spam. A maioria dos filtros de spam baseados em servidor e cliente pode ler as tags de cabeçalho e segregar seu spam em uma pasta. A maioria de nós está acostumada a ver isso, mas pode surpreender quantas pessoas não usam esse recurso.

A idéia é impedir que as colheitadeiras obtenham seu endereço de e-mail. Mas se, de alguma forma, isso for comprometido, você não forneceu um endereço de email real, mas um alias que você pode excluir e recriar como um alias de email completamente novo, se necessário. E por último, deixe o filtro anti-spam fazer seu trabalho e coloque o spam em um local seguro que possa ser recuperado, se necessário.

Como nota lateral:

A única vez que recebi spam foi quando um computador foi comprometido, quando alguém clicou em um link e capturou o endereço manualmente ou quando um código/objeto de site foi comprometido. Eu posso contar isso nos meus dedos nos últimos 12 anos.

Em relação aos formulários, não tenho muita experiência com spam nesse sentido, principalmente porque não uso formulários no meu sistema; portanto, não tenho certeza se posso ajudá-lo tanto quanto as respostas acima.

4
closetnoc

Como você já teve seu endereço de email disponível publicamente no site, já é tarde demais.

Você ainda pode remover o endereço de email em texto sem formatação do site. Existem várias técnicas para isso, por exemplo:

  1. 'Ofuscate' o endereço: por exemplo, info at example dot com ou [email protected]
  2. Use uma imagem que contenha o endereço de email
  3. Remova o link mailto: e deixe o usuário apenas copiar/colar o endereço

Como outros já mencionaram, você deve adicionar algum tipo de CAPTCHA para impedir que os bots enviem spam para o formulário de contato.

IMHO É impossível impedir o recebimento de spam. Mesmo que você não tenha o seu endereço de email disponível, o spammer ainda tentará muitos endereços de email em um determinado domínio. Se o servidor enviar de volta m NDR , eles saberiam que o endereço de email não é válido. Eu acho que a melhor coisa que você pode fazer é instalar um filtro de spam. Você pode instalar um no servidor de email ou, se não tiver acesso ao servidor, poderá instalar um filtro de spam no lado do cliente. Eu uso Spambayes eu no lado do cliente e também usamos filtro no lado do servidor. Portanto, a maioria das mensagens de spam simplesmente não chega ao cliente ou será capturada no lado do cliente.

2
PeeHaa

Como os spambots geralmente preenchem todos os campos de um formulário, eu uso uma entrada oculta que, se preenchida, impede que o formulário seja enviado.

Obviamente, você precisará ter um rótulo associado a ele (também oculto), que declara que ele deve ser deixado em branco para que os usuários do leitor de tela saibam para que serve e não o preencham.

Uso essa abordagem há anos e parece funcionar muito bem.

1
Simon Hudson

Dê uma olhada no Recaptcha: http://www.google.com/recaptcha

Isso resolverá o problema do seu formulário de contato, pois os endereços de e-mail visíveis não os exibirão em um formulário clicável (por exemplo, contactus (AT) meudomínio (DOT) com).

0
Mantorok