無標題文檔

Windows7 不完全体验

本人一向很懒,往往对于操作系统没有什么特别的要求。但很惊讶的看见 玉伯 竟然将笔记本和公司的台式机都换成了Windows7。听他的口气似乎 Windows7 真的不错,于是我也尝试着安装并试用了下微软的新系统。使用了段时间以后,说说我的感受和想法。先说明下,我装的是 Windows7 7077 版本(据说现在已经流出微软官方的简体中文版了)。

性能

Vista 的诸多负面评价中很多的一条就是占用系统资源。不清楚 Vista 这情况是否属实(我没怎么用过 Vista,就不评论了),微软也对 Windows7 的一大宣传就是占用资源和系统启动速度大幅度的改进。

https://friable.rocks/_/2009_11_05/595727553b22.jpg

在本人的笔记本上运行 Windows7,发现运行和启动速度和机子上原有的 XP 系统差不多。只不过相对老系统,Windows7 多占用了 200M 的内存。

https://friable.rocks/_/2009_11_05/297917553b2d.jpg

上图是本人机子运行 Windows7 的评分。说道评分在这里说个小插曲,就是忘记装驱动,结果评分得了个 1.0 分,人品爆发了下。

再说下兼容性的问题,这可能是大家都比较关注的。目前为止,似乎我常用的软件都没有发现什么问题。据说甚至 XP 老系统下的驱动都可以安装到 Windows7 下,不过即便如此还是建议使用 Vista 驱动。

体验

https://friable.rocks/_/2009_11_05/976637553b26.jpg

第一眼看过去,Windows7 最惊艳的地方莫过于新的任务栏了。这对于我看来,就是个 Mac OS Dock 的 Windows 版本。不过即便如此,个人还是挺欣喜于这个改进的。有个细节就是将「显示桌面」移动到了任务栏的最右边,也就是屏幕的右下角,以后盲点也能显示桌面了。

https://friable.rocks/_/2009_11_05/652207553b9a.jpg

这里说下有点不爽的地方,就是状态栏的图标折叠方式有些不习惯(众口难调),其实我更喜欢使用 XP 拉伸的方式,至少这样会认为图标都是放在了同个地方。

https://friable.rocks/_/2009_11_05/015707553b22.jpg

「我的电脑」到是改得让我这个 XP 用户有点难受,不过慢慢的使用就适应了。不过惊讶于 Windows7 竟然会认出 iPod 以及我的罗技鼠标,并给它们对应的图标,看来这安装后十几个 G 的容量有大部分就是存放着这些驱动信息。

https://friable.rocks/_/2009_11_05/3746175542be.jpg

虽然是测试版的 Windows7 ,但是还是预装了正式版的 IE8,这对于我等前端而言的确是个好消息。浏览器方面 Windows7 到是不挑剔(也想不出挑剔的理由),Firefox、Chrome、Opera 等我都给它安装上去并能正常的运行。

https://friable.rocks/_/2009_11_05/12436755f2a0.jpg

https://friable.rocks/_/2009_11_05/70289755f296.jpg

微软似乎从来没有放弃家用信息化的念头,「阔别多年」的 Windows Media Center 又在 Windows7 中出现,而此次带来的感受绝对不亚于当年 Windows ME 发布的 MediaPlayer 7 (虽然 Windows ME 本身都说很失败)。

另外八卦个小细节,就是「摇动」当前窗口,就能将「背景窗口」最小化并显示桌面。虽然这感觉没有 Mac 下显示窗口来得优雅(微软的交互能想出这种交互方式也算是有才),但是还是比较实用的。

废话升级

操作系统市场的战斗不必浏览器这块清静。新版的 Ubuntu 9.04 也在近期发布,Windows7 正式发布想必也会并不遥远(一说是今年年底)。

本人其实无意挑起 Windows 和 Linux 之间的再次争论,但到最后觉得在桌面操作系统领域 Mac 和 Windows 的确会比 Linux 更有为的多,而同比 Linux 和 BSD 系统用作服务器是最合适不过的了。

作为名开发人员,乐观的观点就是,如果用户普遍都从老系统升级到 Mac 或者 Windows7,就是真正宣告 IE6 死亡的时候了(其实这 Vista 应赋予的使命,到最后可能还是得 Windows7 来胜任)。然而也可预见到的,就是这进程往往会比想象的慢 -- 并不是所有的用户都会放弃他们的操作习惯。

https://friable.rocks/_/2009_11_05/409457553c56.jpg

Vista 的口碑已经是「声名狼藉」(不过我没使用 Vista 的经验),Windows7 早已经被重受厚望,微软此次也是势在必得打算重新拾回「面子」。到时是怎样种情况,Windows7 这开发周期有史以来最长的操作系统,或许在 2009 年就能得到答案。

-- EOF --

前端也应关注安全

此文刊登在《程序员》三月期,有删改

提到安全问题,首先想到应付这些问题的应该是系统管理员以及后台开发工程师们,而前端开发工程师似乎离这些问题很遥远。然而,在 2008 年发生在安全领域的一系列 Web 安全事件,改变了人们对于传统安全的观念。让我们在这里简要回顾下:

IE7 的 0day 漏洞以及 Chrome 崩溃事件

2008 年的年底, IE7 爆出了个很严重的安全漏洞 。与往期微软的漏洞不同,这次的漏洞是从 IE7 发布时起就存在(这也是称之为 0day 漏洞的原因)。

