Fonctionnement d'un robot

Eléphant du PHP | 216 Messages

16 févr. 2007, 13:22

Bonjour!

Depuis longtemps je me demande comment fonctionnent ces fameux robots parcourant le Net à la recherche d'infos à glaner telles que liens divers et adresses mail... On sait tous que les adresses mail pour le spam sont collectées de cette façon.
Comment (concrètement) un robot parvient-il à parcourir toutes les pages d'un site? Comment enregistre-t-il ses données? Peut-il accéder aux parties protégées d'un site par login/mot de passe (espace utilisateurs ou administration par exemple) ou par .htaccess?
Scanne-t-il le code source envoyé à un navigateur directement? (dans ce cas il peut scanner des pages protégées alors?)

En bref, comment ça fonctionne ces robots?

Merci.

PS: je rassure tout le monde, je ne cherche pas à générer un programme de robot.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

16 févr. 2007, 13:33

Ce sont des spéculations mais bon :
Comment (concrètement) un robot parvient-il à parcourir toutes les pages d'un site?
Il suit les liens, il choppe les url, les charge et voilà, tu pourrais bien faire un robot en PHP avec les fonctions pour récupérer du contenu.
Comment enregistre-t-il ses données?
Dans une base de données par exemple, comme n'importe quel script peut le faire
Peut-il accéder aux parties protégées d'un site par login/mot de passe (espace utilisateurs ou administration par exemple) ou par .htaccess?
Bien sûr que non (sauf faille), un robot ça reste un programme informatique, ce n'est pas Dieu et il n'a pas plus de droits que n'importe qui
Scanne-t-il le code source envoyé à un navigateur directement? (dans ce cas il peut scanner des pages protégées alors?)
Bizarre comme question, une page protégée c'est une page protégée, tu n'y accèdes pas et tu ne récupères pas son code source :P

ViPHP
AB
ViPHP | 5818 Messages

16 févr. 2007, 17:10

Bonjour,

Si on veut aller plus loin que le principe de base énoncé par ouckileou on entre alors dans le domaine spéculatif car les robots ne sont rien d'autre qu'un programme qui peut varier suivant son concepteur.

En cherchant sur le web on peut lire par exemple que les robots n'interprètent pas ou peu javascript, d'où de nombreuses protections d'email faites en javascript. Cette méthode semble être efficace mais pour combien de temps, difficile à dire.

En fait le concepteur du robot est confronté à un problème simple: scanner un maximum de page avec une efficacité relative, ou scanner moins de page avec une meilleure efficacité.
Sur le web on peut imaginer être confronté aux deux, mais pour l'instant les robots semblent préférer la vitesse.

Concernant la protection des email, la méthodde la plus simple et la plus sûre est la conception d'un formulaire d'envoi de mail.

Mammouth du PHP | 19672 Messages

16 févr. 2007, 17:11

Pour résumer de façon peut-être plus parlante : un robot est un navigateur en mode texte (à la manière de lynx)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 216 Messages

16 févr. 2007, 17:22

Concrètement alors, à partir d'une URL de départ, on rayonne.
Sur cette URL, on enregistre tous les liens et toutes les adresses email (faisable avec les expressions régulières) dans une BDD.
Ensuite le robot va sur le 1er lien dans la BDD, enregistre tous les liens et emails qu'il trouve dans cette page, etc. Il lit ensuite le 2e lien de la BDD, etc etc.
J'imagine qu'on donne des restrictions genre "uniquement sur tel nom de domaine, tel nom de serveur, telle IP", ou bien une profondeur de recherche (pas plus de 3 liens imbriqués) sinon on enregistre tout le Web.

Autrement pour ma question sur des pages protégés...
J'ai un site avec login/mdp, et l'utilisateur peut avoir accès aux mails d'autres utilisateurs. Ce n'est pas similaire à un forum et les MP car il faut être identifié pour accéder aux fonctions de mail.
Suis-je protégé complètement contre les robots de cette façon là?
Toute la partie visible publiquement du site est protégée contre les robots.

Autre question: peut-on détecter la présence d'un robot sur son site? Si oui, comment?

ViPHP
AB
ViPHP | 5818 Messages

16 févr. 2007, 18:07

re bonjour

Effectivement, toute les pages de ton site qui sont protégées par un système d'identification sont de ce fait inaccessibles par les robots.

Après, le seul maillon faible sont les utilisateurs autorisés à visiter ces pages. Rien n'empêche l'un d'entre eux de récupérer les mail et de les rendre public pour des mail list.
Pour éviter ça, une seule solution : un formulaire d'envoi de mail. Ou alors tu estimes que tu peux faire une totale confiance à tes visiteurs autorisés.

Eléphant du PHP | 216 Messages

16 févr. 2007, 18:46

re bonjour

