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

时间:2010-10-15 11:10:03

标签: firefox browser cross-browser

我的Web应用程序与Firefox 3.6+兼容

我们在当地的一个机器上安装了一个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 LOG 的Mozilla / 5.0 +(视窗; + U +视窗+ NT + 6.1; + RU + RV:1.9.2.10)。+壁虎/ 20100914 +火狐/ 3.0.1 +(+ NET + CLR + 3.5.30729; + .NET4.0C)200 0 0

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

另外,如果从IIS日志中查看GECKO版本,它是1.9.2,随Firefox 3.6一起提供。*

编辑3:问题出在FireFox .config文件中,该文件已手动编辑/欺骗

2 个答案:

答案 0 :(得分:1)

至少有两种方法可以检查浏览器版本。

一种是使用来自HTTP请求的User-Agent标头:

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导航器属性。它描述于:Using the navigator object to detect client's browser

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

您可以检查服务器端的HTTP标头(Apache通常配置为在日志中显示此标头)或通过像tcpmon这样的隧道。对于JavaScript,请使用JavaScript Kit页面中的代码。

答案 1 :(得分:1)

我强烈怀疑您的客户端有一个修改后的用户代理字符串。您可以重置by following these instructions