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

157 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Mitmproxy → HAR
## Быстрый старт
### Вариант 1: mitmweb (проще всего)
```bash
# 1. Запустить mitmweb
mitmweb --mode regular
# 2. Открыть в браузере
http://127.0.0.1:8081
# 3. Настроить прокси в браузере
# localhost:8081
# 4. Выполнить действия на Kwork
# 5. Экспорт: File → Export → HAR
```
### Вариант 2: mitmdump + конвертация
```bash
# 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)
```bash
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
```bash
# Запустить с прокси
google-chrome --proxy-server="127.0.0.1:8081"
```
## Установка сертификата
```bash
# 1. Открыть в браузере
http://mitm.it
# 2. Скачать сертификат для вашей ОС
# 3. Установить в доверенные
# Linux:
sudo cp mitmproxy-ca-cert.pem /usr/local/share/ca-certificates/
sudo update-ca-certificates
# 4. Перезапустить браузер
```
## Фильтрация трафика
```bash
# Только 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
```bash
#!/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
```bash
# Количество запросов
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 ошибки
```bash
# Игнорировать SSL ошибки
mitmdump --set 'ignore_hosts=.*'
# Или отключить проверку
mitmdump --set 'ssl_insecure=true'
```
### WebSocket
```bash
# WebSocket не экспортируется в HAR
# Используйте --show-websocket для отладки
mitmdump --show-websocket
```
### Сжатый трафик
```bash
# mitmproxy автоматически распаковывает
# Если нужно сырое:
mitmdump --set 'rawtcp=true'
```
---
_Updated: 2026-03-22_