2010-10-15 12 views
0

I notre application web est compatible avec Firefox 3.6+Firefox, un navigateur, mais deux versions différentes?

Nous avons un Firefox installé sur un de nos machiens locaux et en haut de la page A propos, la version 3.6.10 est ce que nous attendons.

Au bas de la page à propos, la version est définie sur: Gecko/20100914 Firefox/3.0.1

Parce qu'il est réglé sur 3.0.1, il est ramassé par le script côté client et l'utilisateur est incapable d'utiliser l'application. Actuellement, je suis incapable de répliquer cela.

Notre estimation est que l'utilisateur n'a pas installé 3.6.10 à partir de zéro, mais mis à jour de 3.0.1

Est-ce que quelqu'un d'autre rencontré avant?

Merci

Edit: La version Gecko est "Gecko 1.9.2" qui vient avec Firefox 3.6 ... donc c'est aussi très bien .... très confus

Edit 2: IIS LOG Mozilla/5.0 + (Windows; + U; + Windows + NT + 6.1; + ru; + rv: 1.9.2.10) + Gecko/20100914 + Firefox/3.0.1 + (+ .NET + CLR + 3.5 .30729; +. NET4.0C) 200 0 0

Je peux voir le 3.0.1 mais je ne comprends pas pourquoi la page About affiche une version du navigateur comme 3.6.10

Aussi, si vous regardez la version GECKO du journal IIS, il est 1.9.2 qui est fourni avec Firefox 3,6 *

Edit 3:. Le problème était dans le dossier d'un FireFox qui a été manuellement édité/spoofé

+1

Il s'agit d'une chaîne d'agent utilisateur très étrange, puisque la version de construction de Gecko correspond à Firefox 3.6.10 mais pas à Firefox. Il * peut * être usurpé. – BoltClock

+0

À moins que (comme le dit @BBoltClock) l'UA ait été usurpé, cela ressemble à une installation échouée, car l'UA doit toujours refléter la version du navigateur. Réinstaller FF 3.6.10 réglerait cela. – stuartd

+0

Le client a réinstallé le navigateur à partir d'une nouvelle installation. L'installation précédente de HI était dans une langue étrangère, mais la nouvelle installation est en anglais. Le problème est le même - la version est définie sur 3.0.1 .. –

Répondre

1

Je soupçonne fortement que votre client a une chaîne d'agent utilisateur modifiée. Vous pouvez le réinitialiser by following these instructions.

+0

Ce fut le problème en effet, trouvé le même jour, j'ai oublié de répondre ici. C'est frustrant. Je ne sais toujours pas comment ça s'est modifié. –

1

Il existe au moins 2 façons de vérifier la version du navigateur.

On est d'utiliser User-Agent en-tête de requête HTTP:

GET /index.html HTTP/1.1 
Host: localhost:8765 
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 (.NET CLR 3.5.30729; .NET4.0E) 
... 

Mais cette demande peut être modifiée par un proxy, ou par l'utilisateur (ainsi Opera peut facilement imiter MS IE etc).

L'autre façon est d'utiliser les propriétés du navigateur JavaScript. Il est décrit dans: Using the navigator object to detect client's browser.

Je ne sais pas quelle méthode a été utilisée pour détecter la version du navigateur. Si c'était de l'en-tête HTTP alors il est facile de changer - vous devez probablement changer la détection de la version du navigateur en JavaScript. Si JavaScript a échoué alors probablement cette installation du navigateur a été cassée.

Vous pouvez vérifier les en-têtes HTTP côté serveur (Apache est souvent configuré pour afficher cela dans les journaux) ou via un tunnel comme tcpmon. Pour JavaScript, utilisez le code de la page JavaScript Kit.

+0

La détection de la version n'est pas un problème. Ce que je ne comprends pas, c'est comment un navigateur peut-il afficher deux versions différentes. S'il vous plaît voir la modification pour le journal IIS –

+0

Alors, quel est votre 'User-Agent' dans l'en-tête HTTP et dans' navigator.userAgent'? Est-ce qu'ils diffèrent? –

+0

Je suis limité dans ce que je peux demander à l'utilisateur. La seule chose que j'ai actuellement est IIS log qui est posté dans Edit2. Je ne peux pas non plus reproduire ceci sur n'importe quelle autre machine. –