Wiki
GeoIP i geograficzna kontrola dostępu
Jak QuoteNode używa MaxMind GeoIP do kontroli dostępu na poziomie krajów i do śledzenia otwarć ofert.
GeoIP i geograficzna kontrola dostępu
QuoteNode zawiera opcjonalną geograficzną kontrolę dostępu i śledzenie kraju otwarcia oferty z użyciem bazy MaxMind GeoLite2.
Dwa zastosowania GeoIP
1. Kontrola dostępu do aplikacji
Gdy funkcja jest włączona, filtr GeoIP może ograniczyć dostęp do aplikacji tylko do wybranych krajów. Żądania z krajów spoza allowlisty dostają HTTP 403.
To przydaje się organizacjom, które:
- działają wyłącznie w określonych jurysdykcjach,
- chcą ograniczyć ekspozycję na zautomatyzowane ataki,
- muszą spełniać wymagania związane z dostępem lub rezydencją danych.
2. Śledzenie interakcji z ofertą
Gdy klient otworzy publiczny link do oferty, system zapisuje kod kraju ISO razem ze zdarzeniem. Daje to kontekst do analityki ofert, na przykład:
- oferta została otwarta z Niemiec,
- wielokrotne otwarcia z różnych krajów mogą oznaczać dalsze przekazanie oferty.
Jak to działa
Baza
Rozpoznanie kraju wykorzystuje lokalną bazę MaxMind GeoLite2-Country w formacie .mmdb. Nie ma tu zewnętrznego API ani połączeń sieciowych przy każdym lookupie.
Baza musi zostać pobrana osobno i zamontowana do kontenera pod odpowiednią ścieżką.
Wykrywanie IP
System identyfikuje adres IP w tej kolejności:
- nagłówek
X-Real-IP, - pierwszy adres z
X-Forwarded-For, request.getRemoteAddr()jako fallback.
Dlatego poprawna konfiguracja reverse proxy jest ważna dla wiarygodnego rozpoznania kraju.
Wyjątek dla linków publicznych
Endpointy publicznych ofert są zawsze wyłączone z restrykcji geograficznych. Dzięki temu klient nadal może otworzyć ofertę i na nią odpowiedzieć niezależnie od kraju, nawet jeśli sama aplikacja operatora jest geo-restricted.
Konfiguracja
| Zmienna | Domyślnie | Opis |
|---|---|---|
GEOIP_ENABLED | false | Włącza albo wyłącza GeoIP |
geoip.db-path | — | Ścieżka do pliku .mmdb MaxMind |
geoip.allowed-countries | puste | Lista krajów ISO oddzielona przecinkami, np. PL,DE,FR |
Jeżeli geoip.allowed-countries jest puste, filtr GeoIP działa pasywnie: rozpoznaje kraj do celów trackingowych, ale niczego nie blokuje.
Aspekty prywatności
- rozpoznanie GeoIP jest stateless,
- dla trackingowych zdarzeń oferty zapisywany jest tylko kod kraju, a nie sam adres IP,
- adresy IP w zdarzeniach webowych podlegają osobnej, konfigurowalnej anonimizacji zgodnej z wymaganiami prywatności.