Поиск и замена
Match & Replace автоматически изменяет трафик при прохождении через прокси, без остановки и ручных действий для каждого запроса.
Как работают правила
Каждое правило определяет, что искать и что с этим делать. Когда запрос или ответ соответствует условиям, преобразование применяется немедленно.
Правила применяются в порядке списка. Если два правила меняют один заголовок, сначала применяется первое подходящее правило, а последующие видят результат изменения.
Поля правила
| Поле | Описание |
|---|---|
| Имя | Метка правила. Выберите содержательное имя, объясняющее назначение. |
| Направление | Применение к запросам, ответам или обоим |
| Операция | Выполняемое преобразование (см. таблицу ниже) |
| Режим совпадения | Буквальный, регулярное выражение или всё содержимое — в зависимости от операции |
| Значение поиска | Искомая строка или шаблон |
| Значение замены | Подставляемое значение |
| Включено | Активация или деактивация без удаления |
| Фильтры | Необязательные условия метода, хоста, пути и HTTPQL, ограничивающие применение |
Операции
| Операция | Действие |
|---|---|
| Добавить заголовок | Добавляет заголовок с фиксированными именем и значением |
| Удалить заголовок | Удаляет заголовок по имени |
| Заменить заголовок | Заменяет значение существующего заголовка |
| Заменить тело | Заменяет часть тела по значению поиска |
| Путь / строка запроса / параметр | Меняет путь или значения параметров запроса |
| Строка запроса / ответа | Меняет выбранную часть стартовой строки HTTP |
| Код статуса | Меняет статус ответа |
| Сообщение в полном HTTP-формате | Преобразует стартовую строку, заголовки и тело HTTP вместе |
| Данные WebSocket | Заменяет подходящее содержимое сообщений клиента или сервера |
| Рабочий процесс | Запускает включённый рабочий процесс Convert для выбранного содержимого |
Режимы совпадения
Точный текст ищет точную строку. Подходит для фиксированных токенов, имён заголовков и конкретных значений.
Регулярное выражение ищет совпадение по регулярному выражению. Подходит для меняющейся цели: например, токена каждой новой сессии или захвата группы для повторного использования в замене.
В заменах по регулярному выражению используйте группы захвата $1, $2 и т. д. для ссылки на совпавшие части.
Целиком передаёт преобразованию весь выбранный фрагмент вместо поиска подстроки. Некоторые операции, например добавление или удаление именованного заголовка, используют точное имя и не предлагают все режимы.
Преобразование полного тела ответа
- Создайте и включите рабочий процесс Convert, затем проверьте его на тестовых данных.
- Создайте правило Match & Replace с направлением Ответ и операцией Сценарий (тело сообщения).
- Выберите режим Целиком и рабочий процесс.
- Ограничьте правило фильтром HTTPQL, например:
text
req.host.eq:"cdn.example.com" AND (req.path.cont:".js" OR resp.headers["Content-Type"].value.cont:"javascript")Рабочий процесс получает всё тело; его вывод заменяет тело. Сценарий (заголовок) преобразует именованный заголовок, а Сценарий (исходные заголовки) — блок заголовков. Эти операции получают другие входные данные, а не тело ответа.
Фильтры HTTPQL проверяются в доступном контексте запроса и ответа. Правило направления запроса не может опираться на ещё не полученный ответ. Отключайте журналирование рабочего процесса при большом числе запусков; временно включайте его для диагностики преобразования.
Изменение порядка правил
Перетащите строку правила на нужное место. Порядок важен, если правила меняют пересекающиеся части одного запроса или ответа.
Помощь ИИ
Нажмите Помощь ИИ в редакторе правила и опишите изменение обычным языком. Ogma создаст поля правила по описанию. Проверьте и скорректируйте значения перед включением.
Примеры подходящих запросов:
- «Удалить заголовок X-Frame-Options из всех ответов»
- «Заменить значение заголовка Authorization моим тестовым токеном»
- «Добавить заголовок X-Debug со значением true ко всем запросам»
Проверка правила
Перед включением для живого трафика проверьте правило на примере запроса:
- Откройте редактор правила.
- Вставьте запрос в полном HTTP-формате в раздел Панель проверки.
- Нажмите Применить правила. Панель покажет результат и применённые правила.
- Убедитесь, что вывод соответствует ожиданиям.
- Включите правило.
На панели теста также есть цель Ответ с полями статуса, заголовков и тела. Проверяйте список применённых правил: тестируются подходящие правила, а не только отдельное поле редактора.
«Поиск и замена» и «Перехват»
Поиск и замена работает автоматически. После включения правило преобразует каждый подходящий запрос или ответ без ваших действий.
Перехват останавливает трафик и ждёт ручного решения. Используйте перехват, когда изменение зависит от контекста конкретного запроса. Поиск и замена подходит для одного и того же преобразования при каждом совпадении без проверки вручную.
Типичные применения
- Подменить cookie сессии во всех запросах для проверки другой учётной записи.
- Добавить заголовок, включающий отладочный или административный режим.
- Удалить защитные заголовки ответов для оценки поведения клиента.
- Заменить жёстко заданный хост в ответах перенаправления.
- Переписать префикс пути запроса.