Bloquer les IP’s

Article publié le dimanche 30 septembre 2007
par Bernard Blazin
Mis à jour le lundi 1er octobre 2007

Le spam est de plus en plus présent sur nos sites et sans savoir d’où il provient. Voici une méthode simple et efficace pour bloquer les Ip des spammeurs, même si celles ci sont dynamiques.

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.

  1. Vider les Ip de la table si le délai est supérieur à une minute
  2. Verifier si l’ip entrante n’est pas bloquée
  3. Compter le nombre de pages vues dans la minute
  4. Bloquer l’Ip si plus de 25pages/minute
  5. 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 :

  1. IP fixe et réseau domestique (Plusieurs personnes pouvant naviguer sur le même site en même temps avec la même Ip)
  2. Si vous passez derrière un proxy genre proxy free.
  3. 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

Bloc-Ip’s (9.3 ko)
Format : Zip
 
 
Descriptif : Merci de me faire savoir si vous utilisés ce plugin et éventuellement me communiquer les Ip attrapées afin de construite notre blacklist..
Identifiants personnels

Lien hypertexte :

Un message, un commentaire ?

32 Signatures

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
Completement d’accord avec vous !
27 juin
26 juin
film streaming megavideo
14 juin
Ben
7 juin
Maximo
Je soutiens votre cause !
6 juin
LoZ
J’accepte la petition avec plaisir ;)
3 juin
voyance
2 juin
Moutassima

0 | 15 | 30

Forum de l'article

Bloquer les IP’s 31 octobre 2007, par dom

Une (p’tite) erreur dans le fichier plugin.xml, balise <lien>

L’url contient 2 fois http://

Répondre à ce message

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 !

Répondre à ce message

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 ! ;)

Répondre à ce message

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 :)

Répondre à ce message

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.

Répondre à ce message

Bloquer les IP’s 10 novembre 2008, par Bernard Blazin

C’est moi qui vous remercie. Vous pouvez si vous le désirez déposer votre plugin ici-même !

Répondre à ce message

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

Répondre à ce message

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...

Répondre à ce message

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 ..

Répondre à ce message

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

Répondre à ce message

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

Répondre à ce message

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

Répondre à ce message

Bloquer les IP’s : petit bug 8 février 2010, par CeD

Petit bug (chez moi) : lorsque je veux autoriser une IP bloquée, ce n’est pas celle que j’ai sélectionnée qui est autorisée, mais une autre. Je suis donc obligé de passer par PhpMyAdmin pour manipuler la table spip_ip_bl « à la main ».

Répondre à ce message

Répondre à cet article