360浏览器 request.getHeader("user-agent") 值 如何解决 浏览器内核自动切换

渔泯小镇 发布于 2013/05/22 00:22
阅读 1K+
收藏 1

大家好。

浏览器

360浏览器6.1 内核自动切换

代码中调用 request..getHeader("user-agent"); 

获取的值是:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1

如果路径中带有 admin 的 在调用request..getHeader("user-agent");

获取的值是:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; KB974488);

http://www.oschina.net/code/snippet_12_2 正好红薯开源的代码也用到这个

RequestContext.java 第386行.


请问大家如何解决的! 




加载中
0
狂飙的小蜗牛
狂飙的小蜗牛
360是双核的,切换内核后 user-agent肯定要变的
0
狂飙的小蜗牛
狂飙的小蜗牛

偶然发现

直接访问:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19 QIHU 360EE

自动跳转:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19

多了个QIHU 360EE。。。

$_SERVER['HTTP_USER_AGENT'] 直接没用了

0
渔泯小镇
渔泯小镇
/**
	 * 从cookie中读取保存的用户信息
	 * @param req
	 * @return
	 */
	public IUser userFromUUID(String uuid) {
		if(StringUtils.isBlank(uuid))
			return null;
		String ck = _Decrypt(uuid);
		final String[] items = StringUtils.split(ck, '|');
		if(items.length == 5){
			String ua = header("user-agent");
			int ua_code = (ua==null)?0:ua.hashCode();
			int old_ua_code = Integer.parseInt(items[3]);
			if(ua_code == old_ua_code){
				return new IUser(){
					public boolean IsBlocked() { return false; }
					public long getId() { return NumberUtils.toLong(items[0],-1L); }
					public String getPwd() { return items[1]; }
					public byte getRole() { return IUser.ROLE_GENERAL; }
				};
			}
		}
		return null;
	}


其中 代码如下 估计也会出现这问题吧!

@红薯

int ua_code = (ua==null)?0:ua.hashCode();
int old_ua_code = Integer.parseInt(items[3]);
if(ua_code == old_ua_code)

返回顶部
顶部