[Astuce] Bannir les escrocs: interdire les visiteurs de certains pays

WRInaute discret
Bonjour,

Comme de nombreux site d'annonce ou autre je suis confronter à une déferlante d'escroc en tout genre et récalcitrant en provenance ( à 70%) d'aprés mes stats perso de la Côte ivoire/Niger sans vouloir polémiquer.

J'ai donc chercher le moyens de les bloquer par différent moyen mais faut avouer qu'ils sont malin et ont plusieurs tours dans leurs sacs pour parer les protections mis en place, en cherchant sur le net j'ai trouver différente solution et ainsi réussi a bloquer à 99% les tentatives.

Voici donc une petite synthèse :

Première chose bloquer les ip par plage et pays, un exemple via .hatccess:
Code:
RewriteCond %{REMOTE_ADDR} ^41\.[0-9]+\.[0-9]+\.[0-9]+ [OR]
RewriteCond %{REMOTE_ADDR} ^81\.[0-9]+\.[0-9]+\.[0-9]+ [OR]
RewriteCond %{REMOTE_ADDR} ^196\.[0-9]+\.[0-9]+\.[0-9]+
RewriteRule .* - [F]

Ici nous bloquons les ip commençant par 41, 81 et 196 vous trouvez sur ce site les plages ip correspondant à chaque pays à vous de les récupérer pour les adapter à ce code. http://www.blockacountry.com/

Une seconde méthode consiste à utilisé la géolocalisation via apache toujours par .hatccess:
Code:
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^SN|NE|NG|CG|DE|CI|BJ$
RewriteRule .* - [F]

Ici nous bloquons les ip géolocaliser dans les pays Sénégal, Niger, Abidjan etc... Pour plus d'info voici un tutoriel http://apache.developpez.com/cours/geolocalisation/

Arriver à ce stade vous avez bloquer la quasi totalité des spammeur/escroc mais reste les petits futé qui auront la bonne idée d'utilité un wep proxy pour passer outre la restriction mis en place, voici donc comment y remédier:
Code:
RewriteCond %{HTTP:VIA}                 !^$ [OR]
RewriteCond %{HTTP:FORWARDED}           !^$ [OR]
RewriteCond %{HTTP:USERAGENT_VIA}       !^$ [OR]
RewriteCond %{HTTP:X_FORWARDED_FOR}     !^$ [OR]
RewriteCond %{HTTP:PROXY_CONNECTION}    !^$ [OR]
RewriteCond %{HTTP:XPROXY_CONNECTION}   !^$ [OR]
RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
RewriteCond %{HTTP:HTTP_CLIENT_IP}      !^$
RewriteRule ^(.*)$ - [F]

Ici nous bloquons les serveurs proxy par ce qu'ils font avec une simple liste noire des différents protocoles HTTP utilisés par ses serveurs proxy.

Le code entier:
Code:
RewriteCond %{REMOTE_ADDR} ^41\.[0-9]+\.[0-9]+\.[0-9]+ [OR]
RewriteCond %{REMOTE_ADDR} ^81\.[0-9]+\.[0-9]+\.[0-9]+ [OR]
RewriteCond %{REMOTE_ADDR} ^196\.[0-9]+\.[0-9]+\.[0-9]+
RewriteRule .* - [F] 

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^SN|NE|NG|CG|DE|CI|BJ$
RewriteRule .* - [F]

RewriteCond %{HTTP:VIA}                 !^$ [OR]
RewriteCond %{HTTP:FORWARDED}           !^$ [OR]
RewriteCond %{HTTP:USERAGENT_VIA}       !^$ [OR]
RewriteCond %{HTTP:X_FORWARDED_FOR}     !^$ [OR]
RewriteCond %{HTTP:PROXY_CONNECTION}    !^$ [OR]
RewriteCond %{HTTP:XPROXY_CONNECTION}   !^$ [OR]
RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
RewriteCond %{HTTP:HTTP_CLIENT_IP}      !^$
RewriteRule ^(.*)$ - [F]

Pour utiliser ce code, copier / coller dans un fichier nommé .htaccess et uploader le à la racine de votre site. Vous voila débarrasser à 99% des vilains escroc ;)

Si certain veulent apporter des améliorations n'hésitez pas, en espérant que ce mini tuto vous servent ;)
 
Nouveau WRInaute
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

Salut :D

C'est une super idée ton post :wink:

Sur ton site ca a vraiment bien marché ?

il y a aucun francais qui se retrouve bloqué avec tes techniques ? c'est sur a 100% ?

Merci :wink:
 
WRInaute passionné
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

Salut,

Très bon topic !

LifeIsGood a dit:
il y a aucun francais qui se retrouve bloqué avec tes techniques ? c'est sur a 100% ?
D'après les explications, je pense que oui.
Mais je ne serai pas rassuré de mettre en place tes codes...il peut y avoir des clients honnêtes dans les pays concernés.
 
WRInaute accro
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

Très bon topic. +1 reco
 
WRInaute accro
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

Si de potentiels clients surfent en passant par un proxy logiciel, cela ne pose pas de soucis ?
 
WRInaute discret
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

LifeIsGood a dit:
Sur ton site ça a vraiment bien marché ?

