Русские документы
Ежедневные компьютерные новости RSS rusdoc.ru  Найти :
Новости
Последние поступления
Книжный магазин
  Hardware:
Видеоустройства
Системные платы
Процессоры
Мобильные устройства
Аудиосистема
Охлаждение системы
Накопители информации
КПК и ноутбуки
Телефоны и связь
Периферия
Система
Сети
Разные устройства
 
  Programming:
Web-разработка
Языки программирования
Технологии и теория
Разработка игр
Программная инженерия
 
  Software:
Операционные системы
Windows 7
Базы данных
Обзоры программ
Графика и дизайн
   
  Life:
Компьютерная жизнь
Разные материалы
   
Партнеры
Публикация
Правовая информация
Реклама на сайте
Обратная связь
Экспорт в RSS Экспорт в RSS2.0
    Читать в Яндекс.Ленте



Защита e-mail от спамботов

Раздел: Programming / Вебмастеру @ 31.03.2008 | Ключевые слова: защита email спам spam версия для печати

Автор: wmz
Источник: habrahabr

Часто пользователи удивляются, откуда спаммеры узнают их e-mail адреса и выливают на них тонны спама. Оставляя за рамками этой статьи такие способы пополнения спаммерских базы, как вирусы, «слив» адресов владельцами почтового сервера или прослушивание HTTP и ICQ траффика, рассмотрим самый распространенный случай.
Одним из основных источников новых e-mail адресов являются собственно веб-страницы, на которых беспечные пользователи (а порой и владельцы сайта) открыто публикуют свой e-mail, откуда спамботы (сборщики e-mail) без проблем его извлекают и используют в своих нехороших целях.

Далее будут рассмотрены основные приемы шифрования e-mail адресов от спамботов, а также приведены результаты замера эффективности каждого из приемов, путем практического использования каждого способа для свежезарегистрированных e-mail адресов и оценки количества спама.

В настоящее время публикуемые на страницах e-mail адреса принято защищать следующими основными способами:

1. Защита написанием e-mail на картинке (либо отдельных букв, символов @ и точки).


Достоинства: относительная легкость автоматизации, трудоемкость распознавания роботами (современные спамботы берут количеством, а не качеством, и заниматься OCR им просто не выгодно — лучше на соседнем сайте собрать десяток открытых e-mail).
Недостатки: пользователи с отключенными картинками не смогут увидеть e-mail, а пользователи со включенными картинками не смогут его скопировать. Кроме того, сложности с подгонкой шрифтов/размеров текста на картинке к остальному тексту.
Эффективность: высокая. Опубликованный таким способом e-mail адрес на одном популярном сайте так и остался «нераспечатанным» спамерами.
Добавлено: спасибо посмотреть профиль gudoshi за предоставленные примеры автоматизации этого способа:
http://mail2pic.org/
http://www.mailonpix.ru/

2. Защита при помощи кодирования e-mail адресов в мнемоники (entitles-символы).


Пример:

adress@mail.ru

Достоинства: легкость автоматизации, независимость от таких параметров, как включенная графика или JS у пользователя.
Недостатки: легкость расшифровки, обход некоторыми современными спамботами.
Эффективность: низкая. Опубликованный таким образом ящик получает около 10-ти писем в день, (очевидно, что некоторые роботы «сломали зубы» о такой способ, т.к. на опубликованный открыто ящик приходит в несколько раз больше писем).

3. Защита при помощи кодирования через JavaScript, с (или без) вынесением частей кода во внешний файл.


Пример:

<script type="text/javascript">t=`.ru`;document.write("<a href=`mailto:adr" + "ess@m"+"ail"+t+"`>ad" + "ress@ma"+"il"+t+"</a>");</script>

Более корректно использовать возможности DOM вместо document.write, этот пример приведен лишь в качестве иллюстрации.

