Скрипт на сайте
Скрипт WebShield — небольшой фрагмент кода, который добавляется на страницы сайта. Он позволяет выявлять бот-фермы и автоматизацию без включения проверки браузера, то есть не показывая посетителям экран проверки.
Установка необязательна. Она нужна тем, кто не хочет включать проверку браузера, но хочет видеть в статистике реальную картину: сколько трафика приходит из ферм и автоматизированных браузеров.
Зачем это нужно
Заголовок раздела «Зачем это нужно»Часть признаков посетителя видна только изнутри страницы. Простые скрипты (curl, парсеры) отсекаются и без этого, а вот автоматизация настоящего браузера — когда атакующий управляет программой обычным Chrome — снаружи выглядит как живой посетитель.
Скрипт закрывает эту слепую зону: он снимает технический слепок окружения, по которому выявляются клоны одного образа на множестве адресов (см. Недействительный трафик и фрод). Раньше эти данные собирались только на экране проверки браузера — скрипт даёт их на сайтах, где проверка выключена.
Установка
Заголовок раздела «Установка»Добавьте одну строку в общий HTML-шаблон страниц:
<script src="/webshieldpro/t.js" async></script>Ключи и настройка не нужны: скрипт отдаётся с вашего же домена, и WebShield определяет сайт
автоматически. Атрибут async обязателен — он гарантирует, что загрузка скрипта не задерживает
отрисовку страницы.
Место вставки — <head> или конец <body>, на ваш выбор. В <head> немного лучше: скрипт
начинает работать раньше и учитывает в том числе посетителей, которые ушли, не дождавшись полной
загрузки страницы. Именно такие короткие заходы характерны для бот-ферм, поэтому в <head> картина
получается полнее. Отрисовку это не задерживает — за это отвечает async.
Проверить установку можно так: откройте https://ваш-домен/webshieldpro/t.js в браузере. Должен
открыться текст скрипта. Если возвращается ошибка 404 — домен ещё не переведён под защиту WebShield.
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 выявляет автоматизированный трафик; решение о блокировке принимается отдельно, на основании общих правил защиты домена.
Скрипт не заменяет проверку браузера. Проверка браузера не пускает автоматического клиента на сайт; скрипт лишь делает его заметным в статистике и в общей корреляции. Если задача — не пустить, включайте проверку браузера.
Из кода страницы и из вашего бэкенда данные скрипта недоступны: он не заводит сессию, ничего не возвращает в браузер и не имеет API. Всё, что он делает, — пополняет данные, по которым WebShield принимает собственные решения о защите домена.
Поэтому для защиты форм — регистраций, заявок, промокодов — этот скрипт не подходит: спросить у него «принимать ли вот эту заявку» не у чего. Такую задачу решает защита форм: её тег выдаёт идентификатор сессии, а ваш бэкенд получает по нему вердикт перед тем, как принять действие. Защита форм работает и для сайтов за нашей защитой; ставить оба скрипта не нужно — её тег собирает всё то же самое.
Посетители, у которых JavaScript отключён или заблокирован расширением, скриптом не учитываются. Атакующий тоже может не выполнять скрипт — тогда он останется без этих данных, но по-прежнему попадёт под общие правила защиты (сигнатуры, лимиты частоты, баны).