从一路捞导航网(16lao.com)的UA控制的页面跳转的BUG说起

来源:互联网 发布:网络零售额的定义 编辑:程序博客网 时间:2024/06/05 09:37

最近在地铁上看到了一路捞导航网铺天盖地的广告,想想明天就要踏上回家的火车,无事可做,于是就上上这个网站吧。


我的电脑安装的是Xubuntu系统,是个Linux操作系统,然后打开Firefox浏览器,键入16lao.com,回车。


奇迹发生了,页面从16lao.com跳转到m.16lao.com,之后又跳转到m.cn.16lao.com。


我心想,这可是个PC啊,怎么跳到移动端页面去了?

于是切换个UA吧,换成Win的UA果然没有再跳转了。




那么原因是什么呢?


先上CURL工具试试,



无论如何都会跳转cn.16lao.com的吧,继续



出代码了,估计不是header的事儿,再查查header



没有发现301,302什么的,估计是JS了。


看看源码吧,果然里面有这么一段:

<script type="text/javascript">function checkReqUrl(){    var redirectUrl = "";    var u = navigator.userAgent;    if (u.indexOf('iPhone') > -1) {        redirectUrl="http://m.16lao.com";    }    if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {        var referrerUrl = document.referrer;          var re =new RegExp("http://hd[.].+[.]16lao.com");        if(!re.test(referrerUrl)){            redirectUrl="http://m.16lao.com";        }    }    if(redirectUrl!=""){        window.location.href = redirectUrl;    }}checkReqUrl();</script>

于是真相就浮出水面了。


原来你家是判断UA里面的字符的,Android和iPhone也就罢了,Linux是个什么鬼?

这是鄙视Linux操作系统上网的家伙们么?

1 0