瀏覽器對安全控件的支持

瀏覽器在接受用戶輸入以及傳遞數據時,容易受到監聽和侵入。所以網銀對輸入賬戶和密碼的內容,一般採取安全控件來避免被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 插件,就屬於這種類型,一般在網頁中用 <object> 或者 <embed> 標籤聲明的部分,就要靠插件來渲染。它與瀏覽器運行在同一級別,容易引起瀏覽器崩潰

 

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技術,使得軟件部件可以在網絡中進行交互。在網頁中嵌入控件:使用<object>標籤進行設置,給出控件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運行該網頁。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章