Достоинства: относительная легкость автоматизации, трудность распознавания роботами. Опубликованный таким образом адрес без проблем кликается и копируется, а также отображается людям с отключенной графикой.
Недостатки: способ не работает у пользователей с отключенным (по разным причинам) JavaScript (да, такие пользователи есть, и в определенных случаях нужно учитывать и их интересы). Автор был очень удивлен, когда клиент заявил, что не видит на странице контактов e-mail адреса.
Эффективность: высокая. На тестовый адрес спам-писем не пришло.
Добавлено: спасибо посмотреть профиль alkaruno за ссылку на сервис автоматической генерации простенькой JS-обертки для e-mail.
Пример от посмотреть профиль ecl, который можно усложнять до бесконечности:

<a href=";" onclick="a=`user@omain`; this.href=`mailto:`+a.replace(/@d/g,`@`);">send email</a>

В этом примере при клике мышкой фейковый адрес заменяется яваскриптом на реальный.

4. Защита с использованием CSS, комментариев и способа 2.


В раздел помещаем примерно такой css (названия классов и содержимое можно и нужно изменять):
<style>
.hd{display:none;}
.vs{visibility:visible;}
</style>

Можно вынести это и во внешний файл, будет даже надежнее, однако в случае неподгрузки CSS адрес будет отображаться неверно.

Далее, в коде страницы в местах, где надо вставить e-mail, используем примерно такое:
a<div class="hd">!#N#!</div><span class="vs">d</span><!-- pop -->ress&#64<!-- 2 -->ma<!-- -->il&#46;<!--[if IE]>r<![endif]--><![if !IE]>r<![endif]>u</span>

Пояснения: домен почтового сервера необходимо обязательно «разделять», чтобы не привлекать внимание полуавтоматических сборщиков e-mail. Использовать display:none для «лишних» символов необходимо для снижения эффективности возможных strip_tags функций. Во всех возможных «скрытых» местах (и даже именах CSS-классов) лучше использовать случайные (random) последовательности символов, что затруднит их автоматический парсинг.

Способ работает во всех браузерах, независимо от включенности графики и JavaScript.
Недостаток: в некоторых браузерах адрес придется набрать вручную, поскольку скопируется только первая буква (вопрос как побороть это пока не решен). Если это важно, можно комбинировать этот способ с предыдущим, поместив все это в <noscript></noscript>
Добавлено: посмотреть профиль mcm69 предложил использовать яваскрипт для правильной работы Ctrl+C на таких текстах.
Эффективность: высокая. Спам-писем не пришло.

5. Построение текста при помощи CSS


Этот очень интересный способ показал посмотреть профиль Alinaki
Для построения e-mail адресов используется CSS-шрифт (буквы составляются из маленьких div-квадратиков).
Достоинства очевидны.
Недостатки: не копируется, не отображается в случае неподгруженного CSS (выносить в около 10 кб CSS накладно). Кроме того, некоторые символы такого шрифта не совсем разборчивы.

За рамками статьи остались рассмотрение таких способов, как использование форм для отправки почты с капчей (это не всегда возможно — к примеру на форуме, где неосторожный пользователь опубликовал свой e-mail), или отображения e-mail адреса при помощи Flash.

Добавлено: любой из этих способов можно совместить с необходимостью регистрации на сайте (отображать e-mail адреса только зарегистрированным (влогиненым) пользователям, а незарегистрированным - не отображать вообще (с просьбой зарегистрироваться) либо отображать самым суровым способом). Соответствующее преобразование e-mail для незарегистрированных ботов пользователей можно произвести несложными регулярками.

Надеюсь, что статья сподвигнет web-мастеров оснастить защитой все те места, в которых беспечные пользователи так или иначе могут оставить свой e-mail (форумы, профили, камменты, и т.п.).

В данном исследовании не рассмотрены серверные способы борьбы со сборщиками e-mail (например, бан по IP), это можно считать темой следующего материала.

Материалы по теме:
Прячем email-адреса от спам-роботов (рассматриваются некоторые несложные способы).
Защита от ботов средствами PHP и JavaScript (статья от посмотреть профиль Cord). На практике рассматривается шифрование при помощи нанесения на картинку и при помощи JS.

Это интересно:








версия для печатиРаспечатать статью


Вернуться в раздел: Programming / Вебмастеру


Реклама:
Читать наc на:

Add to Google
Читать в Яндекс.Ленте






Rambler's Top100
© Copyright 1998-2012 Александр Томов. All rights reserved.