il y a aucun français qui se retrouve bloqué avec tes techniques ? c'est sur a 100% ?

Oui à 100%, je n'ai bloquer uniquement que les pays qui me pause problème comme le bénin etc... soit avec:

- Les plages ip par pays (fiable à 100% mais faut tenir à jour les plages)
- La géolocalisation (fiable à 100%)

-Blocage des web proxy

twin a dit:
il peut y avoir des clients honnêtes dans les pays concernés

Un exemple: Mon site est dédier uniquement à la France .fr donc je vois pas pourquoi des utilisateurs du bénin passerais une annonce pour un bien en France.

Ensuite vous avez la possibilité de choisir précisément les pays à bloquer.

UsagiYojimbo a dit:
Si de potentiels clients surfent en passant par un proxy logiciel, cela ne pose pas de soucis ?

Alors pour le code de blocage des web proxy il est possible de faire des règles d exception, voici un exemple:

Code:
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP:VIA}                 !^$ [OR]
 RewriteCond %{HTTP:FORWARDED}           !^$ [OR]
 RewriteCond %{HTTP:USERAGENT_VIA}       !^$ [OR]
 RewriteCond %{HTTP:X_FORWARDED_FOR}     !^$ [OR]
 RewriteCond %{HTTP:PROXY_CONNECTION}    !^$ [OR]
 RewriteCond %{HTTP:XPROXY_CONNECTION}   !^$ [OR]
 RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
 RewriteCond %{HTTP:XROXY_CONNECTION}    !^$ [OR]
 RewriteCond %{HTTP:X-FORWARDED-FOR}     !^$ [OR]
 RewriteCond %{HTTP:HTTP_CLIENT_IP}      !^$ [OR]
 RewriteCond %{HTTP:FORWARDED-FOR}       !^$ [OR]
 RewriteCond %{HTTP:X-FORWARDED}         !^$
 RewriteCond %{HTTP_REFERER}             !(.*)proxy-01.com(.*)
 RewriteCond %{HTTP_REFERER}             !(.*)proxy-02.net(.*)
 RewriteCond %{HTTP_REFERER}             !(.*)proxy-03.fr(.*)
 RewriteRule ^(.*)$ - [F]
</IfModule>

ici nous bloquons tout les proxy sauf: proxy-01.com, proxy-02.net, proxy-03.fr grâce à HTTP_REFERER.

Voici une liste de proxy non complète http://www.free-proxy.fr/ et en cherchant bien sur le net vous trouverez des listes noirs de web proxy à blacklister.

Attention il faut savoir quand bloquant les pays ainsi ceci va à l'encontre des principes d'accessibilité et de liberté d'Internet.
 
WRInaute accro
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

Beaucoup de soucis dans ce que tu dis...

D'abord, tu générales des plages d'adresses beaucoup plus strictes en gros blocs (/8). Même si la plupart de ces gros blocs sont généralement attribués par région (Europe, Afrique, Asie-Pacific, Amériques...), les blocs plus anciens ne le sont pas, et la finesse du blocage n'est pas forcément idéale, et en tous cas à ne pas généraliser pour d'autres pays (genre si tu voulais bloquer un pays Européen avec cette méthode tu bloquerais pratiquement toute l'Europe).

Ensuite, pour utiliser GeoIP, il faut qu'il soit activé dans ta config Apache, ce n'est pas un module standard. Et si tu veux que ce soit efficace, il faut prendre un abonnement pour avoir les fichiers précis et à jour (les versions gratuites sont beaucoup moins précises).

En ce qui concerne les proxies, tu bloques tous les utilisateurs qui passent légitimement par des proxies, par exemple tous les utilisateurs AOL, mais il y a pas mal d'autres ISPs pour lesquels c'est le cas (de façon obligatoire ou pas), sans parler des utilisateurs derrière des proxies en entreprise, etc. Et la plupart des proxies utilisés par les gens pas très honnêtes n'incluent généralement pas les informations permettant de les repérer aussi facilement...

Bref, tu bloques à la fois trop et pas assez... Je pense que le principal problème c'est surtout le "trop".

Jacques.
 
WRInaute discret
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

merci pour tes remarques ;)

D'abord, tu générales des plages d'adresses beaucoup plus strictes en gros blocs (/8). Même si la plupart de ces gros blocs sont généralement attribués par région (Europe, Afrique, Asie-Pacific, Amériques...), les blocs plus anciens ne le sont pas, et la finesse du blocage n'est pas forcément idéale

Je suis d'accord c'est pour cela que je propose une deuxième méthode basé sur le module de géolocalisation d'apache qui lui est plus fiable.

Ensuite, pour utiliser GeoIP, il faut qu'il soit activé dans ta config Apache, ce n'est pas un module standard.

Pas mal d'hébergeur le propose et je pense que certain na savent même pas qu'ils ont ce module d'activer ;)

Et si tu veux que ce soit efficace, il faut prendre un abonnement pour avoir les fichiers précis et à jour (les versions gratuites sont beaucoup moins précises).

