Pour bloquer les utilisateurs de VPN sur votre site, vérifiez l'IP de chaque visiteur avec une API de détection de VPN et décidez action par action : bloquer ou vérifier les VPN à score de confiance élevé à l'inscription, à la connexion et au paiement, laisser passer les lecteurs. La vérification se fait par un appel d'API depuis votre backend, ou sans code devant le site avec un Worker Cloudflare, un plugin WordPress ou une passerelle Traefik, Caddy ou nginx. Bloquer tous les VPN est rarement la bonne réponse, car beaucoup d'utilisateurs de VPN sont des clients légitimes.
Décidez ce que vous voulez vraiment
Avant d'implémenter quoi que ce soit, séparez l'objectif de la méthode :
- Conformité / licences : vous devrez peut-être réellement bloquer l'accès depuis des IP anonymisées dans certaines régions.
- Réduction de la fraude : vous n'avez pas besoin de bloquer, mais d'ajouter de la friction là où le risque est élevé.
- Prévention des abus : vous voulez stopper la création de comptes multiples et l'abus d'essais gratuits, ce qui concerne les inscriptions, pas la navigation.
La plupart des sites relèvent de la deuxième ou de la troisième catégorie, où défier vaut mieux que bloquer.
Vérifier si une IP utilise un VPN
Étape 1 : détecter le trafic VPN de façon fiable
Vous ne pouvez pas agir sur ce que vous ne voyez pas. Utilisez un service de détection qui renvoie un verdict et un score de confiance plutôt qu'une simple liste oui/non, voir comment fonctionne la détection VPN pour comprendre pourquoi ce score compte. L'API de détection VPN renvoie les deux pour n'importe quelle IP.
Étape 2 : choisir entre bloquer et défier selon l'action
Associez le score de confiance à une réponse adaptée au risque de l'action :
| Action | Score faible | Score moyen | Score élevé |
|---|---|---|---|
| Lire du contenu | autoriser | autoriser | autoriser |
| S'inscrire | autoriser | vérification e-mail/téléphone | vérification + revue |
| Se connecter | autoriser | authentification renforcée | authentification renforcée |
| Paiement / retrait | autoriser | vérifier | bloquer ou revue manuelle |
Ainsi, un lecteur soucieux de sa confidentialité n'est jamais gêné, tandis qu'un VPN à haute confiance au moment du paiement reçoit un examen approprié.
Étape 3 : implémenter côté serveur
Exécutez la vérification sur votre backend, pas dans le navigateur, afin qu'elle ne puisse pas être contournée et que votre clé API reste secrète. Le flux :
- L'utilisateur déclenche une action sensible.
- Votre serveur appelle l'API de détection avec l'IP du client.
- Vous lisez le verdict et le score, puis appliquez le tableau ci-dessus.
Pour une implémentation concrète, voir comment détecter un VPN en Node.js.
Impossible de modifier le backend ? La même vérification peut tourner devant le site avec le Worker Cloudflare, le plugin WordPress ou les intégrations Traefik, Caddy et nginx. Chacun démarre en mode monitor, pour voir d'abord ce qui serait bloqué ; le blocage nécessite une offre payante.
Étape 4 : préférer un score à des règles rigides
Si vous vous retrouvez à écrire beaucoup de conditions if, consolidez. Intégrez le signal VPN, avec le proxy, Tor et la réputation, dans un score de fraude IP et pilotez sur ce nombre unique. C'est plus facile à ajuster et plus difficile à contourner.
Éviter les faux positifs
- Utilisez le score, pas un indicateur binaire. Réservez les blocages stricts aux cas à haute confiance.
- Mettez sur liste blanche les sorties d'entreprise/cloud connues d'où proviennent légitimement vos vrais utilisateurs.
- Offrez une issue aux utilisateurs. Si vous devez bloquer, affichez un message clair et un moyen de vérifier plutôt qu'une impasse.
En résumé
Ne bloquez pas tous les utilisateurs de VPN : détectez le trafic VPN avec un score de confiance, puis bloquez ou défiez selon le risque de l'action. Exécutez la vérification côté serveur, préférez les défis aux blocages stricts, et regroupez la logique dans un score de fraude unique afin qu'il reste facile à ajuster.
FAQ