Wiki
GeoIP et controle d'acces geographique
Comment QuoteNode utilise MaxMind GeoIP pour le controle d'acces par pays et le tracking des offres.
GeoIP et controle d’acces geographique
QuoteNode inclut un controle geographique d’acces optionnel ainsi qu’un tracking par pays via la base MaxMind GeoLite2.
Deux usages de GeoIP
1. Controle d’acces a l’application
Quand il est active, le filtre GeoIP peut restreindre l’acces a l’application a certains pays. Les requetes provenant de pays non autorises recoivent HTTP 403 (Forbidden).
C’est utile pour les organisations qui :
- n’operent que dans certaines juridictions,
- veulent reduire l’exposition aux attaques automatisees provenant de certaines regions,
- doivent respecter des contraintes de residence des donnees ou de controle d’acces.
2. Tracking des interactions d’offre
Quand un client ouvre un lien public d’offre, le systeme enregistre le code pays du client (ISO 3166-1 alpha-2) avec l’evenement d’interaction. Cela apporte un contexte geographique a l’analyse :
- “Votre offre a ete ouverte depuis l’Allemagne” — confirme une portee internationale
- “Plusieurs ouvertures depuis differents pays” — peut indiquer que l’offre a ete transferee
Fonctionnement
Base de donnees GeoIP
La resolution GeoIP utilise la base MaxMind GeoLite2-Country, c’est-a-dire un fichier local au format .mmdb, pas une API externe. Toutes les resolutions se font en memoire sans appel reseau.
Le fichier doit etre telecharge separement (MaxMind requiert un compte gratuit pour GeoLite2) puis monte dans le conteneur au chemin configure.
Detection d’IP
Le systeme identifie l’IP client dans cet ordre :
- Header
X-Real-IP— pose par le reverse proxy (le plus fiable) - Header
X-Forwarded-For— premiere adresse de la chaine request.getRemoteAddr()— fallback si connexion directe
Une bonne configuration du reverse proxy (Caddy, Nginx ou proxy Coolify) est essentielle pour une detection IP fiable.
Exemption des offres publiques
Les endpoints d’offre publique (/offer/public/*) sont toujours exemptes des restrictions geographiques. Cela garantit qu’un client peut consulter et traiter une offre quel que soit son pays, meme si l’application elle-meme est georestreinte.
Configuration
| Variable | Defaut | Description |
|---|---|---|
GEOIP_ENABLED | false | Active / desactive la fonctionnalite GeoIP |
geoip.db-path | — | Chemin vers le fichier .mmdb MaxMind |
geoip.allowed-countries | (vide) | Liste ISO de pays separes par virgules (par ex. PL,DE,FR). Vide = aucune restriction |
Quand geoip.allowed-countries est vide, le filtre GeoIP reste passif : il resout les pays pour le tracking mais ne bloque aucune requete.
Points de confidentialite
- La resolution GeoIP est sans etat — aucune table durable de correspondance IP → pays n’est conservee.
- Pour le tracking d’offre, seul le code pays est stocke (par ex. “FR”), pas l’adresse IP elle-meme.
- Les adresses IP enregistrees dans les web events d’offre sont soumises au job configurable d’anonymisation IP, qui les hashe apres un nombre de jours definissable pour la conformite RGPD.