La fiabilité des bases de données mises gratuitement à votre disposition est estimée à 98% pour celle des pays et à 69% en ce qui concerne celle des villes. Avec une perte supplémentaire d'environ 1,5% tous les mois si vous ne téléchargez pas sa nouvelle version paraissant de manière mensuelle. ( allez un udapte tout les 6 mois c'est pas la mer à boire ;) )

source: http://apache.developpez.com/cours/geolocalisation/#L2.1

ET voici la dernière mise à jour datant de juin 2009 http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip

En ce qui concerne les proxies, tu bloques tous les utilisateurs qui passent légitimement par des proxies

j'ai mis un deuxième code pour mettre en place des règles d'exception

exemple:

Code:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP:VIA}                 !^$ [OR]
RewriteCond %{HTTP:FORWARDED}           !^$ [OR]
RewriteCond %{HTTP:USERAGENT_VIA}       !^$ [OR]
RewriteCond %{HTTP:X_FORWARDED_FOR}     !^$ [OR]
RewriteCond %{HTTP:PROXY_CONNECTION}    !^$ [OR]
RewriteCond %{HTTP:XPROXY_CONNECTION}   !^$ [OR]
RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
RewriteCond %{HTTP:XROXY_CONNECTION}    !^$ [OR]
RewriteCond %{HTTP:X-FORWARDED-FOR}     !^$ [OR]
RewriteCond %{HTTP:HTTP_CLIENT_IP}      !^$ [OR]
RewriteCond %{HTTP:FORWARDED-FOR}       !^$ [OR]
RewriteCond %{HTTP:X-FORWARDED}         !^$
RewriteCond %{HTTP_REFERER}             !(.*)proxy-01.com(.*)
RewriteCond %{HTTP_REFERER}             !(.*)proxy-02.net(.*)
RewriteCond %{HTTP_REFERER}             !(.*)proxy-03.fr(.*)
RewriteRule ^(.*)$ - [F]
</IfModule>

Ou faire l'inverse en bloquant simplement les proxy blacklister et laisser tout les autres passer ainsi aucun problème pour aol et les autres.

Bref, tu bloques à la fois trop et pas assez... Je pense que le principal problème c'est surtout le "trop".

Je pense que mon code est simple et assez fiable à moins que quelqu'un à plus fiable à proposer je suis ouvert.
 
WRInaute occasionnel
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

Tres interessant comme topic, je cherchais une méthode justement :D
twin a dit:
il peut y avoir des clients honnêtes dans les pays concernés.
Pour y séjouner régulierement, je peux affirmer que non. Les personnes honnetes n'ont pas accès à internet et n'ont pas les moyens financier de devenir des "clients potentiels", quant aux autres nous les connaissons tous.
 
WRInaute discret
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

Lol perdu, le site ne m'appartiens plus et je n'ai pas appliquer ces règles sur ce site mais sur un autre qui n'est pas soumis à l'annuaire webrankinfo, fait un test sur ton propre site et essaie a nouveaux avec n'importe quel proxy pour voir ;)
 
WRInaute discret
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

kitten13 a dit:
Lol perdu, le site ne m'appartiens plus et je n'ai pas appliquer ces règles sur ce site mais sur un autre qui n'est pas soumis à l'annuaire webrankinfo, fait un test sur ton propre site et essaie a nouveaux avec n'importe quel proxy et tu verras ;)

Tu as également perdu car je viens de tester sur un de mes propres sites et ca passe :mrgreen:

Notamment avec surfmyspace c'est pour ca que je pense que ta règle anti webproxy ne fonctionne pas. Envoi moi ton site en MP et je t'en montre d'autres.
 
WRInaute discret
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

beber24 a dit:
kitten13 a dit:
Lol perdu, le site ne m'appartiens plus et je n'ai pas appliquer ces règles sur ce site mais sur un autre qui n'est pas soumis à l'annuaire webrankinfo, fait un test sur ton propre site et essaie a nouveaux avec n'importe quel proxy et tu verras ;)

Tu as également perdu car je viens de tester sur un de mes propres sites et ca passe :mrgreen:

Notamment avec surfmyspace c'est pour ca que je pense que ta règle anti webproxy ne fonctionne pas. Envoi moi ton site en MP et je t'en montre d'autres.

As tu bien le module géolocalisation activer comme le dit jcaron ? car moi j'ai déjà fait plusieurs test même avec le proxy que tu as cité et ça fonctionne ;)

pour preuve voici ce que me renvoi tes deux proxy quand j'essaie:

Resource Error: An error has occured while trying to browse through the proxy.
It appears that you are trying to access a resource through this proxy from a remote Website.
For security reasons, please use the form below to do so.

édit: module géolocalisation activer euhh rien à voir avec les proxy oups!!!
 
WRInaute discret
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

Effectivement cette librairie n'est pas en place je vais de ce pas la mettre en place. Merci pour ton post :wink:
 
WRInaute discret
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

édit: module géolocalisation activer euhh rien à voir avec les proxy oups!!!

Ah me voila alors plongé dans le doute car j'essaye et ca marche avec n'importe quel webproxy... Et puis j'ai un doute sur le passage des bots quant au référencement.
 
WRInaute accro
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