Effectivement, toute les pages de ton site qui sont protégées par un système d'identification sont de ce fait inaccessibles par les robots.

Après, le seul maillon faible sont les utilisateurs autorisés à visiter ces pages. Rien n'empêche l'un d'entre eux de récupérer les mail et de les rendre public pour des mail list.
Pour éviter ça, une seule solution : un formulaire d'envoi de mail. Ou alors tu estimes que tu peux faire une totale confiance à tes visiteurs autorisés.
A priori, les profs sont des personnes de confiance. Je ne pense pas que ce soient eux qui chercheraient à faire foirer ce site, mais je pense plutôt aux élèves...

ViPHP
ViPHP | 3607 Messages

16 févr. 2007, 18:55

A priori, les profs sont des personnes de confiance. Je ne pense pas que ce soient eux qui chercheraient à faire foirer ce site, mais je pense plutôt aux élèves...
Juste pour préciser, que ce n'est parcequ'une personne est une personne de confiance, qu'elle ne peut pas faire d'erreur....
Et je suis persuadé, que beaucoups de prof (ou autres) sans aucune méchanceté, serait capable de balancer les mails de leurs collègue sur la toile (et sans aucune méchanceté, seulement parcequ'ils ne connaissent pas les "risques")...

ViPHP
AB
ViPHP | 5818 Messages

20 févr. 2007, 02:29


A priori, les profs sont des personnes de confiance. Je ne pense pas que ce soient eux qui chercheraient à faire foirer ce site, mais je pense plutôt aux élèves...
Sans même parler de vouloir foirer ton site... une petite rancoeur personnelle et l'on fait une "petite blague avec le mail du voisin" etc.
Enfin ça c'est plutôt à décider avec eux s'ils veulent que leur mails soient visibles par les autres ou pas.

L'avis peut être partagé et tu peux peut-être proposer les deux solutions pour un meilleur service: un formulaire d'envoi pour ceux qui ne veulent pas laisser leur adresse visible, et un formulaire d'envoi + l'adresse en clair et/ou un mailto, pour les autres.

HD
Mammouth du PHP | 1181 Messages

20 févr. 2007, 03:29

Autre question: peut-on détecter la présence d'un robot sur son site? Si oui, comment?
ca m'intéresse aussi, merci d'avance
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

ViPHP
AB
ViPHP | 5818 Messages

20 févr. 2007, 06:11

Autre question: peut-on détecter la présence d'un robot sur son site? Si oui, comment?
ca m'intéresse aussi, merci d'avance

J'ai vu que certains scripts php étaient conçus pour analyser le nombre de pages analysées par seconde pour détecter les robots (perdu le lien)...peut-être une piste.

Eléphant du PHP | 99 Messages

20 févr. 2007, 09:53

Un fournisseur de fofos gratuits que j'ai utilisé il y a un certain temps pouvait afficher dans la liste des utilisateurs connecté le nom des bots.
Vous êtes sur qu'ils ne se trahissent pas par des variables de $_SERVER?

ViPHP
AB
ViPHP | 5818 Messages

20 févr. 2007, 21:01

Un fournisseur de fofos gratuits que j'ai utilisé il y a un certain temps pouvait afficher dans la liste des utilisateurs connecté le nom des bots.
Vous êtes sur qu'ils ne se trahissent pas par des variables de $_SERVER?
Cela dépend s'ils cherchent à se cacher ou pas...Si oui ils peuvent adopter une entête ou un IP courant indétectable :

avec les méthodes qui utilisent $_SERVER['REMOTE_ADDR'] ou $_SERVER["HTTP_USER_AGENT"] on ne peut détecter et nommer un robot présent sur un site que si l'on connait son IP ou son entête à l'avance.

Eléphant du PHP | 70 Messages

16 mars 2007, 21:08

http://fr.selfhtml.org/divers/robots.htm

ça peut aider pour les moteurs de recherche "basiques" à la google-bot.

Par contre aucune idée de si des robots de pirates respectent ces indications, entre nous ça m'étonnerait..
:roll: :(

Pour les anglophones, il me semble que faire une recherche sur "spider" et "crawler" devrait vous donner plus d'infos :wink:
Comme dit un ami
"Il n’y a jamais de bugs dans les programmes que j’écris : juste des caractéristiques non documentées"

ViPHP
AB
ViPHP | 5818 Messages

18 mars 2007, 12:24

http://fr.selfhtml.org/divers/robots.htm

ça peut aider pour les moteurs de recherche "basiques" à la google-bot.

Par contre aucune idée de si des robots de pirates respectent ces indications, entre nous ça m'étonnerait..
:roll: :(

Pour les anglophones, il me semble que faire une recherche sur "spider" et "crawler" devrait vous donner plus d'infos :wink:
Effectivement faut pas compter sur un pirate pour respecter le manuel de bonne conduite! :lol: