JS-валидация

В статье описывается принцип работы JS-валидации, реализованный на Платформе в составе сервиса Edge Logic Rules.

Вредоносный трафик от ботов может стать причиной множества проблем. Боты могут анализировать цены на веб-ресурсе, воровать контент, подбирать пароли к учётным записям и т. д. Их активность может повлиять на производительность веб-ресурса и иметь негативные последствия для бизнеса в целом.

Эффективным инструментом обнаружения ботов является JS-валидация. В ходе такой проверки анализируются параметры выполнения JavaScript. Если в процессе проверки поведение источника запроса указывает на то, что это бот, запрос блокируется.

Для проверки запросов с помощью JS-валидации составьте правило обработки запросов в сервисе Edge Logic Rules с действием jsChallenge.

Алгоритм работы JS-валидации на Платформе

  1. При первом запросе вместо оригинального контента пользователю выдаётся скрипт валидации на языке JavaScript.

  2. При выполнении пользовательским устройством этого скрипта, производятся математические операции и формируется подтверждение в виде хэш-суммы, вычисленной по определённому алгоритму. Часть запросов от ботов отсеивается уже на этом этапе, поскольку многие из них не поддерживают работу со скриптами.

  3. Затем скрипт инициирует повторный запрос с заголовком Cookie, содержащим созданное подтверждение.

  4. Платформа NGENIX проверяет этот запрос и либо пропускает его, либо блокирует.

  5. Если запрос пропущен, пользователь может использовать имеющийся Cookie в течение фиксированного периода времени, чтобы не проходить проверку повторно. Период времени задаётся в настройках правила обработк запросов.

В процессе JavaScript-валидации на первый запрос пользователь получает ответ с HTTP-кодом 503, что может увеличить общее количество таких ответов в сервисах статистики NGENIX.

Если вы собираетесь использовать JS-валидацию, имейте в виду, что для правильной работы систем мониторинга, мобильных приложений и других веб-клиентов, вам потребуется внести соответствующие исключения в правила обработки запросов. Это может включать в себя создание белого списка префиксов, URI и других элементов.

Last updated