Страница блокировки, показываемая пользователю, — это видимое лицо решения безопасности.
Когда пользователь заблокирован, видимое им генерическое сообщение «access denied» — это не просто технический вывод; это часть опыта безопасности организации. Корпоративный клиент, гражданин, бизнес-партнёр или конечный пользователь хочет понять, почему его задержали, что ему нужно сделать и временно это или постоянно. Грубые и небрендированные страницы ошибок превращают решение безопасности в непрофессиональный опыт.
Во время DDoS- или bot-атаки показывать пользователю только ошибку зачастую недостаточно. Реальному пользователю нужно объяснить, что нужно немного подождать, что его запрос проверяется, что автоматический трафик отсеивается и что операция продолжится. Поток обратного отсчёта, challenge и CAPTCHA в этой точке выполняет и функцию безопасности, и функцию коммуникации.
В многоязычных и мультитенантных средах одна и та же страница не подходит всем. Банк может хотеть показывать пояснение на местном языке и в корпоративных цветах; сервис-провайдер может хотеть использовать разный логотип и текст для каждого tenant; а API-эндпоинт должен возвращать JSON-сообщение об ошибке вместо HTML. Единственная фиксированная блок-страница не может удовлетворить эти потребности.
Для службы поддержки и команд безопасности важен и код причины. Когда пользователь получает ошибку, команде поддержки нужно понимать, какое правило, какое решение по боту или какое WAAP-действие сработало. Но эта информация должна предоставляться контролируемо; в некоторых случаях она показывается пользователю, в некоторых — хранится только в логе и потоке поддержки.
Подход TR7 выводит страницы блокировки из роли статического вывода ошибки, возвращаемого после решения безопасности; он превращает их в настраиваемый WAAP-опыт с брендом, языком, кодом причины, CAPTCHA, DDoS challenge и форматами API-ответа.
Наш подход
TR7 управляет страницами блокировки с помощью готовых шаблонов, EJS-рендеринга, native-ответа и инъекции кода причины.
Готовые категории страниц охватывают разные действия безопасности
Существуют отдельные структуры шаблонов для DDoS challenge, JavaScript-проверки, CAPTCHA, ошибки bot-защиты и AAM 503. Каждый тип страницы может быть спроектирован под разный пользовательский опыт и решение безопасности.
EJS-шаблоны управляют темой, цветом и языком
Страницы CAPTCHA создаются с помощью EJS-шаблонов. Тема, размер, фон, цвет текста и словарь языка могут применяться во время рендеринга.
Страница обслуживается прямо со слоя прохода
TR7 может вернуть ответ блокировки или challenge, не обращаясь к backend. Этот подход и снижает задержку, и предотвращает излишнюю нагрузку на слой приложения в момент атаки.
Код причины и переменные запроса могут быть встроены в страницу
Reason code и кастомные переменные request могут контролируемо размещаться внутри шаблона. Это помогает командам поддержки выделить причину ошибки и при необходимости дать пользователю осмысленное пояснение.
Возможности
TR7 Кастомизация страницы блокировки централизованно управляет HTML, CAPTCHA, challenge и JSON-ответами для разных WAAP-решений.
Страница DDoS challenge задерживает реального пользователя без паники
TR7 может использовать специальные страницы challenge для DDoS-сценариев. Эти страницы могут содержать обратный отсчёт, информирование пользователя и сообщения проверки. Реальному пользователю объясняется, что его запрос обрабатывается и вскоре продолжится. Так в момент атаки обеспечивается не только блокировка, но и управляемый пользовательский опыт.
Страница JavaScript-проверки помогает отсеивать трафик автоматизации
Страницы DDoS JS solver поддерживают поток проверки через поведение браузера. Логикой контроля на стороне клиента ставится цель отсеять автоматический трафик. Могут использоваться готовые файлы на нескольких языках. Потребность в новом языке или другом тексте удовлетворяется структурой шаблона.
EJS-шаблон CAPTCHA гибко управляет темой, размером и языком
Шаблоны CAPTCHA формируют опыт CAPTCHA. Могут использоваться варианты темы `auto`, `dark` и `light`; размеры `small`, `medium` и `large`. Цвет фона и текста может настраиваться параметрами. Эта структура делает проверку безопасности согласованной с визуальной идентичностью организации.
Текстовый и невидимый типы CAPTCHA адаптируются под разные потоки
В конфигурации CAPTCHA могут использоваться текстовый или невидимый типы. Текстовый CAPTCHA подходит для случаев, требующих явного ответа пользователя. Невидимый режим может быть предпочтительным в сценариях с потребностью в меньшем трении. Так один и тот же контроль безопасности настраивается под разные цели пользовательского опыта.
Словарь языка поддерживает добавление языков на уровне шаблона
TR7 поставляется с готовыми словарями текстов CAPTCHA на нескольких языках. Около 16 текстовых полей, таких как заголовок, описание, поле ввода, отправить, обновить, проверяется, успешно, неудачно, ошибка и истекло, могут управляться по языку. Новые языки могут быть расширены добавлением в объект перевода внутри шаблона. Пользователь может сам добавить нужный язык; так обеспечивается многоязычная структура.
Конфигурация CAPTCHA per-vService обеспечивает разделение tenant и приложения
Каждый vService может использовать разный вид и поведение со своим значением конфигурации CAPTCHA. Это важно в приложениях, работающих в мультитенантной, MSSP-среде или под разным брендом. На одном и том же TR7 каждое приложение может работать со своим цветом, языком, текстом и стилем проверки. Контроль безопасности остаётся централизованным, а пользовательский опыт разделяется.
Страница ошибки bot-защиты отдельно обрабатывает вредоносный трафик автоматизации
Для решений bot-защиты может использоваться специальная страница ошибки. Когда срабатывает вредоносный user agent, поведение автоматизации или правило bot-защиты, пользователю может возвращаться отдельный ответ. Эта страница может быть кастомизирована под язык бренда и процесс поддержки. Технический код причины при желании может храниться внутри, при желании — показываться контролируемо.
Страница AAM 503 даёт контролируемое сообщение при недоступности backend
Когда backend недоступен или pool временно не может обслуживать, может использоваться специальная страница AAM 503. Эта страница предотвращает показ пользователю пустой ошибки браузера или бессмысленного обрыва соединения. Плановое обслуживание, временная перегрузка или проблема доступа к сервису могут быть представлены более понятным сообщением. Организация сохраняет бренд и направление к поддержке даже в момент ошибки.
Кастомные WAAP-действия могут возвращать ответ HTML или JSON
TR7 в WAAP-действиях может возвращать кастомный ответ с определённым status code, content type и содержимым файла. Может использоваться HTML-страница, простой текст или JSON-тело ошибки для API-эндпоинтов. Может применяться модель возврата содержимого на основе файла или inline. Эта гибкость создаёт разный опыт блокировки для веб-пользователей и API-клиентов.
Инъекция reason code облегчает поддержку и разбор инцидентов
В содержимое страницы могут размещаться переменные request или коды причины уровня transaction. Служба поддержки по скриншоту от пользователя или коду ошибки может быстрее понять, какое решение безопасности сработало. Команда безопасности может определять как политику, какая информация будет показана пользователю, а какая останется только на стороне лога. Эта структура повышает скорость отладки, удерживая под контролем риск утечки информации.
Операционная глубина
Для надёжной работы страниц блокировки совместно планируются обслуживание файлов, добавление языков, выбор status code, динамические переменные и управление статическими ассетами.
Модель добавления языка
Для добавления нового языка в шаблон CAPTCHA в соответствующий объект перевода может быть определён новый словарь языка. Тексты заголовка, ошибки, проверки и ожидания разделяются по языку. Этот подход привязывает многоязычную поддержку не к фиксированному списку продукта, а к расширяемой структуре шаблона.
Пути файлов ассетов
Для страниц CAPTCHA и challenge base path, путь обслуживания JavaScript, HTML-файл и JavaScript-файл могут управляться отдельными полями конфигурации. Это разделение обеспечивает обслуживание статического содержимого по правильному пути. При нескольких типах страниц структура файлов остаётся более читаемой.
Возврат native-ответа
TR7 при возникновении определённого условия может с помощью логики native-ответа генерировать прямой ответ HTML или JSON. Этот ответ генерируется, не обращаясь к backend. В challenge, CAPTCHA и кастомных WAAP-действиях задержка и нагрузка на приложение так снижаются.
Гибкость status code
Для разных сценариев могут использоваться разные значения HTTP status code. Пока поток CAPTCHA может предоставляться с 200, решения о лимите или блокировке могут возвращаться с кодами вроде 403, 413, 451 или 503. Выбор правильного семантического кода для API- и веб-пользователей повышает качество интеграции.
Использование логотипа и SVG
Логотип, SVG или графическое содержимое могут размещаться внутри HTML как inline или base64. Этот метод может снизить зависимость от отдельных ассетов и облегчить создание однофайловой кастомной страницы. Бренд организации может быть добавлен на страницу через кастомную HTML-вёрстку.
Синхронизация файлов
Готовые файлы DDoS challenge и JS-проверки могут отслеживаться механизмом динамической привязки файлов. При обновлении файла соответствующее содержимое отражается на слое обслуживания. Эта структура помогает держать статические страницы актуальными, не превращая их в операцию ручного перезапуска сервиса.
В каких сценариях применяется
Брендированная страница блокировки на местном языке для банка
Банк может использовать кастомную CAPTCHA или блок-страницу с бело-синей темой, корпоративным логотипом, пояснением на местном языке и ссылкой на поддержку. Пока код причины скрыт от пользователя, команда поддержки может изучить реальную причину по логу.
DDoS challenge при интенсивной атаке на e-commerce
Когда в период кампании растёт трафик автоматизации, реальному пользователю может показываться страница DDoS challenge с обратным отсчётом. Пока пользователь после короткой проверки продолжает поток покупки, bot-трафик отсеивается.
Сообщение о доступе по региону в государственном портале
Государственная организация при определённых решениях о доступе может возвращать кастомную страницу с пояснением на местном языке. Пользователю корпоративным языком объясняется, почему доступ ограничен и к какому каналу поддержки обратиться.
JSON-ответ блокировки для API-эндпоинта
В API-сервисах вместо HTML-страницы корректнее возвращать ответ 403 или 429 в формате JSON. TR7 с помощью кастомного WAAP-действия встраивает значение reason в JSON-тело, позволяя клиентским приложениям обрабатывать ошибку программно.
Часто задаваемые вопросы
Для каких решений безопасности можно использовать кастомную страницу блокировки?
Как добавить новый язык на страницу CAPTCHA?
Нагружает ли страница блокировки backend?
Можно ли для API-эндпоинтов возвращать JSON-ответ ошибки вместо HTML?
Должен ли код причины всегда показываться пользователю?
Может ли в мультитенантной среде каждое приложение использовать разную страницу?
Сделайте опыт после решения безопасности тоже соответствующим вашему бренду
Настраиваемые страницы блокировки для DDoS, CAPTCHA, bot-защиты и WAAP-действий. Посмотрим вместе, как это работает в вашей собственной конфигурации.