Как подменить данные в ответе сервера с помощью Fiddler?

Ответ

В Fiddler для подмены ответов сервера используется функция AutoResponder.

Пошаговая настройка:

  1. Захватите нужный трафик, включив File → Capture Traffic.
  2. Перейдите на вкладку AutoResponder.
  3. Установите галочки Enable rules и Unmatched requests passthrough.
  4. Перетащите нужный запрос из списка сессий в панель правил или создайте правило вручную.
  5. Настройте правило:
    • Поле "If request matches": Укажите URL или его часть (можно использовать * как wildcard). Пример: *api.example.com/data*.
    • Поле "Then respond with": Выберите файл с модифицированным ответом (например, .txt или .json) или выберите из предустановленных ответов (например, 404_Plain.dat).

Пример правила для подмены JSON:

  • Условие: *api/user/profile*
  • Ответ (файл mock_profile.json):
    {
    "id": 999,
    "name": "Test User",
    "plan": "premium"
    }

Важные нюансы:

  • Для перехвата HTTPS-трафика необходимо установить и доверять сертификату Fiddler Root Certificate (Tools → Options → HTTPS).
  • Подмена происходит только на стороне клиента, реальный сервер не затрагивается.
  • Функция идеальна для тестирования различных сценариев API, ошибок, таймаутов и поведения клиентского приложения.

Ответ 18+ 🔞

Ах ты ж, блядь, вот же удобная штука, этот AutoResponder в Fiddler! Прям как волшебная палочка для тестировщика, только вместо «вингардиум левиоса» — «заебись, подмени!». Сейчас расскажу, как не накосячить.

Для начала, конечно, надо трафик ловить. Включи захват, сука, File → Capture Traffic. Без этого нихуя не заработает, как без воды — и ни туды, и не сюды.

Дальше бегом на вкладку AutoResponder. Там две главные галочки, без них — пиздец:

  1. Enable rules — это типа включить весь этот цирк.
  2. Unmatched requests passthrough — а это чтобы всё, что не под правила, спокойно уходило на сервер, а не валилось в бездну. Обязательно ставь, а то будешь потом чесать репу, почему интернет не работает.

Теперь самое интересное — создание правила. Можно тупо перетащить нужный запрос из списка сессий в панель правил. Фидлер сам предложит паттерн. Красота, ёпта!

А можно и вручную, если ты любитель тонкой настройки, как хирург-садист.

  • If request matches: Сюда пишешь, на какой URL реагировать. Можно *api.example.com/data*. Звёздочка — это wildcard, наш друг и товарищ.
  • Then respond with: А вот тут магия. Тыкаешь на папку, выбираешь свой файлик с подменным ответом. Или, если лень, можешь из коробки выбрать 404_Plain.dat и послать всем в жопу.

Вот тебе живой пример, чтобы не быть мудаком: Допустим, тебе надо подменить ответ от какого-нибудь ебучего профиля.

  • Условие: *api/user/profile*
  • Ответ (берём файлик mock_profile.json):
{
  "id": 999,
  "name": "Test User",
  "plan": "premium"
}

И всё, блядь! Теперь, когда твоё приложение полезет за профилем, оно получит этого «Test User» с планом «premium», а не реальные данные. Сервер при этом в полной жопе не понимает, что происходит. Красота!

А теперь, сука, важные нюансы, чтобы не обосраться:

  1. HTTPS, мать его. Чтобы перехватывать защищённый трафик, надо установить и доверить сертификат Fiddler. Идёшь в Tools → Options → HTTPS, ставишь галочки и следуешь указаниям. Иначе будешь ловить только http, а это в 2024 году — как охотиться на мамонтов палкой.
  2. Подмена только у тебя. Запомни раз и навсегда: этот цирк происходит ТОЛЬКО на твоём компьютере. Реальный сервер даже не чихнёт. Идеально для того, чтобы проверить, как твоё приложение поведёт себя, если сервер внезапно начнёт слать пиздец вместо данных.
  3. Для чего это всё? Да для всего, блядь! Хочешь протестировать, как отреагирует фронтенд на 500-ю ошибку? Легко! На таймаут? Запросто! На неожиданный формат данных? Да похуй, подмени ответ на какую-нибудь дичь и смотри, как всё летит к чертям. Вот это и есть качественное тестирование, а не просто кнопки тыкать.

В общем, инструмент — огонь. Главное, не забудь потом правила выключить, а то будешь неделю думать, почему у тебя в продакшене все пользователи — Test User.