На сайте без регистрации появляются новые пользователи

Нередко можно столкнуться с ситуацией, когда на сайте нет компонентов для регистрации, т.к. это блог или одностраничный лендинг, однако в админке регулярно появляются новые пользователи. Возможен и вариант, когда на сайте реализована регистрация через компонент main.register или с помощью самописного кода на API bitrix, где Вы разместили google recaptcha, старательно прописали правила валидации и набор обязательных полей но пользователи все-равно прилетают пачками с лишь наобум заполненными полями: имя, фамилия, email, логин и пароль.

Бывают и более замысловатые случаи, когда в поля пользователей вбивают рекламное сообщение, например:
- имя: "Вы выиграли миллион."
- фамилия: "Для получения перейдите по ссылке www.example.com
- email: а в него подставляют один за другим по очереди почтовый адрес жертвы.

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

Все это следствия одной и той же проблемы - старые компоненты 
  • system.auth.registration
  • system.auth.authorize
  • system.auth.forgotpasswd
  • system.auth.changepasswd
мало кто использует в современном мире, ввиду малого количества предоставляемых ими возможностей. При этом все знают, что отображаются они на страницах с установленной константой NEED_AUTH
define("NEED_AUTH", true)
Однако, мало кто помнит, что даже при неустановленной константе эти компоненты могут "отработать", если на входе окажется POST запрос с нужными параметрами. А это означает, что теоретически на любую страницу сайта с подключенным прологом можно (даже если она на содержит на какого намека на форму регистрации) отправить запрос и ... получить успешно зарегестрированного пользователя на сайте. Если ближе к делу, то вот все содержимое этого нехитрого запроса на примере из Postman:

Запрос для регистрации на сайте в обход валидации

Не удивительно, что злоумышленники не преминули воспользоваться возможностью автоматизировать этот процесс.

К счатью, защититься от такой атаки довольно легко. Если на сайте используется самописная регистрация, достаточно убрать галочку напротив опции "Позволять ли пользователям регистрироваться самостоятельно" или, наоборот, отметить галочкой опцию "Использовать CAPTCHA при регистрации".

Защита от регистрации ботов. Сайт на Битрикс.
Или же подойти к задаче творчески и совершать все необходимые проверки полей нового пользователя в обработчике события  OnBeforeUserAdd, что позволит не дублировать валидацию во всех местах сайтах, где возможна регистрация (обычно это, как минимум, страница регистрации и оформление заказа). Если же очень хочется, можно и не "отгораживаться", а "подружиться" с компонентами "system.auth.*" и настроить их согласно своим требованиям. На эту тему не буду повторяться, так как она подробно раскрыта в другой статье на Хабре: http://habr.com/ru/post/244959/
Рейтинг

Возврат к списку

Раздел Bitrix
(Codeblog)