Перейти к содержимому
Гайды 6 мин чтения 1 просмотров

Fiddler

Fiddler: анализ трафика через прокси на Windows

Браузер

Fiddler является бесплатным веб-отладочным прокси-сервером для Windows, позволяющим перехватывать, просматривать и модифицировать HTTP/HTTPS трафик между клиентом и сервером. Инструмент позиционируется как посредник (man-in-the-middle proxy), который перехватывает весь веб-трафик, проходящий через него, предоставляя детализированный анализ каждого запроса и ответа.

Что такое Fiddler?

Fiddler работает как локальный прокси-сервер, по умолчанию прослушивающий порт 8888. При его запуске он автоматически настраивает системные прокси-настройки Windows, направляя весь HTTP/HTTPS трафик через себя. Это позволяет разработчикам, тестировщикам и аналитикам просматривать, анализировать и модифицировать сетевые взаимодействия, происходящие на их машине.

Основные функции Fiddler включают:
* Перехват и просмотр HTTP/HTTPS запросов и ответов.
* Дешифрование HTTPS-трафика.
* Модификация запросов и ответов "на лету".
* Имитация ответов сервера.
* Анализ производительности веб-приложений.
* Фильтрация трафика по различным критериям.

Установка и базовый запуск

Fiddler Classic доступен для загрузки с официального сайта Telerik. Процесс установки стандартный для Windows-приложений.

После установки и первого запуска Fiddler автоматически конфигурирует системные прокси-настройки. Все браузеры и приложения, использующие системный прокси, начнут направлять свой трафик через Fiddler.

Интерфейс Fiddler состоит из нескольких ключевых областей:
* Session List (слева): Список всех перехваченных HTTP/HTTPS сессий. Каждая строка представляет собой отдельный запрос и соответствующий ему ответ.
* Inspectors (справа, сверху): Вкладки для детального анализа выбранной сессии (запрос и ответ).
* QuickExec (справа, снизу): Командная строка для выполнения быстрых команд и фильтрации.
* Filters (справа, сверху, отдельная вкладка): Панель для настройки правил фильтрации трафика.
* AutoResponder (справа, сверху, отдельная вкладка): Инструмент для имитации ответов сервера или перенаправления запросов.

Перехват HTTPS-трафика

Для анализа современного веб-трафика, который преимущественно использует HTTPS, Fiddler должен выступать в роли доверенного центра сертификации (CA) для вашей системы.

Настройка дешифрования HTTPS

  1. Откройте Tools > Options... > HTTPS.
  2. Установите флажок "Decrypt HTTPS traffic".
  3. Fiddler предложит установить свой корневой сертификат в хранилище доверенных сертификатов Windows. Подтвердите установку.
  4. Перезапустите Fiddler и, возможно, браузеры/приложения для применения изменений.

После этой настройки Fiddler будет генерировать поддельные сертификаты для каждого HTTPS-соединения, подписывая их своим корневым сертификатом. Ваша система будет доверять этим сертификатам, позволяя Fiddler дешифровать и просматривать зашифрованный трафик.

Возможные проблемы и решения

  • Предупреждения безопасности в браузере: Если браузер продолжает выдавать предупреждения о недоверенном соединении, убедитесь, что сертификат Fiddler установлен корректно в хранилище сертификатов браузера (некоторые браузеры, например Firefox, имеют собственное хранилище).
  • Certificate Pinning: Некоторые приложения используют "certificate pinning", чтобы предотвратить MITM-атаки, включая те, что выполняются Fiddler. В таких случаях приложение может отказаться устанавливать соединение. Обход certificate pinning требует более сложных методов, выходящих за рамки базового использования Fiddler.
  • VPN/другие прокси: Fiddler может конфликтовать с другими VPN-клиентами или прокси-серверами, которые также изменяют сетевые настройки.

Анализ запросов и ответов (Inspectors)

Вкладка "Inspectors" предоставляет детализированный просмотр выбранной сессии. Она разделена на две части: "Request" (запрос) и "Response" (ответ).

