浏览器对安全控件的支持

浏览器在接受用户输入以及传递数据时,容易受到监听和侵入。所以网银对输入账户和密码的内容,一般采取安全控件来避免被hook.但是不同类型的浏览器,所支持的控件是不同的。

很早以前,NPAPI是支持IE和其它内核浏览器的,但是在IE发展到一定阶段后,宣布放弃了npapi转到了ActiveX。所以对于IE系列浏览器而言,ActiveX是开发插件的一套框架。对于FF(Gecko内核)与Chrome(Webkit内核)之前主要使用NPAPI,现在有PPAPI。也就是说,某个模块支持了ActiveX和NPAPI后,基本上就适用所有浏览器了。

 

Chrome浏览器插件与扩展区别:

两者都是一组能够增强浏览器的组件,对于Chrome来讲,扩展(Extension)是在Chrome所提供的Api上进行开发的一组软件,工作在浏览器层面,所以相对来说它的安全性可控度高一些。

插件是指通过调用WebKit内核NPAPI来扩展功能的一种组件,工作在内核层面,理论上可以采用任何一种能在本地生成二进制程序的语言开发。比如 C/C++、Delphi 等比如Flash player 插件,就属于这种类型,一般在网页中用 或者 标签声明的部分,就要靠插件来渲染。它与浏览器运行在同一级别,容易引起浏览器崩溃

 

NPAPI:

由于NPAPI(Netscapeplugin API)是Netscape在1995年发明的,当时没有考虑太多的安全问题,它并不限制插件的权限,所以在运行时几乎是无限制访问系统的所有API。NPAPI 插件架构是个非常好的架构,一共就40几个API, 相对于另外一种浏览器插件架构: ActiveX来说,简直就是业界良心,后者导致各种木马泛滥传播。

而 Javascript 引擎的限制就多得多,事实上,Chromium 系列的浏览器 Javascript 引擎均是运行在沙盒之中,一举一动都是被严密监视着的,敢有异常? 浏览器分分钟杀死你。

而Google出于安全性考虑开发了PPAPI来在沙箱中运行插件,这样将消耗更大的内存。

 

对于42-45版本,开启NPAPI的方法:

Chrome 42已正式停止对NPAPI插件的支持,也就是这个版本以上的Chrome浏览器默认是已经无法加载安全控件的。

但Chrome目前提供了手动开启NAPAI支持的功能,在浏览器地址栏中输入chrome://flags/#enable-npapi,点击启用(Enable),重启Chrome浏览器即可。

ActiveX

使用该控件可以在Web中轻松的插入多媒体等内容,用于增强页面功能。应该明确ActiveX使用COM技术,使得软件部件可以在网络中进行交互。在网页中嵌入控件:使用标签进行设置,给出控件url,在访问时便会随页面加载到客户端,IE会提示用户是否安装。

最初微软为了解决不同程序之间的数据传递,有了剪贴板(Clipboard),但是剪贴板无法解决不同语言之间的数据格式转换问题,于是,推出了OLE(Object Linking and Embedded)技术,以对象为基础进行数据的传输,这样对象在不同的程序之间都可以被正确解析使用。在OLE基础上,COM(Component object Model)把对象的传输提高到网络层面。而ActiveX就是基于COM技术而实现的。ActiveX和OLE的最大不同在于,OLE针对的是桌面上应用软件和文件之间的集成,而 ActiveX则以提供进一步的网络应用与用户交互为主。

ActiveX控件是一种极其危险的提供功能的方法(目前正在被MS逐渐冷落),因为它是一种组建对象模型(COM)的对象,只要电脑的用户可以完成的任务,它都可以完成。比如它可以存取注册表,可以随意访问本地文件系统等等。一个网页上面的控件一般有2种不安全的状态,一种是脚本的不安全,一种是初始化的不安全。从用户下载一个ActiveX控件开始,这个控件甚至可能很容易被攻击,因为网络上任何网络程序都可以使用它。

 

在非IE中运行ActiveX控件:

ActiveX for Chrome插件,顶多是能让部分ActiveX控件在Chrome上跑:它是一个CRX后缀的文件,也就是浏览器的扩展咯,据说能够运行网银安全控件。

安装IE TAB也是一种扩展。遇到不兼容的网页,点一下,自动在Chrome里用IE运行该网页。

你可能感兴趣的:(自动化测试)