Jump to content
Sign in to follow this  
Gribouille26

Problème $HTTP_USER_AGENT

Rate this topic

Recommended Posts

Bonjour,

J'ai un script php sur un de mes sites pour savoir d'où et avec quoi viennent les visiteurs.

<?php
$date = date("d/m/Y \à G.i:s", time());
$fp=fopen("visitindex.txt","a");  
fwrite($fp, "Index vu le $date par $REMOTE_ADDR\n avec $HTTP_USER_AGENT\n depuis $HTTP_REFERER\n");                              
fclose($fp);
?>

Je constatais que quaziment tout les visteurs venaient avec Mozilla. :up:

Puis qu'aucun ne venaient avec IE. :huh:

Après plusieurs jours, ça m'a semblé bizarre de ne pas voir de IE, tout de même! <_<

Alors je suis allée moi-même visiter mon site avec IE. :whistling:

Et là, je constate que ma visite est enregistrée avec Mozilla/4.0!!! :angry:

Ai-je fait une erreur? :(

Share this post


Link to post
Share on other sites

Salut Gribouille,

Tous les IE reportent Mozilla 4.0, le plus souvent avec la chaîne "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" ou équivalente.

Ce qui les différencie est le MSIE 6.0 ;)

Dan

Share this post


Link to post
Share on other sites

D'accord, je comprend! :D

Mais pourquoi, ça je ne comprend pas! :(

Et Mozilla correspond à quoi? :blush:

Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.7.5) Gecko/20041107 Firefox/1.0

?

Share this post


Link to post
Share on other sites
D'accord, je comprend!  :D

Mais pourquoi, ça je ne comprend pas!  :(

Et Mozilla correspond à quoi?  :blush: 

Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.7.5) Gecko/20041107 Firefox/1.0

?

<{POST_SNAPBACK}>

Décryptage d'un USER AGENT Linux (ici, le mien) :

Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.7.5) Gecko/20041108 Firefox/1.0

X11 : Serveur graphique

Linux i686 : Système

fr-FR : Langue

1.7.5 : Ça je sais pas :wacko:

Gecko : Moteur de rendu

20041108 : Date de la compilation

Firefox/1.0 : Navigateur

Internet Explorer utilise Mozilla/4.0 et la famille Mozilla utilise Mozilla/5.0.

Internet Explorer 3 utilisait Mozilla/2.0... Donc ça remonte à longtemps, l'utilisation de "Mozilla/xx.x" par IE.

Donc pour savoir quel est le navigateur, il faut surtout que tu cherches un nom : IE6 ou Firefox/1.0, c'est explicite ;)

Mais il ne faut pas se limiter à Mozilla/4.0 ou Mozilla/5.0 si tu veux des infos précises, car Mozilla/4.0 est utilisé avec IE 4, 4.5, 5, 5.5 et 6 ; Mozilla/5.0 est utilisé avec toute la famille Mozilla (Firefox, Thunderbird, Mozilla Suite) et depuis pas mal de temps, je crois.

Share this post


Link to post
Share on other sites
Décryptage d'un USER AGENT Linux (ici, le mien) :

Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.7.5) Gecko/20041108 Firefox/1.0

X11 : Serveur graphique

Linux i686 : Système

fr-FR : Langue

1.7.5 : Ça je sais pas :wacko:

Gecko : Moteur de rendu

20041108 : Date de la compilation

Firefox/1.0 : Navigateur

<{POST_SNAPBACK}>

Merci de cette explication! :up:

