JS-валидация
Вредоносный трафик от ботов может стать причиной множества проблем. Боты могут анализировать цены на веб-ресурсе, воровать контент, подбирать пароли к учётным записям и т. д. Их активность может повлиять на производительность веб-ресурса и иметь негативные последствия для бизнеса в целом.
Эффективным инструментом обнаружения ботов является JS-валидация. В ходе такой проверки анализируются параметры выполнения JavaScript. Если в процессе проверки поведение источника запроса указывает на то, что это бот, запрос блокируется.
Для проверки запросов с помощью JS-валидации составьте правило обработки запросов в сервисе Edge Logic Rules с действием jsChallenge или botChallenge. Действие botChallenge доступно при наличии сервиса Bot Detection.
Алгоритм работы JS-валидации на Платформе¶
- При первом запросе вместо оригинального контента пользователю выдаётся скрипт валидации на языке JavaScript.
- При выполнении пользовательским устройством этого скрипта производятся математические операции и формируется подтверждение в виде хэш-суммы, вычисленной по определённому алгоритму. Часть запросов от ботов отсеивается уже на этом этапе, поскольку многие из них не поддерживают работу со скриптами.
- Затем скрипт инициирует повторный запрос с заголовком
Cookie, содержащим созданное подтверждение. - Платформа NGENIX проверяет этот запрос и либо пропускает его, либо блокирует.
- Если запрос пропущен, пользователь может использовать имеющийся
Cookieв течение фиксированного периода времени, чтобы не проходить проверку повторно. Период времени задаётся в настройках правила обработки запросов.
Прохождение запросом проверки правилом JavaScript-валидации не влияет на статистику в Я.Метрике.
После прохождения jsChallenge или botChallenge в URL добавляется аргумент utm_referrer с значением исходного referrer запроса.
В процессе JavaScript-валидации на первый запрос пользователь получает ответ с HTTP-кодом 503, что может увеличить общее количество таких ответов в сервисах статистики NGENIX.
Если вы собираетесь использовать JS-валидацию, имейте в виду, что для правильной работы систем мониторинга, мобильных приложений и других веб-клиентов, вам потребуется внести соответствующие исключения в правила обработки запросов. Это может включать в себя создание белого списка префиксов, URI и других элементов.
Как предотвратить блокировку запросов поисковых ботов механизмом JS-валидации?¶
В сервисе Edge Logic Rules создайте правило обработки запросов с значением Публичный бот в критерии bot_management.source_category, которое разрешает публичным ботам доступ к веб-ресурсу. Разместите это правило выше правила с JS-валидацией в списке набора правил, так как при обработке запроса правила применяются последовательно в соответствии с их порядковым номером.
- Самостоятельно сформируйте списки на Платформе, определяющие поисковых ботов Яндекс и Google согласно инструкциям на их официальных сайтах.
- Создайте правила обработки запросов, которые разрешают доступ к веб-ресурсам для поисковых ботов Яндекс и Google, основываясь на подготовленных списках.
- Разместите эти правила выше правила с JS-валидацией в списке набора правил, так как при обработке запроса правила применяются последовательно в соответствии с их порядковым номером.