Bonjour,
Y a un truc qui est pas mal, du moins de manière complémentaire, pour les sites d'annonces c'est le coup du mail de validation pré-publication avec bannissement des adresses hotmail, gmail, etc.
 
WRInaute discret
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

serval2a a dit:
Bonjour,
Y a un truc qui est pas mal, du moins de manière complémentaire, pour les sites d'annonces c'est le coup du mail de validation pré-publication avec bannissement des adresses hotmail, gmail, etc.

En demandant uniquement l'email du FAI comme le font certain site e commerce ? J'avais eu cette idée aussi mais cela me semble un peu stricte :? .
 
WRInaute occasionnel
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

serval2a a dit:
Bonjour,
Y a un truc qui est pas mal, du moins de manière complémentaire, pour les sites d'annonces c'est le coup du mail de validation pré-publication avec bannissement des adresses hotmail, gmail, etc.

Avec ce critère je suis exclu !
 
WRInaute impliqué
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

Le mieux c'est de demander une copie de piece d'identitée à l'inscription :/
 
WRInaute accro
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

rikew a dit:
Le mieux c'est de demander une copie de piece d'identitée à l'inscription :/
copie très aisément falsifiable
 
WRInaute passionné
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

serval2a a dit:
Bonjour,
Y a un truc qui est pas mal, du moins de manière complémentaire, pour les sites d'annonces c'est le coup du mail de validation pré-publication avec bannissement des adresses hotmail, gmail, etc.
+1 !
De 1 à 2 inscriptions non validées par jour, je suis passé à ... 1 non validée par mois. Casse tête en moins! Et mieux : le nombre d'inscriptions n'a pas diminué (avec bannissement des hotmail, gmail, yahoo, live plus tous les services délivrant des adresses mails temporaires).

Le blocage des proxy est, à mon avis, un non-sens puisque de plus en plus d'internautes cachent leur IP (enfin, ils le croient :roll: ) depuis Hadopi et de nombreux autres se connectent depuis leur travail (si si... :mrgreen: ) avec des réseaux d'entreprises et sont donc derrière un proxy.

