以用户为中心的设计

这是UCDChina提前预览网页留下的存档,不包括作者可能更新过的内容。
推荐您进入文章源地址阅读和发布评论:http://www.xieyidian.com/?p=1175

IE 8和支付宝的兼容性问题

作者:刘晖  |   发布: (网友)稻草   |   时间:2009-03-21 01:32:36 文字大小:- +

昨天早上,IE 8终于正式发布了,很多人都在第一时间安装,但最终可能会遇到一些无法接受的问题。其中最主要的一个就是,支付宝的登录界面上,密码输入框无法使用。虽然需要重新安装登录控件,并有可能要求重新启动系统,但重启动后,登陆框依然无法使用。具体表现如下图所示:

image 

很多人因为这个原因,已经卸载了IE 8,重回IE 7的怀抱。其实问题还是可以解决的,而且很简单。但在这之前,首先有一个功能需要介绍,那就是数据执行保护(DEP,Data Execution Prevention)。这个功能最早出现在Windows XP SP2中,最后的所有Windows操作系统中都包含该功能。

简单来说,这个功能会用特殊的方法,将内存中非可执行代码明确标记为不可执行(No-Excute)的,这样此类代码就无法被执行,这种设计可防范缓冲区溢出攻击。该功能可通过AMD-64架构的CPU从硬件上实现,或通过支持的操作系统,从软件上实现。有关DEP的详细信息,可参考这篇MS KB文章:http://support.microsoft.com/kb/875352

在IE 8之前,默认情况下系统并不会对IE启用DEP功能,这主要就是为了更好地兼容不同的IE控件。因为某些IE控件,如果不是明确针对该功能进行过设计,在启用DEP的IE中使用可能会存在一定的问题。因此,很多控件在设计时并不考虑DEP的问题,因为反正这个功能并不会对IE启用。

然而为了提高安全性,从IE 8开始,默认情况下系统就会对IE 8启用DEP功能。这样,所有老版本的,或者设计不够完善的控件,都有可能遇到问题。而这也正是导致支付宝登录控件无法使用的直接原因。

image

在支付宝开发支持DEP的控件之前,要避免这一问题,那就必须将IE 8的DEP保护禁用,这样我们就可以在继续使用IE 8的同时登录支付宝,或使用其他受到DEP影响无法正常使用的控件。

在IE 8中打开Internet选项对话框,打开高级选项卡,然后反选“启用内存保护帮助减少联机攻击”选项,然后重启动IE,问题即可解决。同理,如果其他IE控件因为DEP的缘故无法正常使用,在禁用该选项后,也应该可以恢复正常。

image

需要注意,在Vista或其他支持并开启了UAC的系统中,该选项可能会是灰色的,无法关闭。这种情况下,使用管理员身份启动IE后即可进行操作。另外要注意的是,说IE的安全性能不够高,很大一部分程度上就是因为有各种乱七八糟的IE控件所导致的。因此在针对IE禁用DEP后,整体的安全性可能会受到一定的影响,因此一定要小心谨慎,或者仅仅在需要的时候才将其禁用(只需要重启动IE,不需要重启动系统)。

同时因为这个选项是针对全局的,无法像IE的安全区域那样仅针对特定网站禁用,所以目前我想不出什么更好的办法可以解决这个问题。如果谁有更好的思路,欢迎一起讨论。

更多
打印  |  相关话题:支付宝   |  类别:设计之外  |  源地址

UCDChina的书

《UCD火花集2》封面
UCDChina编著,定价35元
从卓越网购买 从当当网购买

《UCD火花集》封面
UCDChina编著,定价25元
从卓越网购买 从当当网购买

《应需而变——设计的力量》封面
UCDChina团队成员JunChen译,定价29元
从卓越网购买 从当当网购买

《网页设计解析》封面
UCDChina团队成员周陟著,定价62元
从卓越网购买 从当当网购买

《赢在用户》封面
UCDChina团队成员Angela译,定价29元
从卓越网购买 从当当网购买

《用户体验的要素》封面
UCDChina团队成员Angela译,定价25元
从卓越网购买 从当当网购买