Powrót do strony głównej

Pamięć podręczna offline stron MITM-proxy

Aplikacja implementuje MITM-proxy do offline-cache'owania stron internetowych. Używa Electron, Chromium, Crawlee i Playwright. Obsługuje przestrzenie, eksport i SOCKS5.

MITM-proxy dla offline-internetu na Electron
Advertisement 728x90

Offline'owe buforowanie stron internetowych: Proxy MITM w Electron

Programiści często borykają się z niestabilnym dostępem do dokumentacji i stron internetowych. Aplikacja oparta na proxy MITM umożliwia wstępne buforowanie zasobów HTTPS, zapewniając dostęp offline. Generuje samopodpisany certyfikat do przechwytywania ruchu, wykorzystuje wbudowany Chromium z izolowanym profilem. W trybie offline zwraca zapisane odpowiedzi bez połączenia z siecią.

Rozwiązanie skierowane jest do specjalistów średniego i wysokiego szczebla: zachowuje terminologię, skupia się na technicznych szczegółach implementacji.

Architektura i tło historyczne

Projekt ewoluował z serwera proxy do migracji strony korporacyjnej w 2016 roku. Wtedy zadanie wymagało buforowania treści publicznych bez dostępu do backendu. Proxy wymuszał zapisywanie wszystkich żądań HTTP/HTTPS, zastępując oryginalne źródło.

Google AdInline article slot

Aktualizacja objęła TypeScript, ESLint. Przejście na Electron umożliwiło stworzenie aplikacji desktopowej. Integracja agentów AI przyspieszyła rozwój UI, zarządzanie certyfikatami i i18n.

Kluczowe komponenty:

  • Proxy MITM do przechwytywania ruchu.
  • Chromium z niestandardowym profilem.
  • Magazyn pamięci podręcznej według przestrzeni (namespaces).

Zasada przechwytywania i buforowania

Podczas uruchamiania generowany jest samopodpisany certyfikat CA. Użytkownik instaluje go jako zaufany, aby ominąć HTTPS. Wbudowana przeglądarka kieruje ruch przez proxy.

Google AdInline article slot
// Pseudokod logiki proxy
if (online) {
  proxy.intercept(request) -> cache.save(response);
} else {
  return cache.get(request);
}

Proxy analizuje żądania, zapisuje pełne odpowiedzi, w tym zasoby. Tryb offline sprawdza obecność w pamięci podręcznej przed żądaniem sieciowym.

Funkcjonalność dla programistów

Aplikacja minimalizuje UI dla szybkiego startu bez dokumentacji. Główne możliwości:

  • Automatyczne buforowanie stron: Wbudowany crawler na Crawlee + Playwright. Rekurencyjnie pobiera strony, ale jest wrażliwy na SPA (zdarzenia ładowania).
  • Proxy SOCKS5: Obsługa zewnętrznych proxy do omijania blokad.
  • Przestrzenie: Izolacja pamięci podręcznej według projektów lub stron (np. docs dla Electron i PrimeReact).
  • Eksport/import: Serializacja przestrzeni do plików w celu przenoszenia.

Przykładowy scenariusz: zbuforuj electron-vite.org, pracuj offline z przykładami kodu i API.

Google AdInline article slot

Zastosowanie w rozwoju

Idealne dla:

  • Dokumentacji offline (React, Vue, strony specyficzne dla frameworków).
  • Archiwizacji przestarzałych stron przed redesignem.
  • Pracy w izolowanych sieciach bez internetu.
  • Testowania UI z ustalonymi odpowiedziami.

Ograniczenia: crawler słabo radzi sobie z dynamiczną treścią JS. Zalecana ręczna nawigacja dla precyzyjnego buforowania.

Przeniesienie profilu Chrome jest możliwe, ale wymaga ostrożności z bezpieczeństwem: eksport cookies, localStorage przez --user-data-dir.

Co jest ważne

  • MITM w Electron: Przechwytywanie HTTPS przez samopodpisany cert + Chromium.
  • Izolacja pamięci podręcznej: Przestrzenie zapobiegają konfliktom zasobów.
  • Crawler Crawlee/Playwright: Automatyzacja, ale z zastrzeżeniami dla SPA.
  • Minimalistyczny UI: Bez instrukcji dla doświadczonych użytkowników.
  • Eksport plików: Przenoszenie pamięci podręcznej między maszynami.

Podsumowanie i ulepszenia

Narzędzie rozwiązuje realne problemy: stabilny dostęp do dokumentacji w podróży lub pod sankcjami. Planowany jest HUB do udostępniania przestrzeni.

Pytania do społeczności: licencja (MIT/Apache?), bezpieczny import profilu Chrome.

— Editorial Team

Advertisement 728x90

Czytaj dalej