Mais tu as oublié le U en seconde possition dans la paranthèse! :(

Dans ton décriptage, il remplace MSIE 6.0 dans l'exemple IE de Dan.

Ca serait donc ça qui définit Mozilla?

A quoi correspond la date de la compilation? C'est celle du navigateur? :whistling:

Share this post


Link to post
Share on other sites
Merci de cette explication!  :up:

Mais tu as oublié le U en seconde possition dans la paranthèse!  :(

Dans ton décriptage, il remplace MSIE 6.0 dans l'exemple IE de Dan.

Ca serait donc ça qui définit Mozilla?

A quoi correspond la date de la compilation? C'est celle du navigateur?  :whistling:

<{POST_SNAPBACK}>

Le "U" ? Ah oui... Mais je ne sais pas à quoi il correspond.

Ce n'est pas ça qui définit Mozilla, c'est la présence de "Firefox/1.0" (ou "Mozilla/1.7.3" s'il s'agit de Mozilla) !

Et ce qui définit MSIE, c'est la présence de... "MSIE" !

L'User Agent de Mozilla et celui d'IE ne sont pas construits pareil, on ne peut donc pas les comparer...

Mais quand dans la chaine il y a "Firefox/xx.x" ou "Mozilla/xx.x" précédé de gecko, ça peut difficilement être IE.

Inversement, quand il y a "MSIE 6.0" ça peut difficilement être du Mozilla ;)

La date de compilation, c'est la date à laquelle les sources du logiciel ont été transformées... en logiciel executable !

Ainsi, je peux conclure que mon Firefox 1.0 est le reflet de l'état du développement au 8 novembre.

Loupilo.

Share this post


Link to post
Share on other sites

A noter qu'il est assez facile de modifier le HTTP_USER_AGENT, en php notamment.

Share this post


Link to post
Share on other sites

Que veux-tu dire par-là? :huh:

Qu'un internaute le modifie pour qu'il apparaîsse faux sur mes stat'?

Comme celui-là, peut-être: cmoi (compatible; MSIE; Windows; iOpus-I-M; FunWebProducts; FDM)

Ou que moi, je change son "decriptage"?

Share this post


Link to post
Share on other sites

sans chercher tres loin, il existe des extensions comme "User Agent Switcher" ou "Browser Identification" qui permettent de faire passer un navigateur pour un autre (=>IE, Opera, NS, etc.), voire de s''inventer un nouveau user-agent :P

Par exemple, au moment ou j'ecris voici les informations me concernant, que tu devrais retrouver dans les logs de sitooyatoo.free.fr :

Webmaster-Hub/0.1 (Google OS 0.1; U;) [fr]

:lol:

Share this post


Link to post
Share on other sites

il s'agissait d'un exemple futile. ;)

Mais objectivement il peut y avoir differents interets a manipuler l'identite d'un navigateur. Certains sont legitimes/necessaires, d'autres sont plus discutables.

Ce qu'il faut retenir, comme le fait noter Anonymus, c'est que le 'user-agent' peut etre modifie. Facilement.

:)

Edited by Dash

Share this post


Link to post
Share on other sites
Ce n'est pas ça qui définit Mozilla, c'est la présence de "Firefox/1.0" (ou "Mozilla/1.7.3" s'il s'agit de Mozilla) !

<{POST_SNAPBACK}>

Sauf que pour compliquer un peu les choses, Mozilla 1.7.3 ne contient pas de Mozilla/1.7.3 :lol:

Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.7.3) Gecko/20040910

Pas facile hein ?

Pour le rv:1.7.5, c'est simplement la version de Gecko, qui dans Firefox 1.0 est la 1.7.5. Bien évidemment il n'y a pas de Mozilla 1.7.5, et il n'y a jamais eu de rv:1.7.4 :wacko:

Mais pourquoi IE contient-il un "Mozilla" dans son User-Agent ? Simplement pour se faire fournir les versions riches des sites. Eh oui, c'est connu que Mozilla est bien meilleur, sans ça IE n'aurait droit qu'à une version "seconde zone" :lol:

Historiquement c'est exactement ça, mais ça remonte à la grande époque de Netscape (dont le nom de code était Mozilla et qui s'identifiait comme tel), au départ IE était obligé de s'identifier comme Mozilla/... car beaucoup de sites s'assuraient de n'envoyer leur "belle" version qu'à Netscape. :nono:

Le UserAgent peut être modifié soit par un pare-feu prétendant garantir l'anonymat, soit par un proxy, soit par d'autres choses encore.

Plus d'infos sur Mozilla.org : http://www.mozilla.org/build/revised-user-agent-strings.html ;)

Share this post


Link to post
Share on other sites
Sauf que pour compliquer un peu les choses, Mozilla 1.7.3 ne contient pas de Mozilla/1.7.3 :lol:

Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.7.3) Gecko/20040910

Pas facile hein ?

Pour le rv:1.7.5, c'est simplement la version de Gecko, qui dans Firefox 1.0 est la 1.7.5. Bien évidemment il n'y a pas de Mozilla 1.7.5, et il n'y a jamais eu de rv:1.7.4 :wacko:

Mais pourquoi IE contient-il un "Mozilla" dans son User-Agent ? Simplement pour se faire fournir les versions riches des sites. Eh oui, c'est connu que Mozilla est bien meilleur, sans ça IE n'aurait droit qu'à une version "seconde zone" :lol:

Historiquement c'est exactement ça, mais ça remonte à la grande époque de Netscape (dont le nom de code était Mozilla et qui s'identifiait comme tel), au départ IE était obligé de s'identifier comme Mozilla/... car beaucoup de sites s'assuraient de n'envoyer leur "belle" version qu'à Netscape. :nono:

