Перейти к основному содержимому

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

  1. Откройте настройки прокси
  2. Установите HTTP прокси: localhost:8000
  3. Установите HTTPS прокси: localhost:8000

Firefox

  1. Откройте настройки сети
  2. Настройте прокси вручную
  3. HTTP прокси: localhost:8000
  4. HTTPS прокси: localhost:8000

Через переменные окружения

export http_proxy=http://localhost:8000
export https_proxy=http://localhost:8000

HTTPS сертификаты

Warcprox создаёт самоподписанные сертификаты для HTTPS трафика:

  1. При первом запуске создаётся CA сертификат
  2. Нужно установить CA сертификат в браузер
  3. После этого браузер будет доверять прокси

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

# Найти сертификат
find ~/.warcprox -name "*.pem"

# Установить в браузер (Chrome)
# Настройки -> Безопасность -> Управление сертификатами -> Импорт

Использование для транзакционной архивации

Сценарий использования

  1. Запустите Warcprox
  2. Настройте браузер на использование прокси
  3. Просматривайте сайты как обычно
  4. Все запросы автоматически записываются в WARC

Преимущества

  • Захватывает весь трафик браузера
  • Сохраняет интерактивные сессии
  • Записывает AJAX запросы
  • Сохраняет авторизованные сессии

Интеграция с другими инструментами

С Brozzler

# Запуск Warcprox
warcprox --address=0.0.0.0 --port=8000

# Настройка Brozzler
brozzler-worker --warcprox-address=localhost:8000

С ручным браузингом

  1. Запустите Warcprox
  2. Настройте браузер на прокси
  3. Просматривайте сайты вручную
  4. Все запросы записываются в WARC

Best practices

Ограничение размера WARC

warcprox --max-size=1000000000

Ротация WARC файлов

warcprox --max-size=1000000000 --rotate-size=1000000000

Фильтрация запросов

warcprox --ignore-regex='.*\.(jpg|png|gif)$'

Ограничения

  • Требует настройки прокси в браузере
  • Нужно устанавливать CA сертификаты для HTTPS
  • Может замедлять браузинг
  • Требует постоянного запуска прокси

Ресурсы

Связанные материалы