ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【原创】浏览器UserAgent设置不当导致第三方证书无法申请的问题

【原创】浏览器UserAgent设置不当导致第三方证书无法申请的问题

原创 Linux操作系统 作者:lastwinner 时间:2011-06-21 21:46:49 0 删除 编辑

首先,这的确是一个问题;其次,这问题已经解决了。我在90分钟内搞定了此问题。

今天在某第三方支付平台上自助申请数字证书,在安装了CapiCom插件后,一点申请按钮,浏览器就报告说什么undefined错误,证书无法申请。我查了一下,是申请过程中JS没有考虑到特殊情况导致的。

我的IE6的window.navigator.userAgent的值是 Mozilla/4.0 (compatible; MSIE 6.0) ,第三方平台上从userAgent中获取OS版本的部分代码是:
var ua=window.navigator.userAgent;
var sVersion = ua.split(";")[2];
var sV = osVersion.substr(osVersion.length-3,1);
return osV;

显然,在上述ua下,osVersion一定会被赋上undefined的值,这势必导致osV在取值的时候出错。

实际上这个问题是由于用户浏览器的userAgent过长导致的。在IE中点击“帮助”->“关于”,本来正常可以弹出的对话框,还会再额外弹出“存储空间不足,错误53”的报错提示框。

然后lastwinner找到了一个解决此问题的最好的网址:http://www.enhanceie.com/ua.aspx(其他中文的站点我看了几个,都没有将问题说得明明白白的)

刚打开这页面,吓了我一跳:

上图中一开始页面就提示UA字符串超过200个字符可能会出问题,顺着提示和链接,进入了troubleshooting页面http://www.enhanceie.com/ie/troubleshoot.asp,按提示进行了第一步修正——干掉那些.Net的低版本Agent(不得不骂微软一句,你们干什么吃的啊……搞得我的浏览器的UA那么长):

干掉之后,发现警告信息少了一条,哦~~原来黄色底色的是警告信息呀,我还以为是什么demo……不管那么多,这时候去申请证书,申请成功了,因为window.navigator.userAgent已经忠实的返回了UA字符串——Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB7.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; Embedded Web Browser from: http://bsalsa.com/; .NET CLR 3.5.30729),如图:

而之前的UA如图:

当然,现在还有警告,继续按指示处理。lastwinner提醒你一下:Embedded Web Browser from: http://bsalsa.com/; 并非什么病毒放置的信息,只是一个第三方嵌入式浏览器的开发公司。最后清理完的如图所示:

至此,IE的UA就非常干净了。总结此次Troubleshooting的过程:先定位问题所在,找出问题原因,然后利用搜索,找出合适的解决方案,最终实施解决策略,解决了问题。

随后我给第三方支付提供了一个解决此问题的方案,思路如下:
 var sVersion = ua.split(";")[2];
var sV =0;
if(typeof(osVersion)=="undefined")
{
              //弹出一个层,让用户确定自己的操作系统版本
}
else
      sV = osVersion.substr(osVersion.length-3,1);
return osV;

让第三方支付的用户按我上述方式清理UA显然是不现实的,涉及到注册表的操作还是别让用户去操作的好。这个改进方案,只会对极少数用户弹出需要选择OS版本的对话框,而这种时候,这些用户是完全有能力识别自己操作系统的版本的。

发完解决方案,lastwinner一看时间,呼呼,差不多用了90分钟,真不容易。解决了问题,而且保留了当时的主要现场,心情不错,就随手写下了这篇博文。

转载请注明出处,谢谢!

ua_01long.jpg

ua_02medium.jpg

ua_03short.jpg

ua_01long_alertua.jpg

ua_02medium_alertua.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29867/viewspace-700442/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-12

  • 博文量
    223
  • 访问量
    2812936