Блог

Спам на сайте

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

Всё просто. Основная цель, которую преследуют спамеры — это, естественно, привлечение клиентов и получение заказов. Попутно же с этим решается проблема продвижения сайта в поисковых системах. Известно, что большое влияние на индексацию сайта, а, значит, и на занимаемую им позицию в рейтинге оказывает то количество ссылок, которые ведут на него с других ресурсов. А то, что все спам-сообщения содержат ссылки (часто в большом количестве) тоже ни для кого не секрет.

Интернет — благодатная почва для спама: существует огромное количество незащищённых каталогов, форумов, блогов, досок объявлений, где пользователи размещают свои сообщения. Здесь и находят своё применение специальные программы для спам-рассылки – так называемые «прогонщики». Их базы постоянно пополняются всё новыми адресами уязвимых сайтов.

Рассылки оказывают губительное влияние на ресурс. Во-первых, сайты, насыщенные спам-сообщениями, рискуют потерять доверие. Имидж компании может существенно пострадать от сотен объявлений с ссылками на порно-сайты и другие «развлекательные» ресурсы. К тому же, сайты, на которые пользователь осуществляет переход, поддавшись обещаниям спамеров, зачастую содержат вирусы. А при совсем плохом развитии событий при определённых условиях ресурс может быть помещён такими поисковиками как «Яндекс», «Google» и «Rambler» в бан и удалён из их баз, что немедленно приведет уменьшению посетителей, ведь эти системы являются основным источником трафика. Поэтому к защите от спама нужно подойти со всей ответственностью еще на этапе составления технического задания для сайта.

Борьба со спамом на сайте

Как же спастись от вездесущих сообщений, несущих вред сайту? Что нужно учесть и чему уделить внимание при создании веб-ресурсов, чтобы спам на сайтах никогда не оказался?

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

Одним из самых распространённых и надёжных методов, позволяющих, не допустить спам на сайтах является CAPTCHA (от английских слов «Completely Automatic Public Turing Test to Tell Computers and Humans Apart»). В Рунете этот способ известен как «капча». Он представляет собой тест, который имеет своей целью определение субъекта, выполняющего операцию — человек размещает сообщение или программа. Делается это просто: пользователю предлагается задача, которая не вызывает затруднений у человека, но для компьютера её выполнение либо невозможно, либо крайне затруднительно. Обычно, такой задачей является распознавание зрительных образов. Самое главное в этом случае — не переборщить со сложностью изображений, которые требуется распознать. Иначе даже человек будет не в состоянии однозначно прочесть их.

Вот как это работает:

  1. Пользователь вводит заголовок сообщения и набивает основной текст.
  2. Перед публикацией пользователю предлагается прочитать текст на специальной картинке (CAPTCHA) и вписать его в соответствующее поле.
  3. Заполнив форму, пользователь отправляет данные на сервер.
  4. Полученные на сервер данные, обрабатываются скриптом и проверяются. В том случае, если введённые символы не совпадают с теми, что отображались на картинке, то размещения сообщения не происходит, а отправителю предлагается заново заполнить форму. В противном случае, то есть, если всё введено правильно, сообщение публикуется.

Но и надёжность капчи не стопроцентна, а составляет всего 90% от общего числа попыток размещения спама. Причина тому – разработка программ, способных распознавать некоторые коды CAPTCHA автоматически, и использование полуавтоматического режима добавления сообщений на сайты, когда основные поля форм заполняются программно (автоматически), а поле с капчей заполняется человеком вручную. Если с первым бороться довольно легко (нужно лишь своевременно усложнять текст качпи, чтобы устранить уязвимость), то защита от второго влечёт за собой значительное усложнение способа публикации сообщений.

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

Тем же способом отсеивается и спам, постоянно идущий с одного IP. В этом случае в список запрещённых добавляются засветившиеся IP, с которых запрещается размещать сообщения. Однако здесь нужно учесть вероятность того, что один и тот же IP может быть у нескольких пользователей, и своим запретом Вы можете лишить доступа их всех.

Возможны и другие варианты борьбы со спамом. Например, установка фильтра по значению параметра рефевер. Рефевер — информационное поле в лог-файле, показывающее, откуда пользователь пришёл на сайт. Обычно оно служит для определения того, сколько каждый издатель даёт посетителей рекламодателю. Так как «прогонщики», как правило, оставляют этот параметр пустым, появляется возможность фильтра в скрипте подобных попыток спама.

Также очень надёжен приём проверки на время заполнения формы. Основное применение он находит, правда, на сайтах, где нужно заполнять форму с большим количеством полей, чтобы между посещением страницы с формой и отправлением пользователем этой формы на сервер должно пройти определённое время. Здесь главное определить этот временной отрезок. Логика проста: человеку нужно время на заполнение, а спам-боты автоматически заполняют и отправляют формы за доли секунды. Поэтому этот фактор также можно использовать для фильтрации.

Отсеиваются программы и другими уловками. Например, в форму вставляется скрытое поле, которое не видно пользователю. Таким образом, получается, что если на сервер приходят данные с заполненным «секретным» полем, то их отправила программа-спамер. В борьбе со спамом могут помочь ограничения на количество ссылок. Если сообщение пестрит ссылками, то, скорее всего, его создатель — бот.

Вот, пожалуй, и всё. Мотайте на ус!