Le UserAgent peut être modifié soit par un pare-feu prétendant garantir l'anonymat, soit par un proxy, soit par d'autres choses encore.

Plus d'infos sur Mozilla.org : http://www.mozilla.org/build/revised-user-agent-strings.html ;)

<{POST_SNAPBACK}>

N'ayant pas Mozilla, je n'ai pas testé... Je pensais que ce serait logique !

Sinon, pour le User-Agent, il est extremement facile de le modifier...

Je peux faire croire que je suis Google (ça peut servir) ou même IE, afin que les sites qui interdisent à l'accès à la famille Mozilla me laissent passer.

Bon, donc on récapitule :

Si l'UA contient Firefox, c'est Firefox, si il contient "Gecko" mais pas Firefox ni autre chose, c'est Mozilla, si il contient "MSIE", c'est Internet Explorer.

Et dans tous les cas il contient "Mozilla" (c'est pareil partout je crois, du moins chez Netscape et AOL c'est comme ça).

Loupilo.

Share this post


Link to post
Share on other sites
Si l'UA contient Firefox, c'est Firefox,
OK !

si il contient "Gecko" mais pas Firefox ni autre chose, c'est Mozilla,
Ou Netscape 6/7, Many One, Beonex, Galeon, Epiphany, Slamandra, Sylera, K-meleon [...] etc. :P

Et puis Safari (et Konqueror ?) s'identifie comme "Gecko-like" donc il faut chercher "Gecko/" ;)

si il contient "MSIE", c'est Internet Explorer.

<{POST_SNAPBACK}>

Oh que non !

Opera peut avoir un UA du genre

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.54 [fr]

:yoot:

Certains navigateurs peuvent être tentés de faire de même pour se faire passer pour IE, comme IE se faisait passer pour Netscape au début :rolleyes:

Non, vraiment, détecter le navigateur est impossible et beaucoup trop incertain :whistling:

Il ne faut vraiment pas l'utiliser :nono:

Share this post


Link to post
Share on other sites

Pour les Gecko, c'est vrai, j'avais oublié cette rafale :P

Konqueror s'identifie :

Mozilla/5.0 (compatible; Konqueror/3.2; Linux) (KHTML, like Gecko)

Enfin, tant qu'on y est, n'oublions pas Amaya :

amaya/8.6 libwww/5.4.0

et Lynx :

Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.7d

Opera n'a cette UA que si l'utilisateur décide de le mettre...

Par défaut, c'est :

Opera/7.60 (X11; Linux i686; U) [fr]

Mais on peut changer, et la, Opera prend l'UA que tu as donné, c'est à dire pour moi :

Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686) Opera 7.60 [fr]

Mais si on part dans l'optique que quand la chaine contient MSIE ça n'est pas forcement MSIE, on n'est pas sorti de l'auberge... Firefox peut aussi changer d'UA...

Loupilo.

Share this post


Link to post
Share on other sites

Pour être sûr de comptabiliser Opera, il suffit de faire le test de chaîne avant tous les autres.

Un utilisateur d'Opera peut en effet changer son UA en un clic (et le fait très souvent pour passer sur certains sites). Mais le mot Opera est toujours présent dans la chaîne.

Share this post


Link to post
Share on other sites

Ouulala!!!

Vous m'avez bien embrouillée... :wacko:

Ce que je retiens, c'est que c'est pas très sûr. ;)

Je regardais ces derniers jours, pour voir un peu.

Et j'ai trouver des gens qui navigaient avec des noms "exotiques" !

Des Toto, des cmoi,...

Share this post


Link to post
Share on other sites

C'est pourtant simple :D

Il suffit de faire plusieurs tris successifs.

- d'abord isoler les utilisateurs d'Opera quel que soit le browser pour lequel ils cherchent à de faire passer

- ensuite, pour bien faire, les utilisateurs de WebTV qui affichent souvent un UA avec "compatible MSIE"

- tous les autres UA avec MSIE dedans ont de grandes chances d'être de vrais utilisateurs d'IE

- ensuite, reste plus qu'à faire le tri entre les membres de la grande famille Gecko ;)

Share this post


Link to post
Share on other sites

Oui, effectivement, résumé ainsi, c'est plus clair! :up:

Mais comme tu le dis toi-même: "souvent", "de grandes chances", ... c'est pas très sûr... il faut y intégrer une marge d'erreur. ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...