Quant à la GeoIP : elle n'est fiable qu'à 98% (j'utilise depuis quelques temps déjà) et les "vrais" spammeurs ne passent plus par les pays d'Afrique depuis longtemps.
 
WRInaute discret
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

anemone-clown a dit:
serval2a a dit:
Bonjour,
Y a un truc qui est pas mal, du moins de manière complémentaire, pour les sites d'annonces c'est le coup du mail de validation pré-publication avec bannissement des adresses hotmail, gmail, etc.
+1 !
De 1 à 2 inscriptions non validées par jour, je suis passé à ... 1 non validée par mois. Casse tête en moins! Et mieux : le nombre d'inscriptions n'a pas diminué (avec bannissement des hotmail, gmail, yahoo, live plus tous les services délivrant des adresses mails temporaires).

Le blocage des proxy est, à mon avis, un non-sens puisque de plus en plus d'internautes cachent leur IP (enfin, ils le croient :roll: ) depuis Hadopi et de nombreux autres se connectent depuis leur travail (si si... :mrgreen: ) avec des réseaux d'entreprises et sont donc derrière un proxy.

Quant à la GeoIP : elle n'est fiable qu'à 98% (j'utilise depuis quelques temps déjà) et les "vrais" spammeurs ne passent plus par les pays d'Afrique depuis longtemps.


Si je fait un filtrage des mails alors la c'est diviser par 7 les inscriptions dans mon cas précis(et risquer d'agacer l'internaute car la plupart ne souhaite pas divulguer leur email perso FAI), de plus mes visiteurs sont des utilisateurs lambda, la plupart ne savent même pas que l'on peut cacher sont ip ( 80% sont des femmes ) et pour la géolocalisation sur quoi te base tu pour affirmer quel n'est pas fiable ?

Quant à la GeoIP : elle n'est fiable qu'à 98% (j'utilise depuis quelques temps déjà) et les "vrais" spammeurs ne passent plus par les pays d'Afrique depuis longtemps.

et comment fait t'il si il n'utilise pas de proxy ?

Je pense que ce code est à adapter au cas par cas, certains y trouveront leur compte et d'autre non, chaque site à ces utilisateurs (débutant, confirmer etc ...) il faut donc mettre en place une stratégie différente et personnalisé pour bloquer les spammeurs mais sans nuire à ces visiteurs(ou au minimum).

Sinon pour les proxy je rejoint plusieurs avis, bloquer les proxy reviens à bloquer une parti de ses visiteurs, dans mon cas 3% de connexion via proxy, le jeux en vaut la chandelle, du moins pour l'instant.

Pour finir la solution du filtrage des email est à retenir mais à adapter suivant ces besoins ainsi que ip, géo, proxy

=======================

edit: Sinon il ya aussi le capcha sous forme de question-réponse en espérant que le spammeur ai 2 de QI :mrgreen:

exemple chez ovh:
Quelle est la couleur du cheval blanc d'Henri IV ?
lol
 
WRInaute discret
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

Ce que tu peux faire c'est faire valider automatiquement un compte par SMS.

Tu envoies un SMS lors de l'inscription avec un code que le visiteur doit entrer pour valider son inscritpion.

Après, selon le code international du portable, tu sais exactement d'où il vient et tu peux bloquer les pays "indésirables".

Inconvénient de cette méthode : te coûte un SMS par inscritpion.
 
Nouveau WRInaute
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

beber24 a dit:
édit: module géolocalisation activer euhh rien à voir avec les proxy oups!!!

Ah me voila alors plongé dans le doute car j'essaye et ca marche avec n'importe quel webproxy... Et puis j'ai un doute sur le passage des bots quant au référencement.

Ça peut bloquer certains robots ? :?
 
WRInaute accro
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

prog-x a dit:
Ce que tu peux faire c'est faire valider automatiquement un compte par SMS.
tout le monde n'a pas de portable.
tout le monde n'a pas envie de donner son numéro de portable pour devenir SMS spammé
 
WRInaute discret
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

Leonick a dit:
tout le monde n'a pas de portable.
C'est vrai, mais quel est le pourcentage de personne qui ont un PC + un accès internet et qui n'ont pas de téléphone portable ?

Je suppose qu'il est relativement faible car en général on a d'abord un téléphone portable qui est mois couteux (à l'achat et mensuellement) que le PC et l'accès web.

Leonick a dit:
tout le monde n'a pas envie de donner son numéro de portable pour devenir SMS spammé

Vrai également, mais le problème est identique avec l'adresse mail. Bon OK il y a les filtres SPAM, on change plus facilement d'adresse mail que de numéro de téléphone, mais par contre il y a moins de SPAM par SMS que par mail vu que c'est plus cher pour le spammeur.

Ma solution n'est pas une solution parfaite mais elle est (à mon avis) un compromis acceptable pour résoudre son problème.
 
WRInaute discret
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

Salut,

Nous on a remarqué que les escrocs n'ont aucuns scrupules. A savoir, qu'ils commandent d'un pays étranger avec une carte fraichement volé (donc par encore déclaré) et qu'ils ont des complices en France pour donner une adresse et un numéro de téléphone en France. Résultat pas question des les identifier de la sorte.
On a donc aussi opté pour la géolocalisation IP, mais plutôt que de risquer d'interdire un pays autorisé (par rapport à la fiabilité, qui d'ailleurs est pour nous plus proche de 99% pour le pays), on effectue la géolocalisation de l'adresse IP une fois la transaction effectuée.
On a donc mis en place pour nos e-commerces un système de géolocalisation dans la fiche du client ou plutôt de sa transaction.

On en a fait un Webservice gratuit jusqu'à 50 requêtes / jour (pour les petits sites cela suffit en général) si cela intéresse quelqu'un : Geolocalise IP.

Bien sûre il faut développer son propre système, le webservice n'est là que pour geolocaliser une ip et rien d'autre.
 
WRInaute accro
Re,
Ce qui est sûr c'est que quand on sait ce que l'on risque en proposant un système insuffisamment sécurisé, au niveau de l'identification de l'annonceur pour un site d'annonce, on veut bien perdre 1/7e desdites annonces, et j'en sais quelque chose ;)

Edité : PS : les trucs avec adresse IP ça bloque pas les "vrais" escrocs qui vont "voler" une adresse IP, "et pi c'est tout" (Philippe Lucas dans le texte) :)
 
WRInaute discret
bonjour,

Pour tout ceux qui serait réticent à utiliser la directive pour bloquer les web-proxy, voici une mise à jour du code:

Ici nous bloquons uniquement les requêtes POST faite un par web-proxy, possible d'appliquer aussi à GET, pour les pages: (post.php, recherche.php, newsletter.php) mais autorise quand même le visiteur à surfer sur le site.

Code:
RewriteCond %{REQUEST_METHOD} =POST
RewriteCond %{HTTP:VIA}%{HTTP:FORWARDED}%{HTTP:USERAGENT_VIA}%{HTTP:X_FORWARDED_FOR}%{HTTP:PROXY_CONNECTION} !^$ [OR]
RewriteCond %{HTTP:XPROXY_CONNECTION}%{HTTP:HTTP_PC_REMOTE_ADDR}%{HTTP:HTTP_CLIENT_IP} !^$
RewriteCond %{REQUEST_URI} !^/(post.php|recherche.php|newsletter.php).* [NC]
RewriteRule .* - [F,NS,L]

;)
 
WRInaute accro
Bonjour,

Merci pour ce topic très intéressant car je cherchais un truc dans ce genre ;)

Par contre, j'aurais 2 questions :
-1/ Ton filtrage ne ralentit pas les performances de ton site?

Ce que je fais actuellement, c'est toute nouvelle inscription passe par une validation manuelle dans mon admin avant insertion dans la BDD.

-2/ N'est-il pas préférable de passer par une méthode comme celle-ci pour éviter des pertes de performances et laisser un plein accès à tout internaute?

Merci
 
WRInaute discret
-1/ Ton filtrage ne ralentit pas les performances de ton site?

Strictement pas

-2/ N'est-il pas préférable de passer par une méthode comme celle-ci pour éviter des pertes de performances et laisser un plein accès à tout internaute?

Comme je l'ai dit précédemment, a vous d'établir votre politique de sécurité en prenant en compte différent paramètre, thématique de votre site, visiteur visé etc ...

