Warcprox
Warcprox — это WARC-writing MITM (Man-In-The-Middle) HTTP/S прокси-сервер для транзакционной архивации.
Описание
Warcprox перехватывает HTTP/HTTPS трафик между браузером и веб-сервером, записывая все запросы и ответы в WARC файлы.
Особенности
- Транзакционная архивация: Захватывает весь трафик браузера
- MITM прокси: Работает как прокси между браузером и интернетом
- WARC запись: Автоматически создаёт WARC файлы
- HTTPS поддержка: Поддержка HTTPS через сертификаты
Установка
Через pip
pip install warcprox
Из исходников
git clone https://github.com/internetarchive/warcprox
cd warcprox
pip install -e .
Использование
Базовый запуск
warcprox
По умолчанию запускается на localhost:8000.
С указанием порта
warcprox --address=0.0.0.0 --port=8080
С указанием директории для WARC
warcprox --directory=/path/to/warcs
Настройка браузера
Chrome/Chromium
- Откройте настройки прокси
- Установите HTTP прокси:
localhost:8000 - Установите HTTPS прокси:
localhost:8000
Firefox
- Откройте настройки сети
- Настройте прокси вручную
- HTTP прокси:
localhost:8000 - HTTPS прокси:
localhost:8000
Через переменные окружения
export http_proxy=http://localhost:8000
export https_proxy=http://localhost:8000
HTTPS сертификаты
Warcprox создаёт самоподписанные сертификаты для HTTPS трафика:
- При первом запуске создаётся CA сертификат
- Нужно установить CA сертификат в браузер
- После этого браузер будет доверять прокси
Установка CA сертификата
# Найти сертификат
find ~/.warcprox -name "*.pem"
# Установить в браузер (Chrome)
# Настройки -> Безопасность -> Управление сертификатами -> Импорт
Использование для транзакционной архивации
Сценарий использования
- Запустите Warcprox
- Настройте браузер на использование прокси
- Просматривайте сайты как обычно
- Все запросы автоматически записываются в WARC
Преимущества
- Захватывает весь трафик браузера
- Сохраняет интерактивные сессии
- Записывает AJAX запросы
- Сохраняет авторизованные сессии
Интеграция с другими инструментами
С Brozzler
# Запуск Warcprox
warcprox --address=0.0.0.0 --port=8000
# Настройка Brozzler
brozzler-worker --warcprox-address=localhost:8000
С ручным браузингом
- Запустите Warcprox
- Настройте браузер на прокси
- Просматривайте сайты вручную
- Все запросы записываются в WARC
Best practices
Ограничение размера WARC
warcprox --max-size=1000000000
Ротация WARC файлов
warcprox --max-size=1000000000 --rotate-size=1000000000
Фильтрация запросов
warcprox --ignore-regex='.*\.(jpg|png|gif)$'