见识了电信流氓插iframe+分析解决方案

这两天回了家从感觉浏览器行为有些怪异,有些熟悉的网页无故出现了额外的竖直滚动条,有时候是两个,有时候甚至到了3个!我是用的是chrome浏览器,像现在wp后台添加文章的页面就是有3个竖直滚动条的。

首先毫无疑问wp后台是使用的iframe的结构,我们来把滚动条拉到末端,发现页面底部无故多出大片空白。最里边的滚动条拉到底部是正常的wp的最底部,另外两个滚动条到底部之后呈现的空白块又是什么呢?通过chrome右键的审查元素我们发现,我们的页面被嵌入了一个iframe之中,而正因为文章编辑这个页面本身有一层iframe(src:post-new.php),这里被挂了一次iframe,加上wp后台边栏这一层又被加了一次iframe,所以出现了3个滚动条。

进一步深入观察发现,被流氓过的页面大概呈现这样的结构<html><body><iframe><iframe><script></body></html>,其中第一个iframe的src正是你真正要访问的那个页面的地址,而第二个iframe的src是空白页,而重点就在于后面的js。完整的劫持页面模板可以看这里电信流氓(这是以虾米网为样本的,换成其他的网站只会变第一个iframe的src)。

通过我水水的前端水平,起码我可以看出:第一,这个js请求了某“logo.jpg”(不要被这寻常的名字和后缀名骗到了,后面给他传参数呢),并放在了第二个iframe中(也就是src是空白页的那个)。第二,在请求logo.jpg的时候传递了一些参数,分别是navigator.appMinorVersion(浏览器次级版本),screen.availHeight/Width(浏览器用户区高度宽度),screen.height/width(分辨率高度宽度),screen.colorDepth(屏幕色深)。剩余的代码有一部分是为了对这种iframe劫持做出的修正,包括form和连接的target为空时的修正,剩下的看不懂了。

从请求前面的这串http://202.105.165.211:4022/logo.jpg?p=,我们得到一个ip,经查这是中国电信的ip,而且是我所在地的地方电信,那么我就想问一句电信你想干嘛呢?收集用户数据?另外我联系到了电信另外一个很2b的东西叫做绿色上网。绿色上网可能是个好事但是能做成这么2b的我还第一次见,我也不知道为什么w3cschool你也要说是不良网页然后就跳转屏蔽了。

而且跳转到的这个页面的ip地址202.115.165.218和上面logo.jpg所在的202.105.165.211明显是一伙的哦。而且有一个很2b的证据是,这些被绿色上网拦截的页面都是载入到差不多才跳转的哦(不像撞墙那样子直接就挂了),所以综合判断这段js加载的logo.jpg应该和绿色上网有着莫大的关系,这样一说好像这货就正义了很多似的,“先加载判断是不良网页才屏蔽哦亲”,这个做法貌似比墙要人性化一些只不过手段比较拙劣,但是你怎么解释你收集我的显示器/浏览器的信息?莫非浏览器版本低或者屏幕太大了也算是不良网页的评判标准?我现在姑且把你定义为绿色上网的同时顺手牵羊收集用户的数据。

另外这个被插iframe造成的额外竖直滚动条的现象在页面刷新之后会消失,这个也符合绿色上网检测的要求。这个做法在外观上还导致了第一次网页加载时页面title无法正常显示(至少chrome下是这样),因为劫持后页面没有head区更加没有title段。那么对于这个这么流氓的东西我们该怎么办呢?

第一,我们让我们的网页跳出电信的iframe,其实就一句js就搞定,可以搜搜“防止 被iframe”,理论上设计上不需要被iframe的页面都应该加上一句跳出iframe的js以防止别人使用iframe非法引用你的页面。核心其实就是一句if (window.top != window.self) {window.top.location = window.self.location;}

第二,如果是绿色上网的问题,找电信去,表示你的强烈不满和严正干涉,这项业务应该是可以关的,当然了,也听说有很多人并不是绿色上网的问题也被电信插了iframe弹广告/劫持不存在域名跳转114之类的,搜索“流氓电信 logo.jpg”或者电信dns劫持之类的关键词立得。

新年就要到了没想到还有一件这么蛋疼的事情可以让我吐槽,阿黎在这里祝大家新年快乐撒~

见识了电信流氓插iframe+分析解决方案》上有1条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注