Компании с общедоступными Web-узлами вынуждены искать компромисс между беспрепятственным доступом законных пользователей сайта и блокированием угроз безопасности, исходящих, в частности, от взломщиков и ботов. На локальных Web-узлах «.org», например принадлежащих школам и местной администрации, часто публикуется контактная информация сотрудников. Но публикация этой информации делает сайт излюбленной мишенью спамботов, которые исследуют Internet в поисках адресов электронной почты. В начале 2008 г. сотрудники администрации графства Коконино (шт. Аризона), заметили резкое увеличение количества спама, несмотря на использование фильтра. Системный специалист Линди Уайт решил проблему, подготовив HTTP-модуль ASP. NET 2.0, перехватывающий адреса электронной почты, к которым обращаются извне Web-серверы Microsoft IIS администрации графства. Линди рассказал, как проектировалось его новаторское решение и удалось резко сократить количество спама в почтовых ящиках сотрудников администрации графства Коконино.

Начнем с Web-узла администрации графства и тех особенностей, которые превратили его в мишень для спамботов.

У каждого подразделения на нашем общедоступном сайте есть домашняя страница; некоторые подразделения располагают несколькими дополнительными страницами. Сотрудники размещают на этих страницах материалы с помощью системы управления контентом (CMS). Службы должны быть постоянно доступны, поэтому сотрудники заботятся о том, чтобы на страницах подразделений было много адресов электронной почты.

Начиная с 2008 г. фильтруется примерно по 400 тыс. сообщений в месяц. Это довольно типичный показатель для организации. Но затем количество спама стало резко расти, приблизительно на 50 тыс. спам-сообщений в месяц. Я задумался, не связано ли увеличение нагрузки на фильтр спама с нашим Web-узлом, числом адресов электронной почты, открытым для сканеров Web, Web-ботов и спамботов. Сайт должен быть открыт для поисковых механизмов Google и Yahoo!, но не для программ-сканеров, цель которых — собирать адреса электронной почты.

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

Как была решена проблема спамботов?

Я предложил несколько решений и рекомендовал лучшее менеджеру подразделения. С помощью Microsoft.NET Framework можно подготовить низкоуровневые входные процедуры для Web-сервера IIS. Поэтому было решено построить HTTP-модуль для адресов электронной почты, которые отправляются с Web-сервера на посторонний компьютер. На данном этапе форма была заменена на CAPTCHA, чтобы программа могла различать обращения к адресам электронной почты со стороны человека и компьютера. Форма скрывает адрес электронной почты, но автоматические спамеры все же могут заполнить и представить ее. Тест CAPTCHA позволяет предотвратить это. Модуль целиком состоит из обратных вызовов; программирование совсем не линейное, управление целиком осуществляется событиями.

Обнаруживая адрес электронной почты, HTTP-модуль подключается к базе данных и проверяет содержащийся в ней список адресов электронной почты. Если адреса в списке нет, модуль вносит его в базу данных и присваивает ему уникальный номер. Если адрес имеется в списке, то модуль просто считывает номер и заменяет им адрес электронной почты, так что он никогда не будет обнаружен произвольным Web-ботом.

Насколько сложно было разработать такое решение?

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

Как отразилось применение HTTP-модуля на количестве спама в почтовых ящиках сотрудников?

Решение было внедрено в феврале. В марте количество спама в фильтре опять выросло на ту же величину, 50 тыс. в месяц. Но за период март-апрель произошло первое падение — примерно на 44 тыс. спам-сообщений.

Вы — автор программ и сценариев системного и серверного уровня, и мало работаете с пользователями. Тем не менее была решена очень существенная проблема. Получило ли ваше решение признание внутри организации?

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

Энн Грабб (agrubb@windowsitpro.com) — главный редактор Windows IT Pro и SQL Server Magazine