Como parar spammers de obter o endereço de email a partir de um link mailto? [duplicado]

StackOverflow https://stackoverflow.com/questions/769894

Pergunta

Duplicate:


O que é a melhor maneira de impedir que os spammers obter o endereço de e-mail de seus links mailto? Tenho a impressão de que javascript poderia ser uma solução. Eu não sei se a minha solução atual é à prova de idiotas, então é por isso que eu estou pedindo.

Aqui está o que eu estou fazendo atualmente:

<script language="JavaScript"><!--
var name = "emailusername";
var domain = "yahoo.com";
var text = "emailusername@yahoo.com";
document.write('<a href=\"mailto:' + name + '@' + domain + '\">');
document.write(text + '</a>');
// --></script>

Existe uma maneira melhor? Eu não gosto de ter que ter esse pedaço de código em todos os lugares que eu quero colocar um link mailto.

Outras dicas

Javascript ajuda, mas isso não vai ajudar muito. O endereço de e-mail ainda é visível em HTML usando este tipo de script.

O "melhor" opções usar javascript do lado do cliente para "construir" o endereço de email a partir de peças, assim que todo o endereço de e-mail nunca é visível em HTML em uma única peça. Os puts navegador lo juntos para você no cliente.

Uma correção simples:

<script language="JavaScript"><!--
var name = "emailusername";
var domain = "yahoo.com";
document.write('<a href=\"mailto:' + name + '@' + domain + '\">');
document.write(name + '@' + domain + '</a>');
// --></script>

O que basicamente é o mesmo que Reed sugere, mas com você código existente.

Isso não é nem remotamente um bom caminho. Spammers vai agarrar a coisa toda e combinar endereços com um regex. Eles não vão se preocupar procurando mailto :. Além disso, qualquer esquema que você pode pensar com Javascript já foi ensinei de e combatida pelo spammer. Na verdade, eles provavelmente vou ser capaz de executar o javascript e obter o endereço.

Você pode

A) filtro de spam
B) Use um formulário para enviar e-mail (que os spammers ainda vai provavelmente usar.)

Você está no caminho certo, mas ter emailusername lá tipo de derrotas o objetivo (a maioria dos bots aranha não se preocupam em fazer a distinção entre HTML e código de script, e basta olhar para qualquer coisa que aparece email like-on da página).

Já ouvi falar de evidências de que alguns bots aranha tem a capacidade de executar Javascript agora, e vai resolver esse tipo de ofuscamento por si mesmos.

Não há nenhuma maneira infalível de 110% de impedir que, além de truques idiotas que só dificultam o uso de e-mail, como colocar todos os endereços de e-mail como imagens etc.

Pelo menos pessoalmente, eu aceitei que os endereços vai ser colhidas, pelo menos em algum grau. Eu uso este pequeno php-função para html codificar todos os endereços de e-mail. Dessa forma, eles estarão perfeitamente utilizável por todos os navegadores reais, mas enganar o mais idiota de colheitadeiras. Como eu disse, não é 110%, mas estou feliz com isso.

function turboencode($s){
    $tempstr = "";
    for($i = 0; $i < strlen($s); $i++){
        $c = substr($s, $i, 1);
        $tempstr .= "&#" . ord($c) . ";";
    }
    return $tempstr;
}

A melhor maneira de prevenir a colheita é simplesmente não tem o mailto:. Ligação em tudo

curta do que, não há muitos contadores. Coisas como conteúdo CSS e as imagens foram julgados e contornadas, e JavaScript é uma não-solução a meio caminho (o que quer dizer que não funciona.)

Uma possível contador é ofuscação: Add absurdo para o seu endereço assim:

mailNO`at`SPAMyahoo`dot`com

E colheitadeiras mais automatizados (inicialmente) ter alguns problemas detectá-lo. Alternativamente, coisas como comentários poderiam ser usados ??para confundir a maioria das colheitadeiras. (RFC822 descreve a sintaxe completa de endereços de email, que inclui comentários como uma parte do endereço-especificação.)

Outro contador é usar um formulário com um CAPTCHA de algum tipo.

Nenhum deles é totalmente eficaz.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top