Bloquer les IP’s
Article publié le dimanche 30 septembre 2007 par Bernard Blazin
Mis à jour le lundi 1er octobre 2007
Si l’on part du principe qu’un site est visité un certain nombre de fois dans un instant T et que chaque visiteur possède une Ip qui lui est attaché et que (heureusement) ces personnes n’utilisent pas la même Ip, on peut donc envisager qu’un robot spammeur va lui visiter le plus grand nombre de pages en un temps record à la recherche des formulaires présents sur le site.
A partir de ce corréla, il est facile d’imaginer un petit script qui permet de compter le nombre de pages vues sur le site par la même personne ou du moins par la même Ip dans une minute.
Si par exemple on place notre barre de compteur à 25 pages vues par minute, on peut dire que si ce score est atteint soit l’on a à faire à un internaute déchainé soit à un robot spammeur.
Le but de ce plugin est donc de compter les pages vues /minute par la même Ip et de décider de bloquer l’accès à la base données si le compteur arrive à 26 !
Il suffit de placer juste une balise (#INTERDIRE_IP) en haut de chaque page du squelette, avant quoi que ce soit.
Qu’est ce qui se passe ?
Le script va faire plusieurs vérifications.
- Vider les Ip de la table si le délai est supérieur à une minute
- Verifier si l’ip entrante n’est pas bloquée
- Compter le nombre de pages vues dans la minute
- Bloquer l’Ip si plus de 25pages/minute
- Envoyer un mail au webmaster avec toutes les informations provenant de la variable $_SERVER sous cette forme :
DBENTRY => /kunden/homepages/5/base/htdocs/com/site:d0000#CPU 6 #MEM 10240 #CGI 49502 #NPROC 12 #TAID 39064667 #WERB 0 #LANG 2 #STAT 1
DOCUMENT_ROOT => /kunden/homepages/5/base/htdocs/com/site
HTTP_ACCEPT => text/xml,application/xml,application/xhtml+xml,text/html;q=0.9
,text/plain;q=0.8,image/png,*/*;q=0.5
HTTP_ACCEPT_ENCODING => gzip, deflate
HTTP_ACCEPT_LANGUAGE => en
HTTP_CONNECTION => keep-alive
HTTP_COOKIE => PHPSESSID=f8402702101e396b48826cac4938f5f1
HTTP_HOST => Votresite
HTTP_REFERER => http://votresite.com/spip.php?var_mode=recalcul
HTTP_USER_AGENT => Mozilla/5.0 (Windows; U; Windows NT 5.1; fr) AppleWebKit/522.15.5 (KHTML, like Gecko) Version/3.0.3 Safari/522.15.5
PATH => /bin:/usr/bin
REDIRECT_DBENTRY => /kunden/homepages/5/base/htdocs/com/site:d0000#CPU 6 #MEM 10240 #CGI 49502 #NPROC 12 #TAID 39064667 #WERB 0 #LANG 2 #STAT 1
REDIRECT_QUERY_STRING => var_mode=recalcul
REDIRECT_SCRIPT_URI => http://votresite.com/spip.php
REDIRECT_SCRIPT_URL => /spip.php
REDIRECT_STATUS => 200
REDIRECT_UNIQUE_ID => Rv7KA9Tjd6MAAGitBU4
REDIRECT_URL => /spip.php
REMOTE_ADDR => 62.147.160.142
REMOTE_PORT => 2565
SCRIPT_FILENAME => /homepages/5/base/htdocs/com/site/spip.php
SCRIPT_URI => http://votresite.com/spip.php
SCRIPT_URL => /spip.php
SERVER_ADDR => 82.165.85.244
SERVER_ADMIN => webmaster@votresite.com
SERVER_NAME => site.com
SERVER_PORT => 80
SERVER_SIGNATURE =>
SERVER_SOFTWARE => Apache/1.3.33 (Unix)
UNIQUE_ID => Rv7KA9Tjd6MAAGitBU4
GATEWAY_INTERFACE => CGI/1.1
SERVER_PROTOCOL => HTTP/1.1
REQUEST_METHOD => GET
QUERY_STRING => var_mode=recalcul
REQUEST_URI => /spip.php?var_mode=recalcul
SCRIPT_NAME => /spip.php
STATUS => 200
ORIG_SCRIPT_FILENAME => /kunden/homepages/5/base/htdocs/com/site/spip.php
ORIG_PATH_INFO => /spip.php
ORIG_PATH_TRANSLATED => /kunden/homepages/5/base/htdocs/com/site/spip.php
ORIG_SCRIPT_NAME => /spip.php
PHP_SELF => /spip.php
REQUEST_TIME => 1191102979
argv => Array
argc => 1
Comme on peut le constater, le spameur n’est pas un membre logué ! Dans le cas contraire vous auriez visibilité sur son cookie !
Il est bien entendu possible de revenir en arrière et d’autoriser à nouveau les ip’s bloquées.
Dans l’espace privé du site
Il est possible de visualiser les ip en cours de passage sur le site et celles qui sont déjà passées sans dépasser la zone critique des 25 pages/minutes.
On peut bloquer des Ip’s (Il me semble qu’il y a un petit bug).
On peut débloquer les Ip’s interdites !
On reçoit les informations sur la dernière Ip connectée ( Pays, Ville, Lat. et Long. pour exploitation avec une google map par exemple ’en cours’)
Utiliser le plugin
Afin d’utiliser correctement ce plugin, veuillez lire attentivement le fichier lisezmoi.txt qui lui est attaché.
Dans certains cas ( en 1.9.2c sur la dist le balise doit être placée tout en haut de la page avant le code html). A vous de trouver l’endroit le plus approprié, je ne sais pas encore très bien pourquoi la balise ne réagit pas pareillement sur tous les spip..
Ce plugin a été testé avec un SPIP 1.9.3 svn en production et sur 1.9.2c en local sans souci.
Vous pouvez l’essayer en cliquant au minimum 26 fois dans une minute sur « actualiser votre navigateur » sur la page suivante sommaire2. Bien entendu vous ne serez bloqué que sur celle ci et le fait de revenir à l’accueil du site ne change rien pour votre navigation ![]()
Merci de me faire le retour de vos essais avant de placer ce plugin sur spip contrib.
N.B : Ce script n’est pas approprié dans les cas suivants :
- IP fixe et réseau domestique (Plusieurs personnes pouvant naviguer sur le même site en même temps avec la même Ip)
- Si vous passez derrière un proxy genre proxy free.
- Si votre site demande une navigation rapide comme par exemple les galeries photos ( beaucoup trop de clics sur des pages différentes en un temps record !)
Documents joints
| Date | Nom | Message |
|---|---|---|
| 3 septembre | Emma. Je profite pour vous dire, avant de faire un bilan thermique faite une demande de devis travaux renovation, c’est plus sérieux. Vous pourrez installer une pompe a chaleur par un installateur de votre région.
|
|
| 16 août | Angela
|
|
| 13 août | ||
| 30 juillet | ||
| 26 juillet | diego
|
|
| 19 juillet | Poker
|
|
| 2 juillet | ||
| 1er juillet | Sandoria
|
|
| 27 juin | ||
| 26 juin | film streaming megavideo
|
|
| 14 juin | Ben
|
|
| 7 juin | Maximo
|
|
| 6 juin | LoZ
|
|
| 3 juin | voyance
|
|
| 2 juin | Moutassima
|
Forum de l'article
Bloquer les IP’s 26 mai 2008, par laura
Site à visiter: Blog’s Laura
Salut, j’ai installé ton plugin, interdire_ip dans mon espace, mais j’ai toujours un probleme quan le balise #INTERDIRE_IP est present dans les squelettes, l’erreur c’est le suivant :
Warning: require(config.php) [function.require]: failed to open stream: No such file or directory in /home/laura/www/spip/plugins/interdire_ip/balise/interdire_ip.php on line 2
Fatal error: require() [function.require]:
Failed opening required 'config.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/laura/www/spip/plugins/interdire_ip/balise/interdire_ip.php on line 2
J’ai fait le meme instalation en local, et tout va bien, mais au server en production il ne va plus
(
Le site a le plugin blip, mais il est egal dans le squelettes dist/.
Merci par avancé, j’espere reponse, j’aime beaucoup ton plugin, mais....
a tot !
Bloquer les IP’s 27 mai 2008, par Bernard Blazin
Bonjour
Il faut bien renseigner le fichier config.php avec les password et nom d’utilisateur de la base de données distante, puis placer ce fichier à la racine du site.
Certes ce n’est pas très pratique, mais à l’époque je n’avais pas trouver d’autres solutions.
Lorsque j’aurais un peu de temps, je corrigerai cela pour éviter les manipulations de fichier
Buon coraggio ! ![]()
Bloquer les IP’s 27 mai 2008, par laura
Site à visiter: Blog’s Laura
Merci beaucoup
C’etait ça, oui, j’avais placé le fichier dans la racine du site, mais no la racine de mon site spip, xDD . Ça est resolu, merci ![]()
Bloquer les IP’s 7 novembre 2008, par Benoît LAURENT
Site à visiter: intrw.net - banip
Bonjour,
Je me permet de poster un message ici puisque j’ai essayé et étudié votre plugin avant de me lancer dans la réalisation d’un autre plugin. Ils ne sont bien sûr pas équivalent mais jouent dans la même catégorie de lutte contre le spam. Il est très jeune et encore spartiate ! (Voir le lien ci-dessous)
J’en profite pour vous remercier pour les plugins mis à disposition ici.
Bloquer les IP’s 12 février 2009, par Christophe Noisette
Site à visiter: Inf’OGM
Bonsoir
je suis très content de ce plugin qui a éliminé tous les mauvais spammeurs de mes fora. Super. Mais, car il y a un mais... désolé... je viens de me faire bloquer mon ip par le plugin. Je peux me connecter en /ecrire/, de là, j’ai donc demandé bien gentillement à réautoriser mon ip... En vain, je reste bloqué... C’est un peu embêtant. Y a-t-il un temps de latence de l’interdiction, comme pour les semences de soja ogm qui peuvent rester dans ton champ, tranquilles, pendant quinze ans avant de se réveiller....
Encore merci pour le plugin
Cordialement
Bloquer les IP’s 4 mars 2009, par Chrisotphe NOISETTE
Site à visiter: impossible de réautoriser une ip bloquée
Je n’ai toujours pas eu de réponse concernant mon post qui mentionnait un problème dans la « ré-autorisation » des adresses IP bloquées. Une fois qu’une adresse IP est bloquée, je ne peux plus la ré-autorisé.. et c’est gênant car il a bloqué le robot de Google et de Yahoo...
Bloquer les IP’s 14 avril 2009, par goueg
Site à visiter: http://gouegblog.com
Bonjour et merci pour cette arme anti-spam !! ![]()
Juste une petite question .. ce plugin aurait-il une incidence sur le référencement de site ???
merci d’avance pour votre réponse ..
Bloquer les IP’s 17 mai 2009, par THIERY
Bonsoir, J’ai essayé d’installer le plugin mais j’ai les lignes suivantes qui apparaîssent dans l’espace privé dans CONFIGURATION/CONTROLE DES IP - Avez-vous une idée ? Voici ce que j’ai renseigné dans le fichier config.PHP (# Entrez ici vos parametres de connexion mysql
$host=« http://193.37.145.35/myadmin/index.php » ; //hebergeur -> ex:sql.free.fr $user=« cprcg22885 » ; // nom d’utilisateur $mdp=« 292HXT » ; // mot de passe $database=« cprcg22885 » ; // nom de la base
?>) :
Warning : file() : URL file-access is disabled in the server configuration in d :\www\cprcg53.com\htdocs\plugins\interdire_ip\exec\interdire_ip.php on line 113
Warning : file(http://api.hostip.info/get_html.php ?ip=&position=true) : failed to open stream : no suitable wrapper could be found in d :\www\cprcg53.com\htdocs\plugins\interdire_ip\exec\interdire_ip.php on line 113
MERCI POUR VOTRE REPONSE
Bloquer les IP’s 17 mai 2009, par Bernard Blazin
Oui ça me semble logique :
$host=« http://193.37.145.35/myadmin/index.php » ; //hebergeur -> ex:sql.free.fr
Ici c’est l’adresse du serveur de base de données et non de phpMyAdmin.
Localhost en local, sql.free.fr pour free, cela dépend de l’hebergement
Bloquer les IP’s 2 janvier 2010, par loops
Site à visiter: erreur sql
salut j’ai installer ce plugin et j’ai configurer le fichier config.php et j’ai renseigner tout les informations ainsi je placer la balise #interdire_ip en haut de fichier squelette mais je reçois toujours cette erreur si reactualise ma page apres deux ou trois fois :
Erreur SQL ! SELECT ip FROM spip_ip_bl WHERE ip=’xx.xx.95.83’ No database selected
alors je sais pas ou reside le probleme car j’ai creer comme j’ai expliquer en haut la base de donnés et les informations de connexion alors quelqun peut il me dire ou se trouve le probleme et merci davance
