Клиенты, использующие СМС для регистрации и/или авторизации в личном кабинете или на сайте, часто сталкиваются со следующей проблемой скликивания баланса и спама. В этой статье приведем рекомендации по защите от спама.
Практически любой сайт, имеющий форму регистрации или обратной связи, может подвергнуться атакам злоумышленников или спамеров. Различные формы обратной связи - это очень уязвимое место любого сайта, которое позволяет:
Инициаторами подобных атак могут быть недобросовестные конкуренты, хакеры или мошенники, которые стремяться заработать на Ваших уязвимостях. Чтобы не стать жертвой злоумышленников, нужно защищать сайт от подобных операций. Ниже рассмотрим целый ряд способов, как это сделать.
Основным инструментом защиты формы регистрации или обратной связи является captcha. Этот инструмент позволяет определить, кем является пользователь, отправляющий на сервер заполненную форму обратной связи (или любое другое сообщение), - живым человеком или искусственным интеллектом. В основу проверки заложен следующий принцип: люди и спам-боты выполняют различные задания по-разному, например, живой человек успешно выберет из представленной подборки изображений картинки с автомобилем, пожарным гидрантом или пешеходным переходом, тогда как искусственный интеллект этого сделать не сможет и, соответственно, проверка будет не пройдена. То же самое касается и других задач, например, решения математических задач, паззлов, составления слов и выражений. Другими словами, каждый тест составлен именно таким образом, чтобы живой человек и спам-программа справлялись с ним с разным успехом. Живой пользователь должен без труда решить задачу в отличие от искусственного интеллекта.
Именно этот принцип заложен в основу теста Тьюринга, который стандартно интерпретируется следующим образом: «Человек взаимодействует с одним компьютером и одним человеком. На основании ответов на вопросы он должен определить, с кем он разговаривает: с человеком или компьютерной программой. Задача компьютерной программы - ввести человека в заблуждение, заставив сделать неверный выбор» (источник).
Установка captcha - самый простой и весьма эффективный (но далеко не единственный) способ защиты от спама. Ее легко внедрить, и она не требует от посетителей Вашего сайта значительных усилий для ее прохождения. Этот инструмент является подходящим вариантом для небольших сайтов, для которых более сложные методы верификации пользователей будут неоправданно сложными и дорогими. Можно создать капчу самостоятельно или воспользоваться готовыми решениями от известных сервисов, например поисковых систем и CMS. При этом важно не забывать об удобстве реальных пользователей: тесты, отнимающие много времени, могут вызвать раздражение и отказ от взаимодействия с Вашим сайтом.
Это бесплатный сервис, который защищает сайт от спама, используя передовые методы анализа, чтобы отличить людей от ботов. С 2009 года reCAPTCHA принадлежит компании Google. На текущий момент существует две популярные версии этой капчи — v2 и v3.
Является “скрытой” формой проверки, не требующей со стороны пользователя решения задач или ввода текста. В результате работы сервис возвращает значение в диапазоне от 0 до 1, означающее вероятность того, что пользователь — человек. На практике, значения от 0,3 могут присваиваться легитимным пользователям, потому для полноценной фильтрации могут быть использованы лишь значения <0,3. В остальных случаях необходима комбинация с другими методами, возможность пользователю подтвердить, что он не робот другим способом. Помимо этого, поскольку метод использует browser fingerprinting — наблюдаются ботнеты, способные стабильно показывать результат в 0,9.
Еще один сервис по борьбе со спамом — hCaptcha. К преимуществам hCaptcha относят то, что у сервиса есть бесплатная подписка, а также он собирает минимум необходимой информации о пользователях. Это отличная альтернатива reCAPTCHA.
Самый простой способ установить captcha, если Ваш сайт работает на CMS - с помощью плагинов. Эту возможность предлагает и WordPress, и Joomla, и многие другие CMS-системы.
Живые люди и боты по-разному "ведут себя" при заполнении форм обратной связи. Так, людям нужно гораздо больше времени для ввода данных, чем "машине", которой не нужно ничего печатать. Эту разницу в подходах можно и нужно использовать в качестве основы для защитного механизма, суть которого заключается в установлении временных ограничений на заполнение полей формы. Пример: если посетитель вписал информацию быстрее, чем прописано в условии, то он будет считаться ботом и его аккаунт или сообщений не будет принято автоматически.
Разумеется, у этого метода есть минусы:
Злоумышленнику выгодно осуществить максимальное количество запросов за минимально возможное время с одного устройства. Повторный запрос кода подтверждения с одного и того же IP-адреса или на один номер можно запретить вообще или разрешить не ранее, чем через несколько секунд или минут (например, 3 минуты). Как вариант, можно увеличивать это время с каждым следующим запросом (например, 2 минуты, 5 минут, 30 минут, сутки и т.п.). Стоит отметить также, что проверку имеет смысл осуществлять не только в интерфейсе браузера, но и на стороне сервера.
IPv4 адреса в мире закончились, а их аренда стоит денег, что увеличивает стоимость ресурсов атакующего. Адреса IPv6 же практически бесплатны и безграничны, потому поддержку IPv6 можно вовсе отключить. Пример: ограничить тремя запросами с одного IP-адреса в сутки.
В целях сохранения бюджета на СМС-рассылки и минимизации рисков получения санкций от операторов связи и ФАС имеет смысл ограничить максимальное количество отправляемых СМС одному абоненту (на один номер). Например, 3-5 отправок на один номер в сутки - вполне разумное ограничение.
Вы можете ограничить отправку СМС-сообщений на те направления или страны, где Вы не ведете свой бизнес. Наш сервис позволяет заблокировать отправку в те страны, куда Вы не хотите отправлять, оставив лишь те направления, куда Вы хотите отправлять СМС. Например, Вы можете рассылать СМС только по России, закрыв весь остальной мир. Также Вы можете блокировать отправку сообщений на отдельные номера. Это могут быть номера тех абонентов, кто просил Вас перестать отправлять СМС. Еще можно ограничить доступ для известных ботов и инструментов разработки на основе заголовков User-Agent и Referer.
Такие сервисы, как Cloudflare, Qrator, DDoS-Guard предлагают не только решения по защите от DDoS, но и от ботов.
Спам-аккаунты засоряют базу данных сайта и повышают успех публикации мусорного контента, когда для этого необходима авторизация на веб-ресурсе. Основными способами ограничить появление мусорных аккаунтов, созданных с помощью автоматического скрипта являются следующие:
Проверка созданных аккаунтов перед передачей их в работу/публикацией позволяет вручную отсеять очевидно мусорные записи. Важно отметить, что при модерации совершенно не обязательно проверять каждое поле, достаточно отсеивать очевидно некорректные аккаунты, в которых, скажем, указаны некорректные контактные данные. Например, в своей работе мы вручную отклоняем регистрации, в которых вместо ФИО, email или номера телефона написана абракадабра.
Hidden-поля — скрытые в коде сайта поля, которые пользователь не может заполнить по причине их невидимости на веб-странице. Зато эта задача по силам спам-ботам, сканирующим код сайта. В код добавляется условие о появлении ошибки в том случае, если при отправке формы было заполнено невидимое поле. Сообщение отклоняется и спам-программа блокируется.
Преимущества этого метода защиты:
Разумеется, не можем не отметить, что весьма серьезным недостатком этого метода является платность отправки СМС.
В завершение просто перечислим еще ряд методов защиты: использование CSRF-токена, блокировка user-agent, cookies для проверки уникальности посетителя, фильтрация входящих данных и т.п.
Технологий защиты сайта от злоумышленников огромное количество. Важно понимать, что ни один из описанных методов не гарантирует абсолютной защиты, поэтому методы должны применяться в комбинации. Например, в своей работы мы применяем сразу несколько методов: