|
ID статьи: 3400
Последнее обновление: 09 Oct, 2026
Documentation: Product: WAF Version: 7.7.x
Веб-сервисы и API часто используют формат JSON для обмена данными. Если UserGate WAF будет обрабатывать HTTP-запрос с JSON-телом как обычный текст, не учитывая его структуру, это может привести к пропуску угроз. Для корректной проверки таких запросов в UserGate WAF предусмотрены разбор тела запроса и проверка соответствия данных структуре JSON. Эти параметры настраиваются в JSON-профилях. JSON-профиль, подключенный к правилу публикации, обеспечивает:
О данных в формате JSONJSON (JavaScript Object Notation) — текстовый формат для представления структурированных данных. В HTTP-запросах данные в формате JSON передаются в теле запросов POST, PUT или PATCH с заголовком Content-Type: application/json или аналогичным. Пример HTTP-запроса с JSON.
JSON строится на двух основных конструкциях:
Внутри объектов и массивов допустимы различные типы значений (строка, число, булево значение, пустое значение, объект, массив), связанные поля могут группироваться во вложенные объекты, вложенность может достигать нескольких уровней. Принцип проверки HTTP-запросов с телом в формате JSONЕсли к правилу публикации подключен только JSON-профиль, проверка выполняется последовательно: сначала проверяется заголовок Content-Type или формат тела запроса, затем — заданные лимиты и соответствие JSON-схемам. Парсинг JSON и проверка тела запроса на соответствие JSON-схемам выполняются только в том случае, если в профиле настроен хотя бы один лимит или хотя бы одна JSON-схема. Само по себе указание заголовка Content-Type не запускает проверку структуры JSON. 1. Проверка заголовка Content-Type Если в JSON-профиле указан заголовок Content-Type, UserGate WAF проверяет, соответствует ли ему заголовок запроса. Если заголовок запроса не соответствует заданному значению, запрос пропускается этим профилем и может быть проверен другими профилями или правилами публикации. Если заголовок Content-Type не указан, UserGate WAF проверяет, соответствует ли тело запроса формату JSON:
2. Проверка лимитов Если в JSON-профиле настроены лимиты для тела запроса, UserGate WAF проверяет их соблюдение:
Если лимиты не настроены, этот этап пропускается, а запрос передается на проверку по JSON-схеме. 3. Проверка соответствия JSON-схеме Если в JSON-профиле указаны JSON-схемы, UserGate WAF разбирает тело запроса, проверяет его структуру и сопоставляет ее с заданными схемами.
Если в JSON-профиле не указаны JSON-схемы, запрос пропускается и передается на проверку другими правилами публикации, если они предусмотрены в конфигурации политики безопасности. Порядок совместной проверки запроса JSON-профилем и WAF-профилемЕсли к правилу публикации подключен только JSON-профиль, UserGate WAF будет фильтровать запросы в соответствии с настроенной конфигурацией JSON-профиля. Чтобы после парсинга также выполнялась проверка JSON-тела запроса на наличие угроз, к правилу публикации помимо JSON-профиля также необходимо подключить и WAF-профиль. Правило публикации, в котором одновременно подключены WAF‑профиль (для проверки экспертными WAF‑правилами) и JSON‑профиль (для парсинга и проверки JSON), обрабатывает запрос в несколько этапов, порядок которых определяется параметрами JSON‑профиля. Порядок проверки зависит от того, какие параметры проверки указаны в JSON‑профиле: значение заголовка Content-Type, лимиты на данные, JSON-схема. WAF‑профиль при этом отвечает за проверку по экспертным правилам (заголовки, параметры, тело), а JSON‑профиль — за парсинг, лимиты и проверку по схеме. Рассмотрим проверку запроса на примере, когда к правилу публикации подключены WAF‑профиль и JSON‑профиль и в JSON‑профиле указаны:
Тогда проверка запроса будет выполняться в следующем порядке: 1. Проверка соответствия заголовка Content-Type и лимитов (JSON‑профиль).
2. Проверка заголовков (WAF‑профиль). 3. Проверка тела запроса (JSON‑профиль, затем WAF‑профиль). Настройка и подключение JSON-профиляЧтобы правило публикации участвовало в проверке запросов с данными в формате JSON, необходимо создать JSON-профиль и подключить его к правилу публикации. Важно!Чтобы JSON-профиль выполнял проверку запросов, в нем необходимо указать хотя бы один лимит или добавить хотя бы одну JSON-схему.
Создание JSON-профиляЧтобы создать JSON-профиль: 1. На странице Настройки в разделе Политика безопасности ➜ Профили безопасности ➜ JSON-профили нажмите Добавить. 2. В окне Свойства JSON-профиля на вкладке Общие выполните следующие действия:
3. На вкладке Content-type укажите одно или несколько значений заголовка Content-type. Для запросов с этим значением в заголовке будет выполняться проверка на соответствие формату JSON. ПримечаниеЕсли не выбрано ни одно значение, проверку на соответствие формату JSON будут проходить все входящие запросы.
4. На вкладке Лимиты укажите максимальное значение для одного или нескольких лимитов:
5. На вкладке JSON-схемы при необходимости добавьте хотя бы одну JSON-схему для проверки соответствия запросов необходимым требованиям. Подробнее о создании JSON-схем — в разделе «JSON-схемы» ПримечаниеUserGate WAF поддерживает спецификации JSON Schema Draft 03, Draft 04 и Draft 06.
6. Если вы добавили несколько схем, выберите, требуется ли проверять соответствие хотя бы одной JSON-схеме или всем добавленным. 7. Сохраните изменения. Подключение JSON-профиля к правилу публикацииЧтобы подключить JSON-профиль к правилу публикации: 1. На странице Настройки в разделе Политика сервисов ➜ Правила публикации создайте или выберите правило публикации. Подробнее — в разделе «Публикация веб-сервисов». 2. На вкладке Профили безопасности установите флажок Включить проверку данных в формате JSON и выберите из списка нужный JSON-профиль. ПримечаниеЕсли нужного профиля нет в списке, вы можете создать его, нажав в конце списка «Создать и выбрать новый объект».
3. Завершите настройку других параметров правила публикации и сохраните изменения. Правило публикации настроено на проверку данных в формате JSON. Если в JSON-профиле включено журналирование, события, связанные с обработкой запросов с данными в формате JSON, отображаются на странице Атаки. Подробнее об этом — в разделе «Просмотр обнаруженных атак».
Эта статья была:
Полезна |
Не полезна
ID статьи: 3400
Последнее обновление: 09 Oct, 2026
Ревизия: 66
Просмотры: 66
Комментарии: 0
|