Détecter les aspirateurs rapidement

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 16:57

Bonsoir,

Je cherche un bout de script pour détecter les aspirateursen direct (par exemple plus de n requêtes depuis une IP dans l'heure passée) et interdire l'accès.

Savez-vous où je peux trouver un truc rapide et simple à mettre en oeuvre ? (pas de temps à perdre sur une usine à gaz) ?

Merci d'avance,

OTP


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Re: Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 17:16

ça pourrait se faire à l'aide de fail2ban en parsant les logs.
Par contre différencier un aspirateur d'un vrai visiteur qui fouine beaucoup peut être "bizarre".

Si par contre tu as énormément de page, tu devrais pouvoir définir sans trop de problèmes au bout de 1000 pages affichés dans un interval de *** secondes, alors on banni pendant *** temps.


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Re: Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 17:19

Il 'y a rien de plus facile que parser les logs ?

Là, j'ai une IP qui a fait 50k accès depuis ce matin. A partir de 10000 jours, je peux bannir sans hésiter.


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Re: Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 17:24

Comment tu sais qu'elle a fait 50K d'accès ? A partir de logs non ?
Code: Tout sélectionner
cat adminserv.log|cut -d " " -f 1| sort | uniq -c | sort -n

Ca m'indique le nombre d'accès par IP.

Si tu veux bannir en auto (à l'aide d'un .htaccess par exemple) :
Code: Tout sélectionner
for i in `cat adminserv.log|cut -d " " -f 1| sort | uniq -c | sort -n | awk {'if ($1 > 10000) print $2'}`;
do
echo "deny from je ne connais plus trop apache $i" >> ton.htaccess.htaccess;
done;

En cron, avec un petit check de si déjà présent dans le .htaccess et le tour est joué je pense.


M&B Multimédia
WRInaute impliqué
WRInaute impliqué
 
Messages: 549
Inscription: 1 Oct 2009

Re: Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 17:28

OTP a écrit:Il 'y a rien de plus facile que parser les logs ?

Là, j'ai une IP qui a fait 50k accès depuis ce matin. A partir de 10000 jours, je peux bannir sans hésiter.



Petite idée du jour : Avec une variable $_SESSION qui s'auto-incrémente au nombre de pages vues... au bout d'un certain nombre, tu engages une action quelconque...


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Re: Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 17:38

@Julia41 : c'est Awstat qui me le dit. Et je ne vais pas le voir tous les jours, malheureusement. Je suis sur un mutu OVH, je ne sais pas si je peux utiliser tes instructions.
@M&B Multimédia : facile à mettre en place ?


M&B Multimédia
WRInaute impliqué
WRInaute impliqué
 
Messages: 549
Inscription: 1 Oct 2009

Re: Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 17:40

OTP a écrit:@M&B Multimédia : facile à mettre en place ?


Tout dépends de la façon dont ton site est construit aujourd'hui... En 5 minutes et quelques lignes simplistes de code plus tard tout peut être fonctionnel...


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Re: Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 17:52

Oui...
Et tu as ces quelques lignes ? ;)


M&B Multimédia
WRInaute impliqué
WRInaute impliqué
 
Messages: 549
Inscription: 1 Oct 2009

Re: Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 17:55

Bouarf comme ça "on the fly" :)

Code: Tout sélectionner
if ( !isset($_SESSION['nbrpgimp']) ) {
   $_SESSION['nbrpgimp'] = 1;
} else {
   $_SESSION['nbrpgimp'] = $_SESSION['nbrpgimp'] + 1;
}

if ( $_SESSION['nbrpgimp'] >= 10000 ) {
   echo 'Accès interdit ! Vous avez dépassé le nombre maximum de pages vues par jour sur le site';
   exit;
}


A mettre du côté de ton session_start(); dans un fichier commun à tout le site...
C'est à adapter et à peaufiner bien sûr...
Dernière édition par M&B Multimédia le Lun Nov 01, 2010 17:59, édité 1 fois.


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Re: Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 17:58

Ah j'étais sur du dédié :P
Donc oui, ce sera système de compteur (sinon, tu pourrais récupérer tes logs par le logs.ovh mais bon, ça sera moins efficace).

Donc système de compteur sur IP pourrait être bien (mais un peu lourd), dans ton header faudrait un :
Code: Tout sélectionner
INSERT INTO ip_log (ip, number) VALUES ('ip de l utilisateur', 1) ON DUPLICATE KEY UPDATE ... WHERE ip = 'ip de l utilisateur';

Dans ton header il faudra faire un SELECT number WHERE ip = 'ip de l utilisateur';
if $arr['number'] > 10000 {
die('bad bot');

Bon, ça fait 2 requêtes par page, donc mauvais et encore j'ai pas pris en compte la gestion du temps que tu demandais :P
Donc en clair ça me semble mort pour un truc léger, tu n'as qu'une solution usine ;)


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Re: Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 18:03

Ok, je vois, merci.
Je ne dois pas être le seul pourtant à me poser ce genre de question. J'ai visohotlink sur le site, ça tourne bien, il y a peut-être des équivalents ?


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19592
Inscription: 8 Aoû 2004

Re: Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 18:06

M&B Multimédia a écrit:Petite idée du jour : Avec une variable $_SESSION qui s'auto-incrémente au nombre de pages vues... au bout d'un certain nombre, tu engages une action quelconque...
sauf à vouloir mettre l'id de session dans l'url, mais sinon, les aspirateurs n'utilisant pas les cookies, il n'y aura donc pas de suivi dans les variables $_SESSION :wink:


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Re: Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 18:32

Comme Leonick : l'aspirateur se moquera de ta session. Si tu la forces, pas mal de robots indexeur ne fonctionneront plus.


M&B Multimédia
WRInaute impliqué
WRInaute impliqué
 
Messages: 549
Inscription: 1 Oct 2009

Re: Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 18:49

@Julia41 et @Leonick:

Soit j'ai du mal à accepter le changement d'horaire, soit je dois prendre des vacances... :lol: Je ne comprends pas pourquoi une variable de session PHP ne fonctionnerait pas dans ce cas la... Les cookies ?? les robots indexeurs ??... une petite explication serait bienvenue pour me dire à quel endroit je suis tombé dans l'erreur... car là, je ne vois pas...


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19592
Inscription: 8 Aoû 2004

Re: Détecter les aspirateurs rapidement

Message le Lun Nov 01, 2010 19:08

le s_id a 2 possibilité de se transmettre : soit via cookie, soit via l'url.
les moteurs (bons ou mauvais) ne récupèrant pas les cookies, le seul moyen serait alors via l'url, mais se pose alors le problème de duplicate content (car le sid changeant selon la connexion, on va se retrouver avec beaucoup d'url différentes pour la même page).
exemple.com/mapage?sid=isdud8746D ou exemple.com/mapage?sid=5874746D etc...

Détecter les aspirateurs rapidement

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités