2009年10月3日星期六

利用Opera的伪装功能突破IE-ONLY

起初,混沌初开,有两位大神主宰着互联网,一位是Netscape,另一位是IE,在网络世界里,他们看起来几乎一模一样,生活是美好的。

有一天,Netscape开发了一个小功能,从而使网络开发人员可以判别访问网站的浏览器是Netscape还是IE,当网站开发者觉得自己编写的网页中有Netscape不同于IE的功能时,他们可以拒绝IE访问,于是短暂的NETSCAPE-ONLY时代开始了。

但是,天欲其亡,必令其狂,随着Netscape的止步不前,随着IE功能上的进一步完善,随着彼盖大爷近似耍流氓地把IE和Windows捆绑销售,大神玉碎!从而开启了万人唾骂的IE-ONLY时代。

最近,居委会刘大妈神秘地告诉我她淘到一个内部消息──又拍要改变图片外链政策。

起初我担心的事儿真的发生了,使用国内的服务,你就不得不成天担惊受怕,因为说不定哪天他们就翻脸不认人了、关门了;使用国外的服务,你也不得不成天担惊受怕,因为说不定哪天皇上一兴奋,就给他墙了,我爱天朝!

既然如此,不如早作打算,对天朝治下服务商伤心得都不伤心了,所以宁愿冒被墙的危险,也要冲出亚洲,所以选择了PicasaWeb。

我爱天朝,也爱股沟儿,但是天朝老是墙股沟儿;我爱股沟儿,也爱Opera,但是股沟儿和Opera尿不到一个壶里──PicasaWeb不完全支持它。

其实很多网站牛X地说自己IE-ONLY无非是开发人员自己的意淫,用其它浏览器浏览一般也不会有什么大问题,那我们能不能霸王硬上弓呢。

其实,我这儿要强×(和谐用语,切记,切记)一下民意,IE的粉皮儿们,你们所深爱着的大神是个至今都不敢承认自己是谁的倒霉玩意儿,看看IE的身份证上写的是什么吧:


Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)


既然大部分网站是通过检查身份证来识别浏览器的,那就完全可以通过办假证来蒙混过关,看看天朝大街上铺天盖地的小广告吧,我爱天朝!

浏览器向网络服务器发送的数据包中分两部分,一个是消息头,一个消息体;消息头中有一行就是"User-Agent",里面放的就是浏览器的身份证,我们只需要把它改了就成了。事实上,目前大部分流行的浏览器都可以进行身份欺骗,Opera也不例外。

在Opera中打开PicasaWeb,会看到页面上方有一个粉红的提示条:

“您使用的浏览器并未完全得到支持。有些功能可能无法正常使用,但您还是可以随便看看。”

这时候是无法获取图片链接代码和进行删除等操作的。在页面空白处点右键,选择"编辑站点首选项",打开"网络选项卡",最下方有个"浏览器识别"的下拉列表框,其中有五个选项,默认的是"识别为Opera",另外还有"识别为Internet Explorer"、"识别为Firefox"、"屏蔽为Internet Explorer"和"屏蔽为Firefox"。它们的区别是,除识别为Opera外前两个"识别为"除了伪装身份为相应浏览器外,还保留有Opera的部分信息,后两个"屏蔽为"则完全将Opera伪装成对应浏览器。这里随便选择后两个中的一个,保存后刷新页面,整个世界安静了。

除此之外,Opera中还有三种设置方式。最简单的一个是使用按钮,打开"工具"->"外观"->"按钮"->"状态",将"识别为"拖到工具栏上,然后通过点击该按钮就可以切换身份了,不过该按钮只能切换三个"识别为",没有"屏蔽为",应该可以通过修改该按钮的配置文件来得到,以后再说吧。

另外一种方式是通过配置页面,在地址栏中输入"opera:config",回车后找到"User Agent",修改"Spoof UserAgent ID"下的值,1是识别为Opera,2是识别为Firefox,3是识别为IE,4是屏蔽为Firefox,5是屏蔽为IE。

还有一种方式是修改"ua.ini"配置文件,在Opera配置目录里(Linux下通常在用户主目录下的.opera里面,所有平台都可以在"opera:about"页找到自己的配置目录路径),有这个文件(如果没有就新建,反正我没找到),内容如下:


Opera Preferences version 2.0
; Do not edit this file while Opera is running
; This file is stored in UTF-8 encoding

[Identity]
www.opera.com=1
msdn.microsoft.com=2
picasaweb.google.com=4


显而易见,此配置文件意在为不同的域使用不同身份,它会在用户点击"帮助"菜单下的"检查更新"菜单项时被更新。

除了伪装身份,Opera还有另外一个破解兼容锁的办法。

Opera原生支持JavaScript脚本,而大多数网站做兼容性检查都是采用JavaScript,那我们就可以启用一个专门的JavaScript脚本来阻止网站的检查脚本,这样也可以破解它。

过多地采用JavaScript脚本并非一个很好的习惯,脚本的混乱容易引起系统资源占用过高、稳定性、安全性降低以及脚本之间冲突的问题。不过,有些时候仍然有采用这种方式的需要。其实伪装身份的方式就是告诉网站"我是顺民,有良民证",采用JavaScript的方式是告诉网站"不要问我从哪里来"。而有些网站偏偏就很邪门,它会通过更复杂和隐秘的方法判断浏览器身份,身份伪装在此时就行不通了,所以只好用脚本暴力破解。

没有评论:

发表评论