Bloquer des visiteurs par mesure de sécurité
Internet est un peu comme une jungle, beaucoup d'utilisateurs du web ont des connaissances limitées en matière de risques. Le webmaster se doit de protéger ses visiteurs contre des potentiels escrocs.
Ici, nous verrons différentes méthodes pour interdire l'accès de votre site internet aux potentiels escrocs.
Pré-requis
Pour que les méthodes ci-dessous fonctionnent, il faut que :
- Vous pouvez créer un fichier .htaccess sur votre hébergement
- que le module MOD_REWRITE soit activé sur vote hébergement
- que le module GEO_IP soit activé pour la bannissement par pays
Blocage par plages IP
Vous pouvez bloquer un visiteur par plages IP. Pour cela voici un exemple, ici nous bloquons certaines plages Ip provenant de Bulgarie. Attention tout de même lorsque vous bloquez des plages complètes, certaines plages peuvent être attribuer à plusieurs pays.
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REMOTE_ADDR} ^109\.[0-9]+\.[0-9]+\.[0-9]+ [OR] RewriteCond %{REMOTE_ADDR} ^151\.[0-9]+\.[0-9]+\.[0-9]+ [OR] RewriteCond %{REMOTE_ADDR} ^178\.[0-9]+\.[0-9]+\.[0-9]+ RewriteRule .* - [F] </IfModule>
Ici, nous bloquons les adresses IPs commençant par 109, 151 ou 178.
Blocage des visiteurs par géolocalisation
Autre méthode, l'utilisation de la géolocalisation du visiteur, sous condition, bien sûr, que votre hébergement soit compatible.
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^BG|RO|RU|NE|SN|NG|BJ|CI$ RewriteRule .* - [F] </IfModule>
Ici, nous bloquons les visiteurs provenant des pays suivants : Bulgarie, Roumanie, Russie, Niger, Sénégal, Nigéria, Bénin et Côte d'Ivoire.
Blocage des utilisateurs de Proxy
Certains malins, pour cacher leurs provenances ou leurs traces utilisent des serveurs Proxy. Voici un code qui bloque les protocoles HTTP utilisés par ces serveurs Proxy.
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:USERAGENT_VIA} !^$ [OR] RewriteCond %{HTTP:FORWARDED} !^$ [OR] RewriteCond %{HTTP:VIA} !^$ [OR] RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR] RewriteCond %{HTTP:XPROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:PROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:X_FORWARDED_FOR} !^$ [OR] RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$ RewriteRule ^(.*)$ - [F] </IfModule>
Cas pratiques
Vous pouvez, bien sûr, utiliser les 3 méthodes pour renforcer le filtrage des potentiels escrocs. Il suffit d'utiliser les codes en exemples ci-dessous en les adaptant à vos besoins.
<IfModule mod_rewrite.c> RewriteEngine on # Blocage plages IP RewriteCond %{REMOTE_ADDR} ^109\.[0-9]+\.[0-9]+\.[0-9]+ [OR] RewriteCond %{REMOTE_ADDR} ^151\.[0-9]+\.[0-9]+\.[0-9]+ [OR] RewriteCond %{REMOTE_ADDR} ^178\.[0-9]+\.[0-9]+\.[0-9]+ RewriteRule .* - [F] # Blocage par pays RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^BG|RO|RU|NE|SN|NG|BJ|CI$ RewriteRule .* - [F] # Blocage des Proxy RewriteCond %{HTTP:USERAGENT_VIA} !^$ [OR] RewriteCond %{HTTP:FORWARDED} !^$ [OR] RewriteCond %{HTTP:VIA} !^$ [OR] RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR] RewriteCond %{HTTP:XPROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:PROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:X_FORWARDED_FOR} !^$ [OR] RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$ RewriteRule ^(.*)$ - [F] </IfModule>
Autres cas, vous souhaiter bannir tous les serveurs Proxy sauf quelques uns que vous jugez fiables. Sur le même principe, nous pouvons utiliser les exceptions pour les autoriser en suivant l'exemple ci-dessous.
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:USERAGENT_VIA} !^$ [OR] RewriteCond %{HTTP:FORWARDED} !^$ [OR] RewriteCond %{HTTP:VIA} !^$ [OR] RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR] RewriteCond %{HTTP:XPROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:PROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:X_FORWARDED_FOR} !^$ [OR] RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$ RewriteCond %{HTTP_REFERER} !(.*)proxy01.net(.*) RewriteCond %{HTTP_REFERER} !(.*)proxy02.net(.*) RewriteCond %{HTTP_REFERER} !(.*)proxy03.net(.*) RewriteRule ^(.*)$ - [F] </IfModule>
Ici, dans l'exemple, nous interdisons tous les serveurs Proxy sauf proxy01.net, proxy02.net et proxy03.net.
Conclusions
Avec ce genre de codes vous pouvez filtrer pas mal d'escrocs potentiels, même si vous risquez d'avoir des faux positifs. Il faut garder à l'esprit qu'aucune méthode n'est fiable à 100%, la sécurité de vos visiteurs dépend essentiellement de l'attention que vous portez à la sécurité de votre site.
Notes de version
- [18/11/2017] : Harmonisation de la page
Auteurs et sources
- Auteur : montuy337513
- Sources : Liste des codes ISO, Apache2 (MOD_REWRITE)
Navigation
Autres liens rapides pouvant vous intéresser