Основные вкладки инспекторов

  • Headers: Отображает HTTP-заголовки запроса и ответа. Полезно для проверки User-Agent, Cookies, Content-Type, Cache-Control и других метаданных.
  • TextView: Представляет тело запроса/ответа в виде обычного текста. Часто используется для просмотра HTML, CSS, JavaScript или XML/JSON, если они не содержат сложных структур.
  • WebView: Рендерит HTML-ответ в упрощенном браузере, показывая, как страница будет выглядеть.
  • Raw: Отображает необработанные байты запроса или ответа, включая заголовки и тело, как они были отправлены по сети.
  • JSON/XML: Автоматически форматирует и подсвечивает синтаксис для JSON- и XML-данных, делая их легкочитаемыми.
  • Auth: Если запрос содержит заголовки аутентификации (например, Authorization), эта вкладка их декодирует и отображает.
  • Cookies: Показывает куки, отправленные с запросом (Cookie) и установленные сервером (Set-Cookie).
  • Timelines: Визуализирует временные задержки для каждого этапа запроса (DNS-разрешение, соединение, отправка запроса, получение первого байта, получение последнего байта). Полезно для анализа производительности.

Модификация трафика

Fiddler предоставляет мощные инструменты для изменения запросов и ответов, что критически важно для отладки и тестирования.

AutoResponder

Вкладка AutoResponder позволяет перехватывать запросы и отвечать на них заранее определенным содержимым или перенаправлять их.

