Методы защиты от спама, рассылаемого при помощи форм обратной связи веб-сайта
Спам — это нежелательные или несанкционированные сообщения, отправляемые по разным электронным каналам связи. Чаще всего термин «спам» ассоциируется с электронной почтой, но получить его можно и через другие каналы: мессенджеры, социальные сети и формы обратной связи на веб-сайтах.
Спам вреден не только потому, что он раздражает пользователей и засоряет их почтовые ящики или формы обратной связи. Спам может создать дополнительную нагрузку на сервер, замедлить работу сайта и повлиять на его производительность. Кроме того, некоторые виды спама могут содержать вредоносные ссылки или программы, создающие угрозы безопасности.
Борьба со спамом — критически важная задача для любого владельца сайта или администратора, чтобы поддерживать качество обслуживания, сохранять репутацию и предотвращать потенциальные угрозы безопасности. Формы обратной связи — это инструмент для общения пользователей с администрацией сайта. Их можно использовать для отправки запросов, предложений, жалоб и просто для общения. Формы обратной связи доступны для всех посетителей сайта, поэтому они часто становятся целью для спамеров.
Спамеры используют автоматические программы-боты, для массовой отправки сообщений через формы обратной связи. Это может привести к серьезному засорению почтового ящика и к распространению вредоносного программного обеспечения или фишинговым атакам. Поэтому разработка эффективных методов защиты от спама через формы обратной связи становится важным аспектом безопасности веб-сайта.
Исходные данные и методология исследования.
Рассмотрим сайт интернет-магазина, работающий на одной из самых распространенных платформ 1С-Битрикс, с посещаемостью около 2000 уникальных пользователей в день и более 50000 уникальных пользователей в месяц. На сайте есть формы связи с полями: имя, телефон, e-mail и комментарий. Данные отправляются через собственный почтовый сервер.
Форма обратной связи на сайте дает пользователям возможность отправлять сообщения с вопросами, предложениями или комментариями, а также позволяет обратиться за помощью.
Работа формы обратной связи обычно осуществляется в несколько этапов.
-
Заполнение формы.
Пользователь вводит свои контактные данные (в нашем случае — имя, телефон и электронную почту) и текст сообщения. Дополнительно, в зависимости от конкретных потребностей, форма может содержать другие поля для более точной идентификации запросов.
-
Отправка сообщения.
После заполнения необходимых полей, пользователь нажимает кнопку «Отправить». В этот момент введенная информация передается на сервер для обработки.
-
Обработка на сервере.
На сервере данные из формы обрабатываются. Они могут быть проверены на корректность введенных данных и наличие специальных символов, что помогает предотвратить потенциально опасные или нежелательные запросы.
-
Отправка на административный адрес.
После успешной обработки информации сервером, сообщение пересылается на адрес администратора или ответственного лица. Здесь используется электронная почта, уведомление о новом сообщении отображается в административной панели или в почтовом клиенте.
-
Просмотр и обработка в административной панели.
Администратор сайта получает доступ к полученным сообщениям в административной панели или почтовом клиенте. Он может просматривать содержание сообщений и принимать решение о дальнейших действиях, таких как ответ пользователю или передача запроса соответствующему отделу.
Таким образом, форма обратной связи выполняет важную функцию взаимодействия между пользователями и администрацией сайта, обеспечивая удобный и эффективный способ обмена информацией.
Спам-сообщения, как и сообщения от реальных пользователей, формируются на этапе заполнения формы обратной связи, когда пользователь вводит текст сообщения и свои контактные данные. Злоумышленники могут использовать автоматизированные программы (боты) для массовой отправки спам-сообщений через форму обратной связи. Они могут ввести в поле текста нежелательную рекламу, ссылки на вредоносные сайты или другой контент, который создает помехи для обычных пользователей и администраторов сайта.
Спам также может появиться на этапе отправки сообщения. Злоумышленники могут отправлять множество запросов одновременно, используя разные комбинации контактных данных, чтобы попытаться обойти защитные механизмы.
В этом кейсе опишем ряд мер, принятых для фильтрации и блокировки спам-сообщений, полученных через формы обратной связи на сайте, приведем статистику после применения каждого способа защиты.
Для анализа эффективности каждого из методов защиты необходимо отделить спам от реальных обращений, для чего ко всем формам обратной связи добавляем поля для логирования:
- «Описание для анонса» — поле, в которое записывается ip-адрес, с которого заполнили форму
- «Детальное описание» — поле, содержащее данные из формы обратной связи
Таким образом, мы видим, какие сообщения из формы обратной связи заблокированы, а какие прошли все проверки и были отправлены. Последние, в свою очередь, можно разделить на реальные и спам.
Такое разделение позволяет видеть:
- заблокированные сообщения, для оценки работы защитных механизмов
- сообщения, которые прошли все проверки и фильтры
- реальные сообщения, чтобы проверить, что они не попадают в блокировки
- спам-сообщения, которые прошли защиту, для принятия мер для их блокирования
Следует иметь в виду, что на сайте уже используются некоторые встроенные в CMS Битрикс методы защиты: включен модуль «Проактивная защита» и установлена стандартная CAPTCHA от платформы.
На Рисунке 4 видим, что только этих двух методов недостаточно для полной блокировки спам-сообщений.
Для получения исходных значений объема спама, собираем данные за 1 неделю:
- сообщений от реальных пользователей — 44
- спам-сообщений — 60
- заблокированных сообщений — 0
в формах? Свяжитесь с нами!
Возможные методы защиты от спама
Рассмотрим наиболее эффективные способы защиты от спама на нашем примере, в каждом случае собирая и анализируя данные за 7 дней.
-
Задержка перед повторным запросом для одинаковых IP-адресов
Ввод фиксированного временного ограничения (например, 90-120 секунд), либо постепенное увеличение времени между повторными запросами после каждого следующего.
В нашем случае мы установили тайм-аут в 120 секунд при отправке данных из формы с сохранением в session storage, а на сервере настроили проверку IP-адреса — для повторяющихся адресов применяется задержка отправки данных. Это помогает контролировать интервал между последовательными отправками данных и ограничивает частоту отправки с одного IP.
Результат:
Всего получили 122 сообщения через формы обратной связи.
Из них:
70 сообщений от реальных пользователей,
19 полученных спам-сообщений,
33 заблокированных спам-сообщения.Вывод:
Подход оказался эффективным: он позволил эффективно сократить количество спама, выявляя и блокируя нежелательные сообщения, при этом не создавая преград для обычных пользователей сайта. -
Ограничение количества запросов с одного IP
Этот метод устанавливает лимит на количество запросов, которое может выполнить один IP-адрес за определенный промежуток времени (например, за минуту или час). Когда это количество превышается, система начинает применять дополнительные меры, такие как временное блокирование, CAPTCHA или повышение уровня проверки подлинности.
Такой подход позволяет обеспечить нормальное взаимодействие с сайтом для обычных пользователей, но при этом снижает шансы злоумышленников массово запускать атаки. Для улучшения пользовательского опыта и предотвращения случайных блокировок, важно установить разумные ограничения и обеспечить информативные сообщения о превышении лимитов. Установили на сайте лимит в 5 запросов с одного IP-адреса в течение одного дня.
Результат:
За 7 дней тестирования получили 124 сообщения.
Из них:
66 сообщений от реальных пользователей,
12 полученных спам-сообщений,
46 заблокированных спам-сообщения.Вывод:
введенное ограничение количества запросов с одного IP-адреса эффективно снижает вероятность спама и нежелательной активности, не вредя опыту реальных пользователей. На работоспособность ограничений указывает возросшее число заблокированных спам-сообщений. -
Ограничение количества запросов на один номер
Аналогично ограничению по IP-адресу, имеет смысл ввести ограничения на количество запросов, исходящих с одних и тех же телефонных номеров. Эта мера становится особенно ценной, когда для подтверждения данных используется аутентификация через SMS. Отправка каждого сообщения сопряжена с определенными затратами, поэтому рекомендуется внедрить дополнительные методы на третий и последующих запросах, такие как использование кодов из номеров, входящих звонков, голосовых сообщений через VK, WhatsApp или Viber, вместо стандартных SMS.
Помимо экономии ресурсов это также повышает безопасность и уровень аутентичности. Такие меры обеспечивают надежный способ подтверждения, минимизируя возможности мошенничества и снижая нагрузку на систему.
Еще одной полезной стратегией является запрет отправки запросов в страны, где отсутствуют зарегистрированные пользователи. Это уменьшает риск ненужных запросов и сокращает возможности для нежелательных активностей.
Таким образом, комплексное применение ограничения по IP, ограничения запросов с одинаковых номеров телефонов и страновой фильтрации могут эффективно снизить нагрузку на систему, сэкономить ресурсы, обеспечивая более комфортное и защищенное взаимодействие пользователя с сайтом.
Механизм ограничения количества запросов с одного номера позволяет контролировать количество заявок которые может выполнять один номер телефона за определенный период времени. Такой подход имеет несколько преимуществ. Прежде всего, он способен существенно снизить нагрузку от многократных и автоматизированных запросов, которые характерны для спама. Пользователи, которые хотят легитимно взаимодействовать с сайтом, редко будут затронуты, так как ограничения на их запросы будут довольно высокими.
Кроме того, ограничение запросов с одного номера помогает бороться с ручным спамом. Даже если злоумышленник решит ввести запросы вручную, его способности будут серьезно ограничены. Это значительно повышает порог входа для спамеров и делает их попытки менее эффективными и затратными.
Конечно, важно находить баланс между безопасностью и удобством пользователей. Слишком строгие ограничения могут привести к недовольству легитимных пользователей, но с правильными настройками этот метод может быть очень эффективным средством защиты от спама, обеспечивая более приятное и безопасное взаимодействие с сайтом.
В нашем случае, учитывая отсутствие СМС-аутентификации при отправке данных из форм обратной связи, мы внедрили лимит на количество запросов с одного номера, ограничивая его до 5 запросов в течение одного дня.Результат:
За 7 дней тестирования получили следующие результаты.
Всего — 125 сообщений
Из них:
51 сообщение от реальных пользователей,
9 полученных спам-сообщений,
65 заблокированных спам-сообщения.Вывод:
Наш подход к ограничению количества запросов на один номер оказался эффективным в борьбе со спамом, при этом не создал препятствия обычным пользователям. Рекомендуется продолжать анализировать данные и поддерживать надежные механизмы защиты, чтобы обеспечивать безопасность и качество взаимодействия с реальными пользователями на сайте. -
Использование CSRF-токена
CSRF-токен (Cross-Site Request Forgery) — это уникальный код, который генерируется на сервере и передается на клиентскую сторону при загрузке формы обратной связи.
Этот токен является неотъемлемой частью борьбы с межсайтовой подделкой запроса (CSRF) и помогает защитить формы обратной связи от действий злоумышленников. При попытке отправить запрос без наличия валидного CSRF-токена, запрос будет отклонен, что препятствует автоматизированным атакам.
При каждой загрузке формы на сервере генерируется новый CSRF-токен, который затем вставляется в скрытое поле формы. При отправке формы на сервер, токен сравнивается с тем, который сервер ожидает получить. Если токены совпадают, запрос считается подлинным и данные обрабатываются. Если токены не совпадают, запрос может быть автоматически отклонен.
Использование CSRF-токенов при работе с формами обратной связи существенно повышает безопасность сайта, обеспечивая защиту от спама, в том числе от автоматизированных атак. Эта техника является стандартной практикой в веб-разработке и обеспечивает дополнительный слой безопасности для пользователей и данных, улучшая качество взаимодействия с вашим сайтом.
Наш сайт работает на CMS 1С-Битрикс: управление сайтом имеет встроенный модуль «проактивная защита», в котором уже есть защита выхода пользователя из системы от CSRF. Она позволяет защитить сайт от межсайтовой подделки: проверяется наличие и корректность csrf-токена и блокируется выполнение действия, если проверка не пройдена. Поэтому данная опция применяется у нас сразу по умолчанию.
-
Использование Google reCAPTCHA v3
reCAPTCHA v3 представляет собой инновационную «невидимую» проверку, которая не требует от пользователей решения задач или ввода текста. Результат работы этого сервиса выражается числом в диапазоне от 0 до 1, указывающим на вероятность того, что перед нами действительно человек.
В реальности значения, начиная с 0.3, обычно присваиваются легитимным пользователям, что делает полноценную фильтрацию возможной лишь для значений, меньших, чем 0.3. В остальных случаях требуется комбинирование с другими методами, которые позволяют пользователям подтвердить свой человеческий статус другими способами.
Кроме того, следует отметить, что этот метод использует browser fingerprinting (отпечаток браузера) — это означает, что мы наблюдаем ботнеты, способные постоянно показывать результат в 0.9. А значит, необходимо постоянно совершенствовать методы борьбы с подобными атаками.
В нашем случае интеграция Google reCAPTCHA v3 в форму обратной связи оказалась эффективной для снижения нежелательного спама.Результат:
За 7 дней получили следующие результаты.
Всего — 132 сообщения
Из них:
56 сообщений от реальных пользователей,
0 полученных спам-сообщений,
76 заблокированных спам-сообщения.Вывод:
реализация reCAPTCHA v3 оказалась успешной в борьбе со спамом. Этот метод обеспечил высокую степень защиты от нежелательных сообщений и свел до минимума негативное воздействие на обычных пользователей. -
Дополнительные и специализированные средства защиты
Примеры специализированных инструментов включают такие сервисы, как Cloudflare, Qrator и DDoS-Guard. Они не только защищают от DDoS-атак, но и предоставляют эффективные средства против ботов.
С помощью этих инструментов можно существенно снизить нагрузку от автоматизированных ботов, предотвратить спамные запросы и обеспечить легитимные взаимодействия с сайтом. Такие решения также могут быть эффективными в защите от различных видов атак, предоставляя гибкие настройки для анализа и фильтрации трафика.
Сервисы фильтрации трафика
Если ваш бизнес не активен в определенных регионах, у вас есть возможность ограничить доступ из этих мест или даже заблокировать возможность отправки на соответствующие номера. Также можно установить ограничения на доступ для широко известных ботов и инструментов разработки, анализируя данные из заголовков User-Agent и Referer.
Однако, при работе с нашим конкретным сайтом, владелец принял решение не вносить никакие ограничения, поэтому рекомендация по этому вопросу не была реализована. Несмотря на это, важно оставаться внимательным к потенциальным рискам и постоянно оценивать необходимость дополнительных ограничений для поддержания безопасности и эффективности взаимодействия на сайте.
Блокировка нежелательного трафика
Cloudflare, Qrator и DDoS-Guard — это компании, предоставляющие не только DDoS-защиту, но и инструменты против ботов.
Итоги
В этом кейсе защиты от спама на сайте мы испытали различные методы борьбы с автоматическими атаками и нежелательными сообщениями. Давайте рассмотрим ключевые моменты и результаты:
- Задержка перед повторным запросом в форме обратной связи оказалась эффективным средством для обеспечения безопасности и предотвращения нежелательного контента на сайте. Анализ данных подтвердил позитивное влияние.
- Ограничение количества запросов с одного IP: были установлены лимиты на количество запросов с одного IP-адреса. Эти меры оказались довольно эффективными в предотвращении массовых спам-атак, позволяя в то же время обеспечивать удобство для реальных пользователей.
- Ограничение количества запросов на один номер: этот метод тоже показал эффективность в борьбе со спамом, предотвращая получение нежелательных сообщений.
- Мы рассмотрели применение CSRF-токена для защиты формы обратной связи от спама и межсайтовых подделок запроса. Этот метод является стандартной практикой и обеспечивает дополнительный слой безопасности для пользователей.
- Внедрение «невидимой» reCAPTCHA v3 было рассмотрено как действенный способ борьбы с ботами и спамом. Результаты показали, что этот инструмент может быть эффективным, особенно при правильной настройке.
Внедрение таких мер, как ограничение количества запросов, CSRF-токены и установка reCAPTCHA v3, позволило значительно снизить количество спама на сайте и создать более безопасную среду для реальных пользователей. Рекомендуется продолжать мониторинг и анализ данных для поддержания эффективности и надежности мер по борьбе со спамом на сайте.
Мы рассмотрели реальный опыт внедрения рекомендаций по защите форм обратной связи от спама на сайте интернет-магазина и провели анализ результатов после применения каждой рекомендации, чтобы понять, как они влияют на общую защиту.
После применения первой рекомендации — установки задержки перед повторным запросом в 120 секунд, мы отметили полное блокирование спам-сообщений, что указывает на эффективность данной меры в предотвращении многократных автоматических запросов.
После внедрения остальных методов, мы заметили, что спам-сообщения блокировались на этапе отправки, что свидетельствует о совокупной силе всех мер и их совместной действенности в предотвращении нежелательного контента.
Важно понимать, что ни один метод не обеспечивает абсолютную защиту, но каждый из них снижает вероятность и масштабы угрозы. Сочетание различных методов, как в данном случае, позволяет обеспечить более надежную защиту, адаптированную к конкретным обстоятельствам. Комбинирование и дополнение методов повышает общий уровень защиты и снижает риски. Это подчеркивает важность применения многомерного подхода к защите, особенно в онлайн-среде, где угрозы постоянно эволюционируют.