kwork-api/MITMPROXY.md
Claw 7b01544802 Add mitmproxy to HAR conversion tools
- scripts/mitmproxy-to-har.py: Конвертер mitm → HAR
- MITMPROXY.md: Инструкция по записи и конвертации
- Два способа: mitmweb (GUI) и mitmdump + скрипт
2026-03-22 22:36:34 +00:00

3.6 KiB
Raw Blame History

Mitmproxy → HAR

Быстрый старт

Вариант 1: mitmweb (проще всего)

# 1. Запустить mitmweb
mitmweb --mode regular

# 2. Открыть в браузере
http://127.0.0.1:8081

# 3. Настроить прокси в браузере
# localhost:8081

# 4. Выполнить действия на Kwork

# 5. Экспорт: File → Export → HAR

Вариант 2: mitmdump + конвертация

# 1. Записать трафик
mitmdump -w kwork-dump.mitm

# 2. Конвертировать в HAR
python3 scripts/mitmproxy-to-har.py kwork-dump.mitm kwork-dump.har

# 3. Анализировать
jq '.log.entries | length' kwork-dump.har

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

Системный прокси (Linux)

export http_proxy=http://127.0.0.1:8081
export https_proxy=http://127.0.0.1:8081

Firefox

  1. Настройки → Прокси
  2. Manual proxy configuration
  3. HTTP Proxy: 127.0.0.1:8081
  4. ☑ Also use for HTTPS

Chrome

# Запустить с прокси
google-chrome --proxy-server="127.0.0.1:8081"

Установка сертификата

# 1. Открыть в браузере
http://mitm.it

# 2. Скачать сертификат для вашей ОС

# 3. Установить в доверенные
# Linux:
sudo cp mitmproxy-ca-cert.pem /usr/local/share/ca-certificates/
sudo update-ca-certificates

# 4. Перезапустить браузер

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

# Только Kwork
mitmdump -w kwork.mitm --set 'filter=~u kwork\.ru'

# Только API
mitmdump -w kwork-api.mitm --set 'filter=~u /api/'

# Исключить статику
mitmdump -w kwork.mitm --set 'filter=!~u \.(css|js|png|jpg|gif|svg)'

Скрипт для записи Kwork

#!/bin/bash
# record-kwork.sh

echo "Starting mitmproxy recording for Kwork..."
echo "Configure your browser to use proxy: localhost:8081"
echo "Press Ctrl+C when done"

mitmdump \
  -w kwork-session.mitm \
  --set 'filter=~u kwork\.ru' \
  --set 'ignore_hosts=~u (cdn|counter|yandex|google)' \
  --set 'keep_host_headers=true'

echo "Converting to HAR..."
python3 scripts/mitmproxy-to-har.py kwork-session.mitm kwork-session.har

echo "Done! File: kwork-session.har"
echo "Analyze with: jq '.log.entries | length' kwork-session.har"

Анализ записанного HAR

# Количество запросов
jq '.log.entries | length' kwork-session.har

# JSON эндпоинты
jq '[.log.entries[] | select(.response.content.mimeType | test("json"; "i")) | .request.url | split("?")[0]] | unique' kwork-session.har

# Самые большие ответы
jq '[.log.entries[] | {url: .request.url, size: .response.bodySize}] | sort_by(.size) | reverse | .[0:10]' kwork-session.har

# Авторизация
jq '[.log.entries[].request.headers[] | select(.name | ascii_downcase | test("authorization|cookie"; "i"))] | unique' kwork-session.har

Типичные проблемы

SSL ошибки

# Игнорировать SSL ошибки
mitmdump --set 'ignore_hosts=.*'

# Или отключить проверку
mitmdump --set 'ssl_insecure=true'

WebSocket

# WebSocket не экспортируется в HAR
# Используйте --show-websocket для отладки
mitmdump --show-websocket

Сжатый трафик

# mitmproxy автоматически распаковывает
# Если нужно сырое:
mitmdump --set 'rawtcp=true'

Updated: 2026-03-22