Скрипт на сайте
Как установить скрипт WebShield на страницы сайта, чтобы выявлять бот-фермы и автоматизацию без включения проверки браузера.
Скрипт WebShield — небольшой фрагмент кода, который добавляется на страницы сайта. Он позволяет выявлять бот-фермы и автоматизацию без включения проверки браузера, то есть не показывая посетителям экран проверки.
Установка необязательна. Она нужна тем, кто не хочет включать проверку браузера, но хочет видеть в статистике реальную картину: сколько трафика приходит из ферм и автоматизированных браузеров.
Зачем это нужно
Заголовок раздела «Зачем это нужно»Часть признаков посетителя видна только изнутри страницы. Простые скрипты (curl, парсеры) отсекаются и без этого, а вот автоматизация настоящего браузера — когда атакующий управляет программой обычным Chrome — снаружи выглядит как живой посетитель (см. Недействительный трафик и фрод).
Установка
Заголовок раздела «Установка»Добавьте одну строку в общий HTML-шаблон страниц:
<script src="/webshieldpro/t.js" async></script>Ключи и настройка не нужны: скрипт отдаётся с вашего же домена, и WebShield определяет сайт
автоматически. Атрибут async обязателен — он гарантирует, что загрузка скрипта не задерживает
отрисовку страницы.
Место вставки — <head> или конец <body>, на ваш выбор. В <head> немного лучше: скрипт
начинает работать раньше и учитывает в том числе посетителей, которые ушли, не дождавшись полной
загрузки страницы. Именно такие короткие заходы характерны для бот-ферм, поэтому в <head> картина
получается полнее. Отрисовку это не задерживает — за это отвечает async.
WordPress
Заголовок раздела «WordPress»Добавьте в файл темы functions.php. Последний аргумент false ставит скрипт в <head>, true — в
подвал страницы; работают оба варианта:
add_action('wp_enqueue_scripts', function () { wp_enqueue_script('webshield', '/webshieldpro/t.js', [], null, false);});Next.js
Заголовок раздела «Next.js»В файле app/layout.tsx:
import Script from "next/script";
<Script src="/webshieldpro/t.js" strategy="afterInteractive" />Другие системы
Заголовок раздела «Другие системы»Подойдёт любой способ вставить тег <script> в общий шаблон страниц: блок «пользовательский код в
шапке или подвале» в конструкторе сайта, шаблон base.html в Django, layout.blade.php в Laravel.
Важно, чтобы скрипт попадал на все страницы, а не только на главную — иначе часть посетителей
останется неучтённой.
Вставлять скрипт через менеджеры тегов (например, Google Tag Manager) не рекомендуется: их часто блокируют расширения браузера, и данные будут неполными.
Если на сайте настроен CSP
Заголовок раздела «Если на сайте настроен CSP»При строгой политике безопасности содержимого (заголовок Content-Security-Policy) разрешите загрузку
и отправку данных со своего домена:
script-src 'self';connect-src 'self';Скрипт не загружает ничего со сторонних адресов и обращается только к вашему домену, поэтому директивы
'self' достаточно.
Где смотреть результат
Заголовок раздела «Где смотреть результат»Вкладка Защита статистики домена: выявленные группы адресов с общим слепком и причина пометки. Данные появляются по мере накопления трафика — обычно в течение суток после установки.
Ограничения
Заголовок раздела «Ограничения»Скрипт ничего не блокирует. Он только собирает признаки, по которым WebShield выявляет автоматизированный трафик; решение о блокировке принимается отдельно, на основании общих правил защиты домена.
Скрипт не заменяет проверку браузера. Проверка браузера не пускает автоматического клиента на сайт; скрипт лишь делает его заметным в статистике и в общей корреляции. Если задача — не пустить, включайте проверку браузера.
Для защиты форм — регистраций, заявок, промокодов — этот скрипт не подходит: спросить у него «принимать ли вот эту заявку» не у чего. Такую задачу решает защита форм: её тег выдаёт идентификатор сессии, а ваш бэкенд получает по нему вердикт перед тем, как принять действие. Защита форм работает и для сайтов за нашей защитой; ставить оба скрипта не нужно — её тег собирает всё то же самое.
Посетители, у которых JavaScript отключён или заблокирован расширением, скриптом не учитываются. Атакующий тоже может не выполнять скрипт — тогда он останется без этих данных, но по-прежнему попадёт под общие правила защиты (сигнатуры, лимиты частоты, баны).