Сбор JS score
Назначение
Сбор JS score (Score collection) позволяет определить, при каких запросах система должна отдавать JS-скрипт для сбора JS score.
JS score используется для оценки источника запроса. Он помогает системе отличать обычных пользователей от автоматизированных источников и может использоваться в дальнейшей классификации и правилах защиты.
Как работает сбор JS score
-
Пользователь или клиент обращается к защищённому ресурсу.
-
Система проверяет правила Сбора JS score.
-
Если запрос соответствует правилу и в cookies отсутствует JS score, система отдаёт JS-скрипт.
-
Браузер выполняет скрипт.
-
После выполнения скрипта система сохраняет JS score в cookies.
-
При следующих запросах score уже может использоваться в правилах классификации и защиты.
Важно: JS-скрипт отдаётся только если JS score отсутствует в cookies. То есть только в случае, если источник запроса ранее не проходил JS-проверку или score недоступен.
Что делают и чего не делают правила сбора JS score
Правила сбора JS score:
-
определяют, где можно отдавать JS-скрипт;
-
помогают собрать score у источников запросов;
-
не блокируют трафик;
-
не принимают решение, является ли источник ботом;
-
не применяют защитные действия.
Для классификации источника используйте Классификацию ботов. Для блокировки, challenge или других действий используйте Правила защиты.
Важное ограничение
При настройке правил обязательно учитывайте архитектуру приложения.
Не отдавайте JS-скрипт в ответ на запросы, где JavaScript не может быть корректно выполнен:
-
AJAX/API-запросы;
-
JSON-эндпоинты;
-
webhooks;
-
запросы мобильных приложений;
-
запросы, ожидающие изображение, файл или другой не-HTML-ответ;
-
служебные запросы фронтенда, которые не рассчитаны на выполнение JS-страницы.
Если отдать JS-скрипт в ответ на такой запрос, приложение может получить неожиданный ответ вместо ожидаемых данных. Это может привести к ошибкам в интерфейсе или нарушить работу интеграций.
Когда использовать правила сбора JS score
Используйте эти правила для страниц и маршрутов, где пользовательский браузер может корректно выполнить JavaScript.
Подходящие примеры:
-
HTML-страницы сайта;
-
страницы входа;
-
страницы каталога;
-
страницы карточек товаров;
-
посадочные страницы;
-
страницы личного кабинета, если они открываются в браузере и могут корректно выполнить JS.
Неподходящие примеры:
-
/api/*; -
/webhook/*; -
/ajax/*, если endpoint ожидает JSON; -
endpoints мобильного приложения;
-
загрузка файлов;
-
обращения к ресурсам, которые должны возвращать строго определённый формат ответа.
Основные элементы правила
Позиция
Позиция определяет порядок проверки правил. Чем выше правило в списке, тем раньше оно проверяется.
Если правило без условий применяется ко всему трафику, оно может повлиять на широкий набор запросов. Используйте такие правила осторожно.
Условия по трафику
Условия по трафику позволяют ограничить правило конкретными запросами.
В зависимости от доступных настроек можно использовать:
-
страну;
-
путь URL;
-
сегмент пути URL;
-
query string;
-
Content-Type;
-
Cookie;
-
Header;
-
Hostname;
-
hosting subnet;
-
метод запроса;
-
Referer;
-
ASN;
-
hashes;
-
признак нового пользователя;
-
source subnet;
-
User-Agent;
-
X-Forwarded-For.
Набор доступных условий может отличаться в зависимости от конфигурации сервиса.
Условия по статусу DDoS-атаки
Правило можно применять в зависимости от текущего статуса DDoS-атаки:
-
Всегда; -
Пока нет DDoS-атаки; -
Во время DDoS-атаки.
Например, можно собирать JS score только во время DDoS-атаки, чтобы не добавлять лишнюю проверку в обычном режиме.
Создание правила
-
Перейдите в раздел
Защита приложений → Ресурсы. -
Найдите ресурс, для которого нужно настроить правила, нажмите на три точки (…) в конце строки и выберите
Пользовательские правила. -
Откройте таб
Сбор JS score. -
Нажмите
Создать правило сбора JS score. -
Укажите позицию правила.
-
Добавьте описание.
-
Настройте условия по трафику.
-
Настройте условие по статусу DDoS-атаки.
-
Нажмите
Создать.
Редактирование правила
Чтобы изменить правило:
-
Откройте таб
Сбор JS score. -
Найдите правило в списке.
-
Откройте меню действий.
-
Выберите
Редактировать. -
Измените описание или условия.
-
Нажмите
Сохранить.
Включение и выключение правила
В списке правил можно включить или выключить правило с помощью переключателя.
Выключенное правило остаётся в списке, но не применяется к трафику.
Удаление правила
Чтобы удалить правило:
-
Откройте меню действий в строке правила.
-
Выберите
Удалить. -
Подтвердите действие.
После удаления правило перестанет применяться.
Примеры настройки
Сбор score на HTML-страницах каталога
Цель: собрать JS score у пользователей, которые открывают страницы каталога.
Пример условий:
-
Путь URL начинается с
/catalogue/; -
Статус DDoS-атаки:
Всегда.
Рекомендации
-
Отдавайте JS-скрипт только там, где клиент может выполнить JavaScript.
-
Не используйте широкие правила без условий для ресурсов, где есть API, webhooks или мобильные endpoints.
-
Для начала настройте сбор score на основных HTML-страницах.
-
Проверьте поведение приложения после включения правила.
-
Используйте логи запросов, чтобы убедиться, что JS-скрипт не отдаётся на технические endpoints.
-
Если нужно применять действия к источникам после сбора score, настройте Классификацию ботов и Правила защиты.