Перейти к содержимому
WebShield Docs

Скрипт на сайте

Как установить скрипт WebShield на страницы сайта, чтобы выявлять бот-фермы и автоматизацию без включения проверки браузера.

Скрипт WebShield — небольшой фрагмент кода, который добавляется на страницы сайта. Он позволяет выявлять бот-фермы и автоматизацию без включения проверки браузера, то есть не показывая посетителям экран проверки.

Установка необязательна. Она нужна тем, кто не хочет включать проверку браузера, но хочет видеть в статистике реальную картину: сколько трафика приходит из ферм и автоматизированных браузеров.

Часть признаков посетителя видна только изнутри страницы. Простые скрипты (curl, парсеры) отсекаются и без этого, а вот автоматизация настоящего браузера — когда атакующий управляет программой обычным Chrome — снаружи выглядит как живой посетитель (см. Недействительный трафик и фрод).

Добавьте одну строку в общий HTML-шаблон страниц:

<script src="/webshieldpro/t.js" async></script>

Ключи и настройка не нужны: скрипт отдаётся с вашего же домена, и WebShield определяет сайт автоматически. Атрибут async обязателен — он гарантирует, что загрузка скрипта не задерживает отрисовку страницы.

Место вставки — <head> или конец <body>, на ваш выбор. В <head> немного лучше: скрипт начинает работать раньше и учитывает в том числе посетителей, которые ушли, не дождавшись полной загрузки страницы. Именно такие короткие заходы характерны для бот-ферм, поэтому в <head> картина получается полнее. Отрисовку это не задерживает — за это отвечает async.

Добавьте в файл темы functions.php. Последний аргумент false ставит скрипт в <head>, true — в подвал страницы; работают оба варианта:

add_action('wp_enqueue_scripts', function () {
wp_enqueue_script('webshield', '/webshieldpro/t.js', [], null, false);
});

В файле 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) не рекомендуется: их часто блокируют расширения браузера, и данные будут неполными.

При строгой политике безопасности содержимого (заголовок Content-Security-Policy) разрешите загрузку и отправку данных со своего домена:

script-src 'self';
connect-src 'self';

Скрипт не загружает ничего со сторонних адресов и обращается только к вашему домену, поэтому директивы 'self' достаточно.

Вкладка Защита статистики домена: выявленные группы адресов с общим слепком и причина пометки. Данные появляются по мере накопления трафика — обычно в течение суток после установки.

Скрипт ничего не блокирует. Он только собирает признаки, по которым WebShield выявляет автоматизированный трафик; решение о блокировке принимается отдельно, на основании общих правил защиты домена.

Скрипт не заменяет проверку браузера. Проверка браузера не пускает автоматического клиента на сайт; скрипт лишь делает его заметным в статистике и в общей корреляции. Если задача — не пустить, включайте проверку браузера.

Для защиты форм — регистраций, заявок, промокодов — этот скрипт не подходит: спросить у него «принимать ли вот эту заявку» не у чего. Такую задачу решает защита форм: её тег выдаёт идентификатор сессии, а ваш бэкенд получает по нему вердикт перед тем, как принять действие. Защита форм работает и для сайтов за нашей защитой; ставить оба скрипта не нужно — её тег собирает всё то же самое.

Посетители, у которых JavaScript отключён или заблокирован расширением, скриптом не учитываются. Атакующий тоже может не выполнять скрипт — тогда он останется без этих данных, но по-прежнему попадёт под общие правила защиты (сигнатуры, лимиты частоты, баны).