Restreindre l'accès à certaines pages pour certains pays?

WRInaute passionné
Bonjour,

Dans le cas de mon 3w sujet à de nombreuses arnaques, je souhaites restreindre l'accès à certaines pages pour certains pays.
Dans le code suivant, certains pays tombent normalement sur une erreur 403 si ils consultent la page "page-A.php".

Code:
#bloque les ip par plage ip (ici afrique)
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]+ [OR]
#chine
RewriteCond %{REMOTE_ADDR} ^124\.[0-9]+\.[0-9]+\.[0-9]+
#on bloque la page en erreur 403
RewriteRule ^page-A.php$ - [F]

Je souhaite restreindre l'accès à une seconde page contenant un paramètre dynamique du genre "page-B.php?id=300" mais j'ai un gros doute sur la façon de procéder ... une suggestion ?

Merci
 
WRInaute accro
Plutot que faire ainsi tu aurais pu faire autrement je pense (plus souple a mon avis) :

1 - Geoip en place
2 - tu chopes l ip et donc le pays en tete de page

if (le pays est dans ma liste interdite)
{
header (bye bye voila ma photo);
exit;
}
else
{
ca roule
}


Comme ca tu n'a pas besoin de maintenir toi meme une liste d'ip ... goeip le fait pour toi avec une mise a jour mensuelle telechargée en 3 secondes ... (1 simple fichier binaire a rempalcer sur le ftp).

En plus ca te laisse les possibilités de :

- faire des stat sur les visites 'bye bye ma photo"
- introduire des exceptions ponctuelles plus facilement (tu interdis le Bénin mais tu laisses passer deux ou trois comptes connus au benin ...)
 
WRInaute passionné
Merci de ta réponse le matou :) mais non! J'aime bien ma liberté et par conséquent je n'aime pas dépendre d'un service tiers surtout si je peux m'en passer :wink: .
Mon code fonctionne très bien ainsi, il faut juste que je trouve comment exclure une seconde page sans être obligé de doubler le code du htaccess.
 
WRInaute accro
Tu devrais l'écouter car les plages ne sont pas du tout aussi fiables que tu ne le penses.
Par contre il parait que GEO IP est très lourd.
Moi je voulais filtrer un continent et on m'a dit que mon serveur aurait du mal à tenir la charge.
 
WRInaute accro
milkiway a dit:
Tu devrais l'écouter car les plages ne sont pas du tout aussi fiables que tu ne le penses.
Par contre il parait que GEO IP est très lourd.
Moi je voulais filtrer un continent et on m'a dit que mon serveur aurait du mal à tenir la charge.
moi j ai geoip (le fichier binaire des pays - pas le niveau ville) et c'ets pas lourd du tout (je m'en rends meme pas compte que c'est la ...). tous les mois j upload juste la mise a jour du fichier binaire (quelques dizaine de ko de mémoire et c'est tout) et a tout moment je connais le pays de mon visiteur .. sans me faire iech a gérer moi meme des plages d'ip (non fiables en plus).

au niveau taf lorsqu'on interroge, j'avais pris la peine de testre a l'epoque en mesurant microtime et le résultat etait que c'etait tellement peu que ca vallait meme pas la peine de le mesurer ...
 
WRInaute accro
milkiway a dit:
Tu devrais l'écouter car les plages ne sont pas du tout aussi fiables que tu ne le penses.
Par contre il parait que GEO IP est très lourd.
Moi je voulais filtrer un continent et on m'a dit que mon serveur aurait du mal à tenir la charge.
je vois pas pourquoion t'a dit ca :

1 - tu colles la liste des pays du contient que tu veux filter dans un str ..

$degage="/BN/TO/ML/"; // les codes pays a bannir

2 - tu choppes dans $zepays le pays de l'ip avec geoip (c'est une ligne je l'ai plsu en tete)

3 - tu vires par un header si position de "/".zepays."/" dans $degage !== false ...

enfin moi ca me parait pas lourd ... tu colles ca dans une routine en init session par exemple et tu t'occupes plus de rien ...
 
WRInaute passionné
Dans le doute, quand vous parlez de GEO IP, vous faites bien référence à -http://www.maxmind.com/app/ip-location ?
 
Discussions similaires
Haut