Firefox,一个浏览器,但两个不同的版本?

Firefox,一个浏览器,但两个不同的版本?,firefox,browser,cross-browser,Firefox,Browser,Cross Browser,I我们的web应用程序与Firefox 3.6+兼容 我们在一个本地Machien上安装了Firefox,在about页面的顶部,版本设置为3.6.10,这正是我们所期望的 在about页面的底部,版本设置为:Gecko/20100914 Firefox/3.0.1 因为它被设置为3.0.1,所以会被客户端脚本拾取,用户无法使用该应用程序。目前我无法复制这个 我们猜测用户不是从头开始安装3.6.10,而是从3.0.1更新的 以前有谁见过这个吗 多谢各位 编辑:Gecko版本是Firefox 3.

I我们的web应用程序与Firefox 3.6+兼容

我们在一个本地Machien上安装了Firefox,在about页面的顶部,版本设置为3.6.10,这正是我们所期望的

在about页面的底部,版本设置为:Gecko/20100914 Firefox/3.0.1

因为它被设置为3.0.1,所以会被客户端脚本拾取,用户无法使用该应用程序。目前我无法复制这个

我们猜测用户不是从头开始安装3.6.10,而是从3.0.1更新的

以前有谁见过这个吗

多谢各位

编辑:Gecko版本是Firefox 3.6附带的“Gecko 1.9.2”……所以这也很好。。。。非常困惑

编辑2:IIS日志 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

我可以看到3.0.1,但我不明白为什么“关于”页面会将浏览器版本显示为3.6.10

另外,如果您从IIS日志中查看GECKO版本,它是Firefox 3.6提供的1.9.2*


编辑3:问题出在已手动编辑/伪造的FireFox.config文件中

至少有两种检查浏览器版本的方法

一种是使用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)
...
但这样的请求可以通过一些代理或用户进行更改(这样Opera就可以很容易地模仿MS IE等)

另一种方法是使用JavaScript导航器属性。如中所述:

我不知道用哪种方法检测浏览器版本。如果它来自HTTP头,那么很容易更改——您可能必须将浏览器版本检测更改为JavaScript。如果JavaScript失败,那么这个浏览器的安装可能会被破坏


您可以在服务器端(Apache通常配置为在日志中显示)或通过类似隧道的方式检查HTTP头。对于JavaScript,请使用JavaScript工具包页面中的代码。

我强烈怀疑您的客户端有一个修改过的用户代理字符串。您可以重置它。

这是一个非常奇怪的用户代理字符串,因为Gecko构建版本对应于Firefox 3.6.10,而不是Firefox版本。它可能是伪造的。除非(正如@BBoltClock所说)UA被伪造,否则这听起来像是失败的安装,因为UA应该始终反映浏览器版本。重新安装FF 3.6.10将修复此问题。客户端已从新安装重新安装浏览器。他以前安装的是外语,但新安装的是英语。问题是相同的-版本设置为3.0.1..检测版本不是问题。我不明白的是一个浏览器怎么能显示两个不同的版本。请查看IIS日志的编辑。那么,在HTTP头和导航器中,您的
用户代理是什么?它们有区别吗?我对用户的要求有限。我目前唯一拥有的是发布在Edit2中的IIS日志。我也不能在任何其他机器上复制。你也可以在
about:config
窗口中检查
general.useragent.extra.firefox
,并在
[App]
文件的
application.ini
部分中检查
版本。这确实是问题所在,当天发现了,忘了在这里回复。真令人沮丧。仍然不知道它是如何被修改的。