На правах рекламы:
Сервис «Почта на картинке» Вам надоело, опасаясь спама, постоянно писать в форумах и блогах свою почту вида: vasya (гав) yandex.ru или vasya (at) yandex (dot) ru? Вы хотите, чтобы адрес вашей электронной почты в блоге был оформлен красиво, а не написан стандартным шрифтом? Тогда сервис «Почта на картинке» — это для вас.   О сервисе
Вопросы и ответы
Логотипы доменов
Сохранить в del.icio.us  Сохранить страницу на сервисе закладок Bobrdobr.Ru!    Add to favorite
   

Прячем email-адреса от спам-роботов

Крошка сын к отцу пришел, и спросила кроха: «Спаммер — это хорошо, или спаммер — плохо?». Думаю, что даже маленькие дети в «продвинутых» семьях слышали о спаме, который является результатом непосильного труда тружеников невидимого фронта. Сегодня я вам расскажу, как можно прятать email-адреса на страницах сайта от spam-роботов, безустанно шныряющих по сети в поисках новых электронных адресов.

Кто не спрятался, спаммер не виноват!
Спам, как вы наверняка знаете, является большой головной болью всей глобальной сети. Спам-роботы сканируют сеть и выдирают со страниц сайтов email-ы. Спаммеры радуются растущей базе адресов и зарабатывают деньги. Пользователи бояться оставлять свои адреса в форумах, гостевых ... Админы нервно настраивают спам-фильтры. Короче говоря, все при деле. Однако, такое положение вещей кроме спаммеров не устраивает никого. Что мы, как разработчики можем сделать в свою очередь, чтобы помешать этому безобразию? Мы можем представлять email-адреса в виде непонятном для спам-роботов.

Прячем адрес
Спам робот, это программа, которая ищет на страницах определенную последовательность символов (и в этом её слабость), похожую на email. Конечно, спам-роботы не совсем «тупы» и обладают определенным интеллектом, что позволяет обходить некоторые виды защиты. Например, робот вполне может распознать в строке:

<a href="mailto:&#109;&#121;&#110;&#97;&#109;&#101;&#64;&#109;&#121; &#115;&#105;&#116;&#101;&#46;&#99;&#111;&#109;">мой email </A>

Ссылки-мнемоники на символы и декодировать их в "myname@mysite.com".
Но все же роботам ещё далеко до совершенства, и в частности, им пока не по зубам интерпретировать javascript-код, чем мы и воспользуемся. Напишем javascript-функцию, которая бедет печатать на странице email-адрес. Так как робот не может выполнить функцию, то и не может получить результат её выполнения — email.

String.prototype.printAddr =
function (_hamper,_prefix,_postfix,_face)
{
  _hamper=
  _prefix+
  "@"+
  this+
  (_postfix || '')
  document.write((_face||_hamper).link("mailto:"+_hamper));
}

Лучше сохранить эту функцию в отдельном файле (например, hide_email.js) и вызывать на нужных страницах следующим образом:

<html>
<head>
<script type="text/javascript" src="hide_email.js"></script>
</head>
<body>
Связаться со мной вы можете по адресу:
<script>"mysite".printAddr('любая абра-катабра', 'myname', '.com');</script>
</body>
</html>

В результате пользователь увидит следующее:

Связаться со мной вы можете по адресу: myname@mysite.com

Ложка дегтя
Данный способ на сегодняшний день весьма эффективен, однако есть один нюанс: пользователь может отключить Javascript, или браузер может его не поддерживать. Что же делать? Тут на помощь приходит тэг <noscript>...</noscript>, который отображает свое содержимое в случае, если javascript недоступен. Остается определиться с тем, что же показывать пользователю в контейнере noscript? Можно показать картинку с адресом, можно ссылку на страницу с объяснениями и инструкциями, что делать дальше и т.п.

Наши награды:
Полезно для прочтения:
Что такое информационный шум (спам)?
Как защитить себя от спама?
Как спамеры получают адреса?
Прячем email-адреса от спам-роботов
Как бороться со спамом

Спама бояться — соб@ку не заводить
10 правил защиты от спама и вирусов
Чем вам будет полезен MailOnPix.ru в борьбе со спамом
Что необходимо знать о почтовом спаме
Почему надежнен сервис «Почта на картинке»
    © 2007—2015 Команда сервиса «Почта на картинке». Обратная связь   Ссылка на нас