Защита адресов e-mail на Web-страницах от спам-роботов

Автор Владимир Бакланов   
03.11.2006 г.
Оглавление
1. Защита адресов e-mail на Web-страницах от спам-роботов
2. Использование кодов символов Unicode
3. Генерация email-адреса с помощью JavaScript
4. Реконструкция email ссылки на сервере (PHP, Perl и др.)

Генерация email-адреса с помощью JavaScript

Это самый лучший метод (я сам им пользуюсь :-)). Спам-роботы не могут эмулировоть работу JavaScript, поэтому расшифровать вызовы к функциям JavaScript им не по зубам. На JavaScript можно написать сколь угодно сложный код, но для генерации “безопасной” ссылки достаточно написать несколько простых функций. E-mail состоит из нескольких частей:

pupkin – имя пользователя
@ – без комментариев
mail.ru – имя сервера

Вполне логично передать эти части (исключая @) в функцию, генерирующую email-адрес.

Пример 1.

Скопируем этот код в блокнот, сохраним в файл “email-1.html” и запустив его на выполнение. В окне браузера будет напечатан email-адрес, но пока не в виде ссылки. Этот код иллюстрирует простейшую функцию генерации email-адреса.

Простота кода в примере 1 является недостатком, так как вызов функции email("pupkin”,”mail.ru") очень легко преобразовать в email-адрес. От этого недостатка легко избавиться – нужно всего лишь как-то закодировать имя сервера.

Пример 2.

Создадим файл “email-2.html”:

В примере 2 все серверы занесены в массив. Например, сервер mail.ru имеет индекс 0, yandex.ru – индекс 2. Это достаточно удобно, так как на сайте может быть много email-алресов, на разных почтовых серверах. Вызов функции email("pupkin”,0) очень короткий и, кроме имени функции “email”, больше ничего не указывает на генерацию адреса. Имя же функции можно изменить, например, "abrakadabra" :-).

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

Пример 3.

Файл “email-3.html”:

В этом примере имя сервера кодируется одной или несколькими буквами.

Итак, функция генерации email-адреса есть, осталось написать функцию, генерирующую ссылку mailto:Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script

Пример 4.

Файл “email-4.html”:

Это и есть то, что нам нужно – работающий скрипт, маскирующий emal.

Функция email (login, sc) – генерирует email по логину и индексу сервера;
функция mylo (login, sc) – пишет этот email на Web-страницу;
функция namylo (login, sc, sub) – генерирует гиперссылку вида mailto:Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script .

Вызов этих функций из HTML-кода осуществляется следующим образом:

<a href="javascript:namylo('pupkin',0,'Tema_Pupkin');"><script>mylo('pupkin',0);</script></a>
или
<a href="javascript:namylo('pupkin',0,'Tema_Pupkin');">Вася Пупкин</a>

Заметим, что в функции namylo (login, sc, sub) имеется переменная sub. В неё записывается тема письма, если она нужна.

namylo('pupkin',0,'Тема сообщения')

Если тема не нужна , то пишем две одинарные кавычки рядом (т.е. пустая тема):

namylo('pupkin',0,'') – нет темы

Как правило, сайт состоит из нескольких страниц и скрипт включать в каждую страничку неэкономично. Гораздо выгоднее записать скрипт в отдельный файл, назовём его “mylo.js”:

Тогда Web-страница будет выглядеть таким образом:

Пример 5.

Файл “email-5.html”:

В каждую страничку сайта не забывайте включить строчку:

<script language="JavaScript" src="mylo.js"></script>

это при условии что скрипт и HTML-страница лежат в одном каталоге.

Если файл “mylo.js” лежит в корневой директории сайта, ссылка должна выглядеть так:

<script language="JavaScript" src="/mylo.js"></script>

а если в директории script, то так:

<script language="JavaScript" src="/script/mylo.js"></script>

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



 
« Как уберечься от спама?

Какой формат писем вы предпочитаете?




Форум

Mail.ru купил сервис микроблогов RuTwit
Mail.ru Group купила сервис микроблогов RuTwit.ru, сообщила интернет-к...
Автор: Последние новости
03.02.2012@20:51
Mail.Ru Group купила сервис микроблогов ...
Компания Mail.Ru Group объявила о приобретении стартапа RuTwit.ru, сог...
Автор: Последние новости
03.02.2012@16:51
письмо с вложением глючит
Ребята выручайте, сканирую документ, прикрепляю к письму, отправляю, O...
Автор: СергейЧаба
03.02.2012@15:02
pochta.ru
Бесплатная почта на WWW.POCHTA.RU предоставляет неплохой набор фишек. ...
Автор: Гость
02.02.2012@23:07
Голосовой поиск Mail.ru появился в iPhon...
Компания Mail.ru сообщила о выпуске первого мобильного поискового прил...
Автор: Последние новости
01.02.2012@21:03
Мобильный голосовой поиск Mail.Ru для iP...
Компания Mail.ru Group запустила мобильное приложение Поиск@Mail.ru дл...
Автор: Последние новости
01.02.2012@19:10
Поисковое приложение Mail.Ru для iOS пол...
Компания Mail.Ru выпустила свое первое поисковое приложение для смартф...
Автор: Последние новости
01.02.2012@18:05
email1 от имени email2
Я задал тот же вопрос на форуме Microsoft. Получил исчерпывающий ответ...
Автор: kiav
24.01.2012@14:06
© 2006-2008 AboutMail.ru
Разработка сайта — "Позитик"