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

昨天早上,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的安全区域那样仅针对特定网站禁用,所以目前我想不出什么更好的办法可以解决这个问题。如果谁有更好的思路,欢迎一起讨论。

分享:

《IE 8和支付宝的兼容性问题》有4个想法

  1. 需要关闭执行保护才能用的东西我是不能接受的。不过,我昨天也开始用IE8和淘宝,但没有注意到有什么问题,我是用旺旺打开淘宝网页的,自动登陆了。支付的时候,说支付宝控件升级,提示不完善,说要重新启动(其实可以忽略),害我浪费了一些时间,不过倒是可以正常运行的。只有控件升级的时候需要管理员权限,注意要选择每次都自动加载这个控件,否则每次都要授权。旺旺运行的时候不需要管理员权限。

  2. 我估计还是和控件有关,甚至和控件的升级有关。在我电脑上如果启用DEP,每次都需要安装控件,反复安装,但就是没用,哪怕重启动系统一样没用。只有禁用DEP才能恢复正常。

    不过也无所谓了,以前默认都没有启用DEP,也那样用。况且现在IE我就是网银和支付宝才用一下,平时都用FF了,无所谓

  3. DEP和控件的安装方式没关系,无论DEP是如何设置的,控件的安装都是由IE中其他相关设置决定的,如果保持默认值不变,就算禁用IE的DEP,控件安装之前依然需要询问

    在IE的图标上点击鼠标右键,选择“以管理员身份运行”(针对Vista以及以后的操作系统,XP无此特性)

发表评论

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

发表评论前,先做个简单的数学题吧: * Time limit is exhausted. Please reload CAPTCHA.