Les techniques que je d'écrit peuvent ou non vous servir dans la mise en place de votre stratégie de défense contre les spammeurs, donc à vous de voir suivant vos besoins.

;)
 
WRInaute discret
A la fois son site n'est pas du tout optimisé en terme de poids et de temps de dl. Mais ce n'est pas lui la cible..
 
WRInaute discret
Bonjour à tous,

Très intéressant comme astuce, cependant ne voulant pas passer par le htaccess et voulant seulement interdire l'accès à la page d'inscription pour certain pays spammeur ( hé oui, les bons payent pour les mauvais ). Voici ce que je voudrai faire et attend vos remarques voir aides :

Code:
Sur la page inscription j'ajoute :

//
// Get IP
//
$guest_ip = $_SERVER["REMOTE_ADDR"]; 

//
// ban ip spam : Si IP commence par "41." ou "81." ou "196." on redirige vers une autre page, je trouve que c'est plus humain que le message du htacces mais ceci bloque tout le continent africain et c'est ce que je ne voudrai pas faire .
//

if (preg_match("/\b41./i",  $guest_ip) || preg_match("/\b81./i",  $guest_ip)  || preg_match("/\b196./i",  $guest_ip))
{
$header_location = (@preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) ) ? 'Refresh: 0; URL=' : 'Location: ';
header($header_location . append_sid("http://www.nomdusite.com/pageredirige.php", true));
exit;
}


Ma question est, est ce que sur le meme principe de l'adresse IP qui est trop generaliste, je pourrai le faire avec le geoIP comme ceci ( je n'ai pas essayé ) :


Code:
Sur la page inscription j'ajoute :

//
// Get GEOIP
//
$guest_ip = $_SERVER["RENV:GEOIP_COUNTRY_CODE"];  //je ne pense pas recuperer le pays ainsi mais si vous avez une astuce sans passer par case : base de données bien remplies d'IP je suis preneur

//
// ban ip spam : Si GEOIP correspon au pays "SN|NE|NG|CG|DE|CI|BJ" on redirige vers une autre page, je trouve que c'est plus humain que le message du htacces mais ceci bloque tout le continent africain et c'est ce que je ne voudrai pas faire .
//

if( $guest_ip == 'SN' || $guest_ip == 'NE' || || $guest_ip == 'NG'  || $guest_ip == 'CG'  || $guest_ip == 'DE'  || $guest_ip == 'CI'  || $guest_ip == 'BJ')
{
$header_location = (@preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) ) ? 'Refresh: 0; URL=' : 'Location: ';
header($header_location . append_sid("http://www.nomdusite.com/pageredirige.php", true));
exit;
}

Vous en pensez quoi ?
 
WRInaute discret
on redirige vers une autre page, je trouve que c'est plus humain que le message du htacces

Avec le hatccess tu peut aussi rediriger

Code:
RewriteCond = condition (si)
RewriteRule = redirige, renvoi

Ton principe de regexp est bien mais il faut savoir que les regexp sont gourmande en ressource, imagine 5000 visites/unique/jrs je donne pas cher des perf...

Sinon je te conseil la geo ip en plus du check des plages ip mais le tout via hatcees car cest bien plus simple à gérer est moins gourmand.

exemple avec le blockage des plage ip + geo ip + block webproxy:
Code:
RewriteCond %{REMOTE_ADDR} ^41\.[0-9]+\.[0-9]+\.[0-9]+ [OR]
RewriteCond %{REMOTE_ADDR} ^81\.[0-9]+\.[0-9]+\.[0-9]+ [OR]
RewriteCond %{REMOTE_ADDR} ^196\.[0-9]+\.[0-9]+\.[0-9]+
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^SN|NE|NG|CG|DE|CI|BJ$
RewriteCond %{HTTP:VIA}                 !^$ [OR]
RewriteCond %{HTTP:FORWARDED}           !^$ [OR]
RewriteCond %{HTTP:USERAGENT_VIA}       !^$ [OR]
RewriteCond %{HTTP:X_FORWARDED_FOR}     !^$ [OR]
RewriteCond %{HTTP:PROXY_CONNECTION}    !^$ [OR]
RewriteCond %{HTTP:XPROXY_CONNECTION}   !^$ [OR]
RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
RewriteCond %{HTTP:HTTP_CLIENT_IP}      !^$
# ont block
RewriteRule ^(.*)$ - [F]
# ou ont redirige
#RewriteRule ^(.*)$ http://domain.com/ta_page_personnalise.php [R=307,L]

D'autre méthode existe je ferais bientôt un nouveau tuto plus avancé ;)
 
WRInaute discret
Pas mal :lol: , cependant je voudrai interdire l'accès de certain pays à une page ex : inscription.php pour la rediriger vers pagebidon.php en passant htacess .

Dans ton exemple tu refuses l'accès au site en redirigeant vers pagebidon.php si j'ai bien tout compris :roll:

merci encore
 
WRInaute discret
Merci de ton aide : tu veux dire comme ça !

