| Защита адресов e-mail на Web-страницах от спам-роботов |
|
|
| Автор Westry | |
| 14.03.2008 г. | |
|
Email-адрес по своей природе должен быть публичным, так как он является одним из основных средств коммуникации в сети. Опубликование своего email-адреса на сайте или в форуме вполне естественный, а иногда единственно возможный способ сообщить свои координаты незнакомым людям, чтобы организовать с ними обратную связь.
С появлением спама email-адрес перестал быть только средством коммуникации между людьми, но и стал объектом охоты за ним со стороны специалистов по email-рекламе и email-маркетингу. Экономическая целесообразность спама объясняется относительно небольшими затратами на массовую рассылку рекламных сообщений по электронной почте по сравнению с другими видами рекламы (чем, например, рассылка буклетов по обычной почте или реклама в газете или, тем более, на телевидении). Спрос рождает предложение, и вот уже появились всякие Email Extractor'ы и другие спаммерские программы, которые день и ночь бороздят интернетовские просторы в выдирают из Web-страниц email-адреса юзеров. Эти адреса попадают в mail-базы, которые многократно продаются кому угодно, чтобы затем рекламщики (они же спаммеры) могли засыпать почтовые ящики пользователей бесчисленными рекламными сообщениями. Вал спама поставил под сомнение публичность email-адреса, то есть его главное свойство. Поэтому пользователь вынужден с одной стороны публиковать свой адрес на сайтах и в форумах, с другой стороны - скрывать его, чтобы избежать сканирования спаммерскими роботами. Это явление даже получило название: мимикрия. В данной статье рассматриваются разные способы маскировки email-адреса на Web-страницах. Всё изложенное здесь больше подходит для начинающих Web-мастеров, для тех, кто решил создать свой собственный сайт в Интернете. Как известно, ссылка на адрес электронной почты в HTML имеет вид: <a href="mailto: Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script "> Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script </a> или <a href="mailto: Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script ">Вася Пупкин</a> Первая используется, когда email-адрес нужно визуализировать на Web-странице. В общем виде её можно записать: <a href="String_1">String_2</a> Задача маскировки состоит в кодировании строк String_1 и String_2, чтобы спам-роботы не смогли обнаружить в этих строках email-адрес. Существует 3 способа кодировани адреса:
Использование кодов символов Unicode. Суть этого метода состоит в том, что адрес email (или его часть) заменяется символами Unicode. Например в адресе Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script можно заменить символ '@': pupkin@mail.ru Весь адрес Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script (String_2) кодируется слдующим образом: pupkin@mail.ru Словосочетание mailto: Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script (строка String_1) кодируется так: mailto:pupkin@ Ссылка, содержащая email-адрес будет выглядеть так: <a href="mailto:pupki или <a href="mailto:pup Визуально такая ссылка не выглядит как ссылка на email, но всеми браузерами она будет отображаться корректно, при нажатии на неё будет запущена почтовая программа и создано новое письмо с адресом Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script в поле "Кому:". Чтобы закодировать цепочку симоволов кодами Unicode можно воспользоваться HTML-страничкой с JavaScript'ом: <html> Скопируйте этот код в блокнот и сохраните в файл "emailcode.html", а затем просмотрите его в любом браузере. Генерация email-адреса с помощью JavaScript. pupkin - имя пользователя Вполне логично передать эти части (исключая @) в функцию, генерирующую email-адрес. Пример 1. <html> Скопируем этот код в блокнот, сохраним в файл "email-1.html" и запустив его на выполнение. В окне браузера будет напечатан email-адрес, но пока не в виде ссылки. Этот код иллюстрирует простейшую функцию генерации email-адреса. Простота кода в примере 1 является недостатком, так как вызов функции email("pupkin","mail.ru") очень легко преобразовать в email-адрес. От этого недостатка легко избавиться - нужно всего лишь как-то закодировать имя сервера. Пример 2. <html> В примере 2 все серверы занесены в массив. Например, сервер mail.ru имеет индекс 0, yandex.ru - индекс 2. Это достаточно удобно, так как на сайте может быть много email-алресов, на разных почтовых серверах. Вызов функции email("pupkin",0) очень короткий и, кроме имени функции "email", больше ничего не указывает на генерацию адреса. Имя же функции можно изменить, например, "abrakadabra" :-). Можно придумать другой способ кодирования имени сервера. Он достаточно наглядный и не требует запоминания индексов. Пример 3. <html> В этом примере имя сервера кодируется одной или несколькими буквами. Итак, функция генерации email-адреса есть, осталось написать функцию, генерирующую ссылку mailto: Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script Пример 4. <html> Это и есть то, что нам нужно - работающий скрипт, маскирующий emal. Функция email (login, sc) - генерирует email по логину и индексу сервера; Вызов этих функций из 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": function email (login, sc) Тогда Web-страница будет выглядеть таким образом: Пример 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, но таких людей очень мало. Реконструкция ссылки с помощью серверных скриптовых языков (PHP, Perl и др.). Например, на HTML-странице вместо стандартной <a href="mailto: Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script ">Вася Пупкин</a> стоит ссылка: <a href="http://www.server.ru/mylo.phtml?pupkin(dog)mail.ru">Вася Пупкин</a> Серверный скрипт PHP, зашитый в страничку "mylo.phtml" обрабатывает ту её часть, что стоит после знака "?" и возвращает браузеру "нормальную" почтовую ссылку, а тот в свою очередь запускает почтовую программу. Мне нет смысла приводить в этой статье PHP-скрипт, так этот скрипт уже написал Spectator в своей статье No spam.php (как бороться со спамом). Можно, конечно, придумать более изощрённую конструкцию ссылки, например: <a href="http://www.server.ru/mylo.phtml?login=pupkin&serv=mail&dom=ru">Вася Пупкин</a> но суть от этого не изменится - спам-робот не обнаружит в ней адрес email, так как он находится в разобранном виде. А сборка адреса происходит динамически на сервере после нажатия пользователем на данную ссылку. Разумеется, защита email-адреса с помощью PHP-скрипта возможна, если Ваш хостинг поддерживает PHP. Насколько мне известно, поддержка PHP включена на всех платных хостингах, а также на некоторых бесплатных. Ещё одно преимущество этого метода - он не зависит от настроек браузера (ему. например, по барабану, включен JavaScript в браузере клиента или нет). Надеюсь, что данная статья принесёт пользу не только желающим создать свою собственную страничку в Интернете, но и Вашим многочисленным партнёрам и посетителям, доверившим Вам свои адреса email. Избавьте их от неизбежности получать спам! Ведь Ваш сайт может стать кормушкой для спаммерских роботов, если email'ы будут лежать там открыто.
Владимир Бакланов |
| « Пред. | След. » |
|---|


