Защита от спама на сайте: теоретические основы


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



Исходная позиция

Имеем некоего спамера (а может и не одного), который отправляет формы обратной связи с сайта (вопрос, перезвонить, комментарий – не важно) не для решения проблемы, а для того, чтобы досадить владельцу ресурса. Может, сумасшедший, может конкурент, а может просто развлекается.

Делать это он может как с помощью автоматики (специальных скриптов, программ и/или сервисов), так и просто руками.

Как защититься?

Самое просто – поставить капчу. Рекапчу от гугла или капчу майнинг – неважно. Очень простой способ и очень эффективный. Однако, иногда неприемлемый. Например, у вас в конкурентной нише лэндинг или сайт, подразумевающий заказ прямо со страницы - пока клиент не ушел. Его может отпугнуть капча, а рекапчу (если у клиента популярный динамический ip, на котором сидит полгорода) он вообще может не пройти.

Как защититься от спама без капчи?

Самое главное – выяснить закономерности, с которых идет спам. Самая простая закономерность – это ip-адрес компьютера, с которого идет спам (или диапазон адресов, или сетка прокси). Можно заблокировать ip-адреса. Ненадежный способ, честно говоря. Мало того, что ip-может быть динамическим (смотри выше – те же полгорода), так еще и бесплатных прокси и других торов куча.

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

Любой браузер посетителя отдает несколько заголовков (которые в принципе можно изменить или подделать, но не все это делают). Итак, помимо ip-адреса, что можно узнать о спамере (браузере)?

    User Agent. Это то, чем представляется ваш браузер. Хром, опера, ие разных версий имеют разные юзер агенты.

    Referer. Это то, откуда пришел посетитель. Или откуда отправляет фору. Логично же, что обычный посетитель не может отправить форму без того, чтобы зайти на сайт? Так что там должен быть наш адрес.

    Другие данные о посетителе. Размер экрана, часовой пояс. Есть интересная тема – фингерпринт браузера – то есть какб ы снимок, отпечаток «пальца» его. Есть много неочевидных параметров, например, есть или нет расширение адблок.
Как найти закономерности?

Записывать все в базу без отправки писем. Почему-то принято, что отправка формы с сайта подразумевает непосредственную отправку письма на почту. Это, конечно, очень удобно, но почему бы не сделать, чтобы письма не отправлялись, а просто отображались в админке? Конечно, если реагировать надо сразу же, такой вариант не подойдет.

Но писать надо все. Все параметры, какие я написал выше и другие – если действительно на вас натравлена спамерская программа, то всегда можно найти закономерность. Я не перечислил здесь все параметры и конкретные способы защиты – программист всегда сможет реализовать их самостоятельно, перечислил только теоретические основы. Кроме этого, я не буду раскрывать все наработки - меня иногда читают (и даже пытаются взломать, правда пока не получается) какие-то хакеры :-)

Вывод

Найдите закономерности и на основе их стройте защиту. Могу помочь вам и я, мои услуги стоят не так дорого. Пишите мне, и мы вместе организуем защиту вашего сайта от спама. С гарантией.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, сайтостроение, спам, информационная безопасность, защита




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.



Java: наибольшее число, оканчивающееся на 0
Урок 21. Функции сравнения строк C#
Windows Portable Devices: получаем список папок и файлов на устройстве