Code:
RewriteCond %{REMOTE_ADDR} ^41\.[0-9]+\.[0-9]+\.[0-9]+ [OR]
RewriteCond %{REMOTE_ADDR} ^81\.[0-9]+\.[0-9]+\.[0-9]+ [OR]
RewriteCond %{REMOTE_ADDR} ^196\.[0-9]+\.[0-9]+\.[0-9]+
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^SN|NE|NG|CG|DE|CI|BJ$
RewriteCond %{HTTP:VIA}                 !^$ [OR]
RewriteCond %{HTTP:FORWARDED}           !^$ [OR]
RewriteCond %{HTTP:USERAGENT_VIA}       !^$ [OR]
RewriteCond %{HTTP:X_FORWARDED_FOR}     !^$ [OR]
RewriteCond %{HTTP:PROXY_CONNECTION}    !^$ [OR]
RewriteCond %{HTTP:XPROXY_CONNECTION}   !^$ [OR]
RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
RewriteCond %{HTTP:HTTP_CLIENT_IP}      !^$
# ont block
RewriteRule ^pageinterdite.php$ - [F]
# ou ont redirige
#RewriteRule ^pageinterdite.php$ http://domain.com/ta_page_personnalise.php [R=307,L]

Je ne suis pas sure que ça soit ça merci de m'aider
 
WRInaute accro
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

mijsoot a dit:
Nous on a remarqué que les escrocs n'ont aucuns scrupules. A savoir, qu'ils commandent d'un pays étranger avec une carte fraichement volé (donc par encore déclaré) et qu'ils ont des complices en France pour donner une adresse et un numéro de téléphone en France. Résultat pas question des les identifier de la sorte.
En cas d’arnaque et de dépôt de plainte, un numéro de téléphone fixe c’est du pain béni pour les enquêteurs.
 
WRInaute accro
Re: [Astuce] Bannir les escrocs: interdire les visiteurs de certain pays

salva a dit:
En cas d’arnaque et de dépôt de plainte, un numéro de téléphone fixe c’est du pain béni pour les enquêteurs.
si il correspond bien à l'adresse et que l'adresse leur correspond bien. S'il y a livraison à domicile et que les bàl sont facilement accessibles, sans avoir besoin d'y habiter ou encore, si pas besoin de livraison, l'adresse peut très bien ne pas exister : il suffit de regarder le gg local business avec les sociétés de dépannage qui existent en de multiples exemplaires et des adresses incomplètes ou fausses
 
WRInaute accro
Il s’agit avant tout de vérifier le numéro en l’appelant.

Particulièrement intéressant pour les sites de petites annonces.

Le chaland devrait exiger du vendeur et par mail (formulaire de contact présent normalement sur la page de présentation de chaque annonce) un numéro de téléphone fixe pour effectuer la transaction.
Si le vendeur ne dispose pas de numéro de téléphone fixe, son entourage devrait selon toute vraisemblance être en mesure de combler cette carence.

Cette manière de procéder responsabilise le vendeur et dans les cas de fraude, facilite le travail d’identification effectué par les autorités compétentes.
 
WRInaute discret
Comme le topics semble intéresser pas mal de monde, je vous propose une autre méthode:

Cette fois si nous allons faire quelque chose de diffèrent en utilisation toujours la géolocalisation via apache pour bloquer les connexion en provenance des US et autre pays.

Pourquoi bloquer les US ? comme je vous disais le site sur lequel j'utilise cette config est dédié particulièrement à la france, je vois mal un internaute us utilisé mon service et j'ai constater de plus une augmentation d'attaque en provenance de se pays (lamez à la recherche de faille ...)

En gros ce que je vous propose c'est de bloquer les connexions US tout en laissant passer les spider Googlebot, yahoo, msn etc ...

Tout d'abord il vous faut connaitre les ip des spiders en question, deux méthodes :

- Soit vous trouver une liste ip mis à jour qui recense les spiders, mais honnêtement la liste risque d'être longue et de plus la moitie des ip se connecte jamais à votre site.

- soit vous utiliser un script qui va enregistrer un log (.txt) des passages des bots (spider) en question, voici un exemple simple.


Code:
function is_bot()
{
	$bots = array("googlebot","msnbot","crawl.yahoo"); // list des spiders
	for($i=0;$i<sizeof($bots);$i++)
	{
		if(strpos(gethostbyaddr($_SERVER['REMOTE_ADDR']),$bots[$i]) !== FALSE) 
		{
			return TRUE;
		}
	}
	return FALSE;
}

// Utilisation
if(is_bot() == TRUE) // On vérifie que le spider est bien en ligne
{
	// LOG dans spider.txt
	$ip = $_SERVER['REMOTE_ADDR'];
	$agent = $_SERVER['HTTP_USER_AGENT'];
    $url_google = $_SERVER["SCRIPT_NAME"];
	
    if ($_SERVER["QUERY_STRING"] != "")
        $url_google .= "?".$_SERVER["QUERY_STRING"];
    $f = fopen("spider.txt","a");
    fputs($f, "[ date : ".date("j-m-Y H:i")." | user_agent : $agent | ip : $ip ] : [ http://$HTTP_HOST"."$url_google ]".PHP_EOL);
    fclose($f);
}

