Bonjour,
Tout d'abord, ceci est mon premier code publié, je ne sais pas s'il fonctionne, je n'ai pas encore eu l'occasion de le tester et je ne sais pas si mes postulats sont bons.
Le but de ce code est de détecter les gentils robots (comme les robots de google pour le référencement) pour exclure/bannir les autres.
Attention: Le code suivant est basé sur les postulats suivants (je ne sais pas s'ils sont valables... si un expert passe par la et s'il peut faire des commentaires la dessus, ce serait bien!)
1. Les robots de référencement (les gentils robots) vont automatiquement chercher votre fichier "robot.txt" à la racine de votre site.
2. Les robots vont très vite (plus vite qu'un humain) pour afficher les pages.
3. Un gentil robot ne va pas visiter une page qu'on lui a interdite dans notre fichier "robot.txt".
4. Un gentil robot va suivre (obligatoirement) les liens dans la page web s'ils ne sont pas interdit dans "robot.txt".
Les 2 pages dont je vais parler sont des pages dissimulées, accessibles par un lien sur un gif invisible de 1 pixel sur 1 pixel (autrement dit, il faut pas avoir de bol pour qu'un utilisateur humain clique dessus!)
- Sur toutes la pages du site, un lien mène à ces pages
- Une page (et une seule) est interdite dans le fichier robot.txt
Avec ces postulats, je peux dire que dans un laps de temps donné (on va dire 5mn):
- Un robot qui visite une page interdite est un mauvais robot (pour ça, il existe déjà des codes sources (meme sur ce site je crois))
- Un robot qui ne visite ni une page interdite ni une page autorisée (toutes les deux dissimulées) pendant un laps de temps de xx minutes (5mn dans mon code) et qui fait xx requetes pendant ce laps de temps est un mauvais robot (en gros, le robot a été programmé pour n'atteindre que certaines pages de votre site).
- Un robot qui ne visite pas la page interdite mais qui visite la page autorisée s'identifie comme un gentil robot.
A chaque fois qu'on vérifie le comportement du robot, on supprime les entrées anterieures à 5mn pour ne pas bannir par la suite un utilisateur gentil qui aurait récupéré une IP bannie...