Примеры использования AutoResponder:
* Имитация API-ответов: Разработка фронтенда без работающего бэкенда.
1. Перейдите на вкладку "AutoResponder".
2. Установите флажок "Enable rules" и "Unmatched requests passthrough".
3. Нажмите "Add Rule".
4. В поле "Rule Editor" введите URL-шаблон (например, exact:https://api.example.com/users).
5. В поле "Action" выберите "Find a file..." и укажите локальный JSON-файл с имитированным ответом.
6. Нажмите "Save". Теперь запросы к https://api.example.com/users будут получать данные из вашего локального файла.
* Блокировка ресурсов: Предотвращение загрузки определенных скриптов или рекламных баннеров.
1. Создайте правило с URL-шаблоном (например, regex:.*\.google-analytics\.com/ga\.js).
2. В "Action" выберите *drop.
* Перенаправление на локальные версии файлов: Тестирование изменений в JavaScript или CSS без развертывания на сервере.
1. Создайте правило с URL-шаблоном (например, exact:https://www.example.com/assets/app.js).
2. В "Action" выберите "Find a file..." и укажите путь к вашей локальной версии app.js.

FiddlerScript

FiddlerScript предоставляет возможность писать кастомные правила на C# для программной обработки трафика. Доступ к FiddlerScript осуществляется через Rules > Customize Rules... (откроется файл CustomRules.js в вашем текстовом редакторе).

Основные функции для перехвата:
* OnBeforeRequest(oSession: Session): Вызывается перед отправкой запроса на сервер.
* OnBeforeResponse(oSession: Session): Вызывается после получения ответа от сервера, но до его отправки клиенту.

Примеры FiddlerScript:
* Изменение заголовка запроса:
csharp static function OnBeforeRequest(oSession: Session) { if (oSession.url.Contains("api.example.com")) { oSession.oRequest.headers.Add("X-Custom-Header", "Fiddler-Test"); } }
* Модификация тела ответа:
csharp static function OnBeforeResponse(oSession: Session) { if (oSession.url.Contains("api.example.com/data") && oSession.oResponse.headers.ExistsAndContains("Content-Type", "application/json")) { oSession.utilDecodeResponse(); // Декодировать gzip/deflate, если применимо var sBody = oSession.GetResponseBodyAsString(); sBody = sBody.Replace("oldValue", "newValue"); oSession.utilSetResponseBody(sBody); } }
После внесения изменений в CustomRules.js сохраните файл. Fiddler автоматически перезагрузит скрипт.

Фильтрация трафика

Объем трафика может быть значительным. Fiddler предлагает несколько способов фильтрации для фокусировки на релевантных сессиях.

Вкладка Filters

Вкладка Filters (рядом с Inspectors) позволяет настроить мощные правила фильтрации.

  • Hosts:
    • Show only if URL contains: Отображает только сессии, URL которых содержат указанную строку.
    • Hide if URL contains: Скрывает сессии, URL которых содержат указанную строку.
    • Show only for the following Hosts: Отображает трафик только для перечисленных хостов.
  • Client Process:
    • Show only traffic from: Позволяет выбрать конкретные процессы (браузеры, приложения), трафик которых будет отображаться.
  • Response Status: Фильтрация по кодам состояния HTTP (например, только 4xx или 5xx ошибки).
  • Breakpoints: Позволяет автоматически приостанавливать трафик при совпадении с определенными критериями, давая возможность модифицировать его перед отправкой или получением.

QuickExec команды

Командная строка QuickExec (внизу справа) позволяет быстро применять фильтры и выполнять другие действия.

  • select <mime-type>: Выбрать все сессии с указанным MIME-типом.
    • Пример: select image (выбрать все изображения), select json (выбрать все JSON-ответы).
  • select <status-code>: Выбрать все сессии с указанным кодом состояния.
    • Пример: select 404.
  • bpu <url-string>: Установить breakpoint перед запросом, если URL содержит url-string.
  • bpa <url-string>: Установить breakpoint после ответа, если URL содержит url-string.
  • cls: Очистить список сессий.
  • quit: Закрыть Fiddler.

Анализ производительности

Fiddler предоставляет несколько инструментов для оценки производительности веб-приложений.

Вкладка Statistics

После выбора нескольких сессий (или всех) во вкладке Statistics отображаются агрегированные данные:
* Общее количество запросов.
* Общий размер переданных данных (запросы + ответы).
* Время загрузки страницы (Page Load Time).
* Среднее время ответа.
* Разбивка по типам содержимого (изображения, скрипты, CSS).

Вкладка Timelines

На вкладке Timelines отображается водопадная диаграмма (waterfall chart) для выбранных сессий, визуализирующая последовательность запросов и время, затраченное на каждый этап (DNS, Connect, Request, Response). Это помогает идентифицировать блокирующие ресурсы, медленные запросы и другие узкие места производительности.

Интеграция с другими прокси-сервисами

Fiddler может быть настроен для работы в связке с другими прокси-серверами, выступая в роли апстрим-прокси. Это полезно, например, при использовании корпоративного прокси или прокси-сервиса для доступа к гео-ограниченному контенту.

Настройка апстрим-прокси

  1. Откройте Tools > Options... > Gateway.
  2. Выберите "Use a custom proxy".
  3. Введите адрес и порт апстрим-прокси (например, http=proxy.example.com:8080;https=proxy.example.com:8080).
  4. Если апстрим-прокси требует аутентификации, укажите соответствующие учетные данные.

При такой конфигурации Fiddler будет перехватывать трафик от клиента, обрабатывать его (например, дешифровать HTTPS), а затем перенаправлять через указанный апстрим-прокси.

Расширения Fiddler

Fiddler поддерживает расширения, которые могут добавлять новые функции или инспекторы. Некоторые популярные расширения включают:
* SyntaxHighlighting: Улучшенное форматирование для различных типов данных.
* SAZ (Session Archive Zip): Формат для сохранения и обмена сессиями Fiddler.
* Waterfall: Расширенный анализ производительности.

Расширения можно найти на сайте Telerik или установить через Tools > Fiddler Add-ons.

Fiddler остается мощным и гибким инструментом для анализа и отладки веб-трафика на платформе Windows, предоставляя глубокий контроль над сетевыми взаимодействиями.

Обновлено: 04.03.2026
Назад к категории

Попробуйте наши прокси

20,000+ прокси в 100+ странах мира