Insérer ce code en bas de votre pas index et attendez quelques jours, ensuite ouvrez la page spider.txt à la racine de votre site, vous y trouverez un log (date, user-agent, ip, page demander) des spiders qui ont visitez votre site.

Donc supposons que vous avez constitué une liste d'exception pour vos spiders.

Ouvrez votre htaccess est coller y ceci:

SetEnvIf GEOIP_COUNTRY_CODE ^SN|NE|NG|CG|DE|CI|BJ|RU|CN|RU|EN|US|CA $ FORBIDDEN=1
Order Deny,Allow
# Google
Allow from 66.249.65.202
Allow from 66.249.71.237
# Yahoo
Allow from 67.195.112.122
Allow from 67.195.111.170
# MSN
Allow from 207.46.13.46
Deny from env=FORBIDDEN

SetEnvIf GEOIP_COUNTRY_CODE ^SN|NE|NG|CG|DE|CI|BJ|RU|CN|RU|EN|US|CA $ FORBIDDEN=1
Correspond à code pays à interdire

Order Deny,Allow
# Google
Allow from 66.249.65.202
Allow from 66.249.71.237
# Yahoo
Allow from 67.195.112.122
Allow from 67.195.111.170
# MSN
Allow from 207.46.13.46
Liste
Correspond au ip des spiders autorisé (les ip ci-dessus sont ceux qui fréquente mon site tout les jours)

Deny from env=FORBIDDEN
Si aucune des ip correspond et que ip fait parti du code pays alors on block

Si vous souhaitez tester si ça fonctionne chez vous, ajouter le code pays FR et connectez vous à votre site. Si vous êtes bien bloquer alors parfait, ensuite rajouter votre ip comme exception ex: Allow from 11.222.333.444 et réessayer, si vous avait accès c'est que tout fonctionne.

Oubliez pas de retirer le code pays FR après votre test.

Une autre technique à venir ...
 
WRInaute discret
Nouvelle version.

On part toujours sur la même idée (bloquer des pays dont US sauf les ip des spider) mais en les redirigeant vers un page spécifique.

Code:
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^SN|NE|NG|CG|DE|CI|BJ|RU|CN|RU|US|EN|CA|KR$ 
RewriteCond %{REMOTE_ADDR} !^(66\.249\.65.\202|207\.46\.13\.46|66\.249\.71\.237|67\.195\.112\.122|67\.195\.111\.170)$ 
RewriteRule ^(.*)$ ma_page.php [L]


Code:
RewriteCond %{REMOTE_ADDR} !^(66\.249\.65.\202|207\.46\.13\.46|66\.249\.71\.237|67\.195\.112\.122|67\.195\.111\.170)$
Les ip des spiders, ont concatène pour plus de clarté

Code:
RewriteRule ^(.*)$ ma_page.php [L]
On redirige

merci à julp pour l'élaboration ...

A venir une autre méthode ... ;)
 
Nouveau WRInaute
Pire -- > [ Autoriser uniquement la france ]

Bonjour et merci beaucoup pour ce post
J'étais en train de me poser la question

Je souhaiterais autoriser l'acces uniquement au francais

Est ce possible par httacess en 3 lignes?
- L ip, la geo + tous les proxies?

Deuxième question ( deplus on est sur le wri )

- Est ce que cela peut nuire au référencement ?

Si oui , y'a t'il possibilité en une ligne de plus de laisser passer complètement notre ami google?

En tout cas merci pour vos réponses

(
Pour ceux qui pense que cela nuit à la liberté de surf pour les autres pays :
A-
1 - Mon site est en francais
2 - Je n' expédie que en france
3 - Je n'accepte que les paiement francais d'ip francaise fait en france par un francais avec une banque francaise (3DSECURE)

Donc pour ne pas faire perdre du temp a mes amis etranger autant qu'il ne vienne même pas
B-
Il faut penser aussi à ma liberté de publication lol

Evidemment c'est une blague ( mais c'est vrai ) mdr lol

D’ailleurs si cela marche je vais l'appliquer a tous mes sites et notamment a ceux de mes clients
Cela m'évitera beaucoup de soucis ainsi que à mes clients

C- Pour ceux qui vont me conseiller de bloquer tous le monde
J'y est déja pensé mais c pas la méthode choisie

D- Si je voulais vendre en cote d'ivoire

Je proposerais un abonnement proxies francais EVIDEMENT
par contre je serais bien embêté pour choisir le paiement sécurisé...

lol
Merci a tous
++
seeb
 
Nouveau WRInaute
Re: Pire -- > [ Autoriser uniquement la france ]

SetEnvIf GEOIP_COUNTRY_CODE FR AllowCountry
Deny from all
Allow from env=AllowCountry
 
Nouveau WRInaute
bonjour
suite à ton topic
j'avais mis ça mis dans mon fichier ht access ce code il y a quelques semaine
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^BG|RO|RU|NE|SN|NG|BJ|CI$
RewriteRule .* - [F]
</IfModule>

et apparemment j'ai toujours autant de russes et de roumains qui se connecte a on site

est ce que c'est du au fait que j'ai mis ça directement dans le fichier ht. access que de le copier dans un autre fichier

merci stephane
 
Discussions similaires
Haut