该漏洞的原理,就是通过解析某段精心构造的 XML 造成 IE7 内存溢出,进而可执行任意的代码。虽然官方很快发布了此漏洞的补丁,但此漏洞仍然影响至今。

另个类似的浏览器风波,就是 Google 在 08 年 Q3 发布 Chrome 浏览器。在 Chrome 发布当天,黑客们就发现只要在地址栏中输入构造好的字符就能导致浏览器崩溃。此后即便 Google 迅速的修复了该漏洞,但已经对用户造成了非常糟糕的印象。

感叹:浏览器平台的安全问题,直接影响着该浏览器日后的市场份额。好比当年 Firefox 起家时也正因着重打安全这张重牌,才有今日的收获。即将推出的 IE8 浏览器,微软已经在各种场合大肆宣扬该新浏览器的安全性能。由此,正说明各浏览器厂商对安全这块的重视程度。相信目前正酣的浏览器战场,对于安全这块必然是兵家必争之地。

各微博客的 CSRF 和 Clickjacking 漏洞

微博客的流行是 Web2.0 大潮中的奇葩,然而近期爆发的 饭否、叽歪、Twitter 等的安全漏洞,着实让前端开发工程师大开眼界。 饭否 和 叽歪 的 CSRF 漏洞 ,使得攻击者能通过段 Javascript 代码在用户不知情的情况下,向微博客服务器发布相应的消息,从而造成攻击。

感叹:客户端的 Javascript 脚本早已经摆脱仅仅是显示页面效果的「玩具」,它已经变成一把利刀。这把刀能帮前端解决问题的同时,也能伤害到用户。

同比,年初爆发的 Twitter Clickjacking 漏洞 ,它将 Twitter 的发布页面通过 iframe 嵌入到第三方页面,然后通过 CSS 使得并将 Twitter 的发布按钮与第三方页面的按钮重合。这样,当用户本意点击第三方页面的按钮时,实际上点击的是 Twitter 页面的发布按钮,进而造成攻击。

感叹:前端攻击方式也正逐渐的升级,防范前端代码的攻击不仅仅就是防范 Javascript 等前端脚本,CSS 甚至 HTML 也能构成攻击。

「精武门」安全峰会

「精武门」安全峰会是阿里巴巴集团组织的针对 Web 应用安全的研讨会。和往年讨论后台安全不同,今年重点着重讨论 Web 攻击的方式和防范。众多国内著名的安全小组集聚一堂,讨论目前国内 Web 应用的前端安全问题。

感叹:在见识了琳琅满目的攻击方式的同时,也引发了对于未来国内 Web 应用安全的思考。

后记

Web 2.0 以降,前端这个职位已从传统「美工」,蜕变成用户体验的实现者。然而随着浏览器提供的功能日益强大、各种 Web 应用的日趋复杂,安全这块被传统笼罩的「灰色地带」,也正进入每个前端开发工程师的视线。相信在不久的将来,前端开发工程师作为新生的安全力量,必占有十分重要的一席。

Twitter 的 Clickjacking

最近的 Twitter 的 Clickjacking 漏洞 值得我们注意下。

这个漏洞的原理,就是将 Twitter 的发布页面 通过 iframe 载入到第三方页面。然后将 iframe 透明度设置成零,并将发布按钮与第三方页面的按钮重合。当用户本意点击第三方页面的按钮时,实际上点击的是 Twitter 页面的发布按钮( 详细 )。

https://friable.rocks/_/2009_02_13/1234539040.jpg

由于 Twitter 中的好友基本上都是熟人,加之好奇心的驱使很多人都会点击该按钮,因此很快就被传播开来。不过很快截止目前(2009-02-12), Twitter 官方已经修复了该漏洞

https://friable.rocks/_/2009_02_13/1234539182.png

官方的修复方式较简单,就是判断页面是否被 iframe 引入,如有则清空 body 节点的内容。而个人认为,这是非常偷懒而且治标不治本的的解决办法。

首先,既然清空页面(还做了个延时,又那么多的 DOM 操作,费时又费力),那何不直接跳转?其次,就是发现 Twitter 将几乎所有的 Web 版页面都加入了这段代码,有点杀鸡取卵的意思。再加个「马后炮」,其实这个页面压根就可以不用处理 $_GET['status'] 请求。

看了下代码,发现 Twitter 发布页同时包含了个 Javascript 的全局变量 twttr.form_authenticity_token,-- 我想你知道干嘛用的 (当然,前提条件是你怎么得到它)。

另外,还有个安全隐患,就是 移动版的 Twitter 页面 。手机页面由于没有过多的考虑 Javascript 操作,也就没有了上述的那段代码,但这意味着 Clickjacking 攻击其实在此页面还是存在的。

https://friable.rocks/_/2009_02_13/1234539386.png

上图是将此页面加入到 iframe 的效果,感谢 玉伯 同学的测试,剩下就打住不继续说了。

几点心得和感叹

  1. 前端代码在实现越来越丰富的应用的同时,也给安全问题划开了道巨大的口子
  2. Twitter 此法虽然也解决了该漏洞,但个人感觉并非常「不完美」。这就想起在平时,需要用什么方法才能恰当的搞定相应的需求
  3. 老生常谈, 避免 Javascript 全局变量 -- 没有不注意它的理由
  4. 漏洞的解决尽可能覆盖到所有的产品线,捡了西瓜的同时还得捡起芝麻

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章