2010-09-08 7 views
9

Как вы предотвращаете сбор сообщений электронной почты с веб-страниц по электронной почте пауками? Сочетает ли их mailto: вероятность того, что они будут подняты? Полезно ли кодирование URL?Защита адресов электронной почты от спам-ботов/веб-сканеров

Очевидно, что лучшая контрмера должна показывать только адреса электронной почты вошедшим в систему пользователям или предоставлять контактную форму вместо адреса электронной почты. Но с точки зрения чисто клиентских решений, что доступно?

+0

Для части решений ознакомьтесь с: http: // stackoverflow.com/questions/308772/what-are-some-way-to-protect-emails-on-websites-from-spambots –

+0

Я не уверен, что обфускация электронной почты - это отличное решение (как указано в комментарии @ Yi выше Но @James Black подходит для использования формы электронной почты, где это возможно, и с использованием кода на стороне сервера для обработки сообщения. –

ответ

1

лет спустя, я создал следующий JQuery для другого сайта:

$(".email").each(function() { 
    $(this).html($(this).html().replace("...", "@").replace(/\.\.\./g, ".")); 
    $(this).attr("href", $(this).attr("href").replace("...", "@").replace(/\.\.\./g, ".")); 
}); 

Письма затем записываются как:

<a href="mailto:bob.smith...example...com" class="email">bob.smith...example...com</a> 

Не совершенным , но это очень просто и, похоже, мешает большинству почтовых комбайнов. Преимущество этого метода заключается в том, что кто-то, не использующий JavaScript, вероятно, сможет определить, что такое адрес электронной почты.


Отъезд study on various email obfuscation methods.

2

Я стараюсь избегать mailto, так как это делает его слишком легким для людей, чтобы собирать адреса электронной почты.

Если у вас будут контактные страницы на вашем веб-сайте, просто заполните форму и отправьте свой код на стороне сервера и используйте соответствующий адрес электронной почты.

Если вам нужно иметь доступ к другим адресам людей, используйте номера, имена, имена пользователей, чтобы идентифицировать их.

Если у вас просто есть адрес электронной почты в промежутке, он, вероятно, будет поднят, даже если вы попытаетесь скрыть его, так как эти программы могут быть довольно сложными, так как поиск адресов электронной почты является тем, о чем они.

Как и в большинстве секретов, если вы не хотите, чтобы другие получали их, не помещайте их на страницу.

+0

Письма находятся на странице в ''. Кроме удаления адресов электронной почты, есть ли что-нибудь может сделать, чтобы уменьшить вероятность того, что их подхватят спайдеры электронной почты? – Zaz

5

Большинство почтовых пауков не имеют переводчиков javascript, поэтому, если вам действительно нужен mailto:, вы можете ввести его с помощью javascript ... просто убедитесь, что адрес скрыт в javascript каким-то образом, например.

myLink.href='mai'+'lto:'+'bob' 
      +'@' 
      +'example.com'; 

Если необходимо отобразить адрес электронной почты на странице, общее решение для создания изображения, используя что-то вроде Gd РНР (хотя Javascript инъекции должно работать нормально для этого тоже).

Идея состоит в том, чтобы удалить адреса электронной почты из HTML и ввести их с помощью javascript. Таким образом, адрес электронной почты не отображается в исходной форме в любом из HTTP-трафика, на что смотрит паук.

+0

Спасибо, это довольно умный способ сделать это. – Zaz

+0

Для этого вам потребуется JavaScript, чтобы использовать эту страницу, что может снизить ваши пользователи. –

1

Я обычно разделяю их на отдельные части, а затем повторно объединяю их с помощью javascript. Последний javascript делает document.write, чтобы написать html.

т.е.

var mail = "mailto"; 
var namepart = "test.user"; 
var domainpart = "example"; 
var tld = "com"; 
var address = namepart + "@" + domainpart + "." + tld; 
document.write("<a href=" + mail + ":" + address + '">' + address + "</a>";