專利名稱:瀏覽器調(diào)用插件的方法以及插件管理器、瀏覽器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種瀏覽器調(diào)用插件的方法以及插件 管理器、瀏覽器。
背景技術(shù):
插件是一種遵循一定規(guī)范的應(yīng)用程序接口編寫出來的程序。很多軟件都有插件, 插件有無數(shù)種。例如在IE瀏覽器中,安裝相關(guān)的插件后,瀏覽器能夠直接調(diào)用插件程序,用 于處理特定類型的文件。插件是會(huì)隨著IE瀏覽器的啟動(dòng)而自動(dòng)執(zhí)行的程序。IE瀏覽器常 見的插件有Flash插件、RealPlayer插件、MMS插件、MIDI五線譜插件、ActiveX插件等等。 再比如Winamp的DFX,也是插件。
圖1示出了現(xiàn)有技術(shù)中一種瀏覽器與插件交互工作的示意圖。如圖1所示,瀏覽 器包含插件管理器,該插件管理器用于在主程序和插件之間提供各種接口,使得插件和瀏 覽器之間得以交互工作。進(jìn)而,插件根據(jù)自身的需求可以調(diào)用本地資源,例如進(jìn)行文件的讀 /寫、文件的上傳/下載、配置文件的操作等等。在該技術(shù)方案中,插件直接對本地資源進(jìn)行 操作,由此會(huì)帶來不安全的隱患。具體來說,有些插件能夠幫助用戶更方便瀏覽互聯(lián)網(wǎng)或調(diào) 用上網(wǎng)輔助功能,這類插件屬于正常程序;但也有部分插件被人稱為廣告軟件(Adware)或 間諜軟件(Spyware),這類插件為惡意插件,它監(jiān)視用戶的上網(wǎng)行為,并把所記錄的數(shù)據(jù)報(bào) 告給插件的創(chuàng)建者,以達(dá)到投放廣告、盜取游戲或銀行帳號密碼等非法目的。因?yàn)椴寮刹?同的發(fā)行商發(fā)行,其技術(shù)水平也良莠不齊,插件程序很可能與其它運(yùn)行中的程序發(fā)生沖突, 從而導(dǎo)致諸如各種頁面錯(cuò)誤,運(yùn)行時(shí)間錯(cuò)誤等等現(xiàn)象,阻塞了正常瀏覽。另一方面,讀/寫、 上傳/下載文件的執(zhí)行速度較慢,會(huì)使線程出現(xiàn)卡、慢等現(xiàn)象,降低整個(gè)插件運(yùn)行速度和效 率。發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上 述問題的瀏覽器調(diào)用插件的方法和相應(yīng)的插件管理器、瀏覽器。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種瀏覽器調(diào)用插件的方法,包括
導(dǎo)入步驟,在瀏覽器調(diào)用插件時(shí),將所述插件中涉及輸入/輸出操作的行為導(dǎo)入 到輸入/輸出器中,所述輸入/輸出器維護(hù)有操作權(quán)限列表;
第一輸入/輸出操作步驟,所述輸入/輸出器根據(jù)所述操作權(quán)限列表,判定所述插 件是否具有執(zhí)行所述輸入/輸出操作的權(quán)限;若判定出所述插件具有執(zhí)行所述輸入/輸出 操作的權(quán)限,則由所述輸入/輸出器執(zhí)行所述輸入/輸出操作;若判定出所述插件不具有執(zhí) 行所述輸入/輸出操作的權(quán)限,禁止執(zhí)行所述輸入/輸出操作。
根據(jù)本發(fā)明的另一方面,提供了一種插件管理器,適于調(diào)用插件,并將涉及輸入/ 輸出操作的行為導(dǎo)入到輸入/輸出器中;并且
所述插件管理器包括輸入/輸出器,所述輸入/輸出器包括第一輸入/輸出操作模塊,所述第一輸入/輸出操作模塊適于根據(jù)所述輸入/輸出器維護(hù)的操作權(quán)限列表,判定 所述插件是否具有執(zhí)行所述輸入/輸出操作的權(quán)限;若判定出所述插件具有執(zhí)行所述輸入 /輸出操作的權(quán)限,則執(zhí)行所述輸入/輸出操作;若判定出所述插件不具有執(zhí)行所述輸入/ 輸出操作的權(quán)限,禁止執(zhí)行所述輸入/輸出操作。
根據(jù)本發(fā)明的另一方面,提供了一種瀏覽器,包括上述插件管理器。
根據(jù)本發(fā)明提供的技術(shù)方案,在瀏覽器調(diào)用插件時(shí),將插件中的i/o操作的行為 導(dǎo)入到單獨(dú)的I/o器中,I/O器根據(jù)其維護(hù)的操作權(quán)限列表,判定插件是否具有執(zhí)行該I/O 操作的權(quán)限,在具有該權(quán)限的情況下由I/o器執(zhí)行I/O操作,否則禁止執(zhí)行該I/O操作。本 發(fā)明利用I/o器對插件對本地資源的I/O操作進(jìn)行控制,防止插件帶來的安全隱患。而且, 本發(fā)明將速度較慢的I/o操作從其它線程中獨(dú)立出來由I/O器執(zhí)行,不會(huì)影響插件其它功 能的運(yùn)行速度,提聞了插件的執(zhí)行效率。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段, 而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠 更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通 技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明 的限制。而且在整個(gè)附圖中,用相同的參考符號表示相同的部件。在附圖中
圖1示出了現(xiàn)有技術(shù)中一種瀏覽器與插件交互工作的示意圖2示出了另一種瀏覽器與插件交互工作的示意圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的瀏覽器調(diào)用插件的方法的流程圖4示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的瀏覽器調(diào)用插件的方法的流程圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的插件管理器的結(jié)構(gòu)示意圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的瀏覽器的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開 的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例 所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍 完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
圖2示出了另一種瀏覽器與插件交互工作的示意圖。如圖2所示,將插件分為可 信任插件和不可信任插件。具體來說,可信任插件是經(jīng)過瀏覽器安全認(rèn)證的插件,例如瀏覽 器廠商自己開發(fā)的插件;而不可信任插件是未經(jīng)過瀏覽器安全認(rèn)證的插件,例如第三方開 發(fā)的插件等。插件管理器可以分別對這兩種插件進(jìn)行管理,并且不同類型的插件在不同的 線程中運(yùn)行。具體來說,可信任插件在主線程中運(yùn)行,而不可信任插件在子線程中執(zhí)行。在 這種技術(shù)方案中,對于插件的安全性進(jìn)行了區(qū)分,但是仍然不能防范不可信任插件的安全 隱患以及由于讀/寫、上傳/下載文件的速度慢導(dǎo)致插件運(yùn)行速度慢的問題。
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的瀏覽器調(diào)用插件的方法100的流程圖。如圖3所示,方法100始于步驟SlOl,該步驟SlOl為導(dǎo)入步驟,其中在瀏覽器調(diào)用插件時(shí),將插 件中涉及輸入/輸出(以下簡稱1/0)操作的行為導(dǎo)入到I/O器中,該I/O器維護(hù)有操作權(quán) 限列表。在本方法中,瀏覽器的插件管理器提供對于插件的接口,在瀏覽器調(diào)用插件時(shí),插 件管理器將插件中涉及I/o操作的行為導(dǎo)入到I/O器中來統(tǒng)一處理。I/O器是插件管理器 中一個(gè)獨(dú)立的功能模塊,它對插件對本地資源的操作進(jìn)行控制,防止插件帶來的安全隱患。 可選地,插件管理器對插件中涉及I/o操作的行為進(jìn)行攔截,將該行為導(dǎo)入到I/O器中來處 理。在I/o器中維護(hù)有操作權(quán)限列表,可選地,操作權(quán)限列表記錄了危險(xiǎn)函數(shù)與可調(diào)用該危 險(xiǎn)函數(shù)的插件的對應(yīng)關(guān)系,其中危險(xiǎn)函數(shù)是與I/o操作有關(guān)的函數(shù)。
隨后,方法100進(jìn)入步驟S102,其中I/O器根據(jù)操作權(quán)限列表,判定插件是否具有 執(zhí)行I/o操作的權(quán)限,若是,執(zhí)行步驟S103 ;否則執(zhí)行步驟S104。I/O器獲取與導(dǎo)入的I/O 操作有關(guān)的危險(xiǎn)函數(shù),查詢操作權(quán)限列表,獲得可調(diào)用該危險(xiǎn)函數(shù)的插件,I/o器判斷插件 是否屬于可調(diào)用該危險(xiǎn)函數(shù)的插件的范圍,若屬于,表明插件具有執(zhí)行I/o操作的權(quán)限;若 不屬于,表明插件不具有執(zhí)行I/o操作的權(quán)限。應(yīng)當(dāng)理解的是,本發(fā)明的操作權(quán)限列表不僅 限于記錄危險(xiǎn)函數(shù)與可調(diào)用該危險(xiǎn)函數(shù)的插件的對應(yīng)關(guān)系,也可以是記錄其它形式的操作 權(quán)限,例如直接記錄插件與允許該插件所執(zhí)行的I/o操作,或者記錄危險(xiǎn)函數(shù)與不可調(diào)用 該危險(xiǎn)函數(shù)的插件的對應(yīng)關(guān)系。對應(yīng)的,步驟S 102的具體執(zhí)行方式也隨之調(diào)整,本發(fā)明對 此不做限制。
在步驟S103中,I/O器執(zhí)行I/O操作。I/O器判定插件具有執(zhí)行I/O操作的權(quán)限, 由I/o器進(jìn)行對本地資源的讀/寫操作或上傳/下載操作。
在步驟S104中,I/O器禁止執(zhí)行I/O操作。I/O器判定插件不具有執(zhí)行I/O操作 的權(quán)限,禁止執(zhí)行I/o操作。
在本文中,上述步驟S102、步驟S103和步驟S104被稱為第一 I/O操作步驟。
根據(jù)本實(shí)施例提供的瀏覽器調(diào)用插件的方法,在瀏覽器調(diào)用插件時(shí),將插件中的 I/O操作的行為導(dǎo)入到單獨(dú)的I/O器中,I/O器根據(jù)其維護(hù)的操作權(quán)限列表,判定插件是否 具有執(zhí)行該I/O操作的權(quán)限,在具有該權(quán)限的情況下由I/O器執(zhí)行I/O操作,否則禁止執(zhí)行 該I/o操作。本方法利用I/O器對插件對本地資源的I/O操作進(jìn)行控制,防止插件帶來的 安全隱患。而且,本方法將速度較慢的I/o操作從其它線程中獨(dú)立出來由I/O器執(zhí)行,不會(huì) 影響插件其它功能的運(yùn)行速度,提高了插件的執(zhí)行效率。
圖4示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的瀏覽器調(diào)用插件的方法200的流程圖。在 方法200中將插件分為可信任插件和不可信任插件做不同的處理。如圖4所示,方法200 始于步驟S201,該步驟S201為判定步驟,其中瀏覽器的插件管理器判定插件是否為不可信 任插件,若是,執(zhí)行步驟S203 ;否則,執(zhí)行步驟S202。在本方法中,瀏覽器的插件管理器提供 對于可信任插件和不可信任插件的接口,該插件管理器中維護(hù)有可信任插件的列表和/或 不可信任插件的列表。在瀏覽器調(diào)用插件時(shí),插件管理器根據(jù)可信任插件的列表和/或不 可信任插件的列表判定插件是可信任插件或不可信任插件,如果是可信任插件,則執(zhí)行步 驟S202 ;如果是不可信任插件,則執(zhí)行步驟S203。
在步驟S202中,在主線程中運(yùn)行可信任插件。
在步驟S203中,在子線程中運(yùn)行不可信任插件。
在步驟S202和步驟S203的執(zhí)行過程中,方法200進(jìn)入步驟S204,其中插件管理器將可信任插件和/或不可信任插件的涉及I/o操作的行為導(dǎo)入到I/O器中。I/O器是插件 管理器中一個(gè)獨(dú)立的功能模塊,具體地,I/o器在單獨(dú)的I/O線程中運(yùn)行??蛇x地,插件管 理器對可信任插件和/或不可信任插件中涉及I/o操作的行為進(jìn)行攔截,將該行為導(dǎo)入到 I/o器中來處理。
可選地,I/O器向所有插件的I/O操作提供統(tǒng)一的I/O接口。在開發(fā)插件時(shí),開發(fā)人 員就要注意插件要進(jìn)行的I/o操作必須調(diào)用該統(tǒng)一 I/O接口。如果I/O器攔截到插件未調(diào) 用該統(tǒng)一 I/o接口而進(jìn)行的I/O操作,則禁止執(zhí)行I/O操作,具體執(zhí)行過程參見步驟S205。 應(yīng)當(dāng)理解的是,步驟S205為可選步驟,當(dāng)沒有要求插件的I/O操作必須調(diào)用統(tǒng)一 I/O接口 時(shí),本方法不包括步驟S205。
在步驟S204之后,方法200進(jìn)入步驟S205,I/O器判斷插件的I/O操作調(diào)用的是 否為統(tǒng)一的I/o接口,若是,執(zhí)行步驟S206,否則,執(zhí)行步驟S208。
在步驟S206中,I/O器查詢插件管理器進(jìn)行判斷得到的插件是可信任插件或不可 信任插件的結(jié)果,若插件為不可信任插件,執(zhí)行步驟S207 ;若插件為可信任插件,執(zhí)行步驟 S209。
在步驟S207中,I/O器根據(jù)操作權(quán)限列表,判定不可信任插件是否具有執(zhí)行I/O操 作的權(quán)限,若是,執(zhí)行步驟209 ;否則執(zhí)行步驟208。在I/O器中維護(hù)有操作權(quán)限列表,該操 作權(quán)限列表可以是以數(shù)據(jù)文件的形式在瀏覽器進(jìn)行安裝時(shí)被拷貝在指定的安裝目錄下。例 如,操作權(quán)限列表可以為.dat格式,經(jīng)過加密后被分發(fā)給瀏覽器。
可選地,操作權(quán)限列表記錄了危險(xiǎn)函數(shù)與可調(diào)用該危險(xiǎn)函數(shù)的插件的對應(yīng)關(guān)系, 其中危險(xiǎn)函數(shù)是與I/o操作有關(guān)的函數(shù)。表I示出了操作權(quán)限列表的一種示例。
表1.操作權(quán)限列表
危險(xiǎn)函數(shù)I可調(diào)用的插件RegOpenKeyFlash. ocx;Unity. ocxRegOpenKeyExFlash, ocx;Unity, ocxRegCreateKeyFlash, ocx;Unity, ocxRegCreateKeyExFlash, ocx;Unity, ocxRegSetValueFlash, ocx;Unity, ocxRegSetKeyValueFlash, ocx;Unity, ocxCreateFileFlash, ocx;reader. ocx;music. ocxDeleteFileFlash, ocx;reader. ocx;music. ocxMoveFileFlash, ocx;reader. ocx;music. ocx
表I所列出的危險(xiǎn)函數(shù)都是操作系統(tǒng)的系統(tǒng)級函數(shù)。其中,RegOpenKey, RegOpenKeyEx, RegCreateKey 和 RegCreateKeyEx 是注冊表創(chuàng)建操作函數(shù);RegSetValue 和 RegSetKeyValue是注冊表修改操作函數(shù);CreateFile是創(chuàng)建文件操作函數(shù);DeleteFile是 刪除文件操作函數(shù);MoveFile是移動(dòng)文件操作函數(shù)。
從表I可以看出,F(xiàn)lash, ocx允許所有的安全操作;Unity. ocx只允許注冊表操作; reader, ocx允許進(jìn)行文件操作;music. ocx允許進(jìn)行文件操作。
如果某不可信任插件A. ocx想要修改瀏覽器配置相關(guān)的注冊表項(xiàng),1/0器查詢操 作權(quán)限列表(表I),獲得可調(diào)用注冊表修改操作函數(shù)的插件為Flash, ocx和Unity, ocx, I/ O器判斷A. ocx不在其中,表明A. ocx不具有該修改權(quán)限。
如果不可信任插件music, ocx想要在瀏覽器目錄下創(chuàng)建文件,1/0器查詢操作權(quán) 限列表(表I),獲得可調(diào)用創(chuàng)建文件操作函數(shù)的插件為Flash, ocx、reader, ocx和music, ocx, 1/0器判斷music, ocx在其中,表明music, ocx具有創(chuàng)建文件的權(quán)限。
應(yīng)當(dāng)理解的是,表I所示的操作權(quán)限列表僅為本發(fā)明的一個(gè)具體的例子,本發(fā)明 不僅限于此。
在步驟S208中,1/0器禁止執(zhí)行1/0操作。1/0器判定不可信任插件不具有執(zhí)行 1/0操作的權(quán)限,或者,插件的1/0操作調(diào)用的不是統(tǒng)一的1/0接口,禁止執(zhí)行1/0操作。
在步驟S209中,1/0器執(zhí)行1/0操作。1/0器判定不可信任插件具有執(zhí)行1/0操 作的權(quán)限,或者,I/o器查詢到插件為可信任插件,由1/0器進(jìn)行對本地資源的讀/寫操作 或上傳/下載操作。
本實(shí)施例提供的方法200將插件分為可信任插件和不可信任插件,對于可信任插 件,1/0器直接執(zhí)行其1/0操作;對于不可信任插件,1/0器根據(jù)操作權(quán)限列表判定其是否 具有執(zhí)行1/0操作的權(quán)限,在具有該權(quán)限的情況下由1/0器執(zhí)行1/0操作,否則禁止執(zhí)行該 I/o操作。與方法100相比,方法200中插件的執(zhí)行效率得到進(jìn)一步提升。
圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的插件管理器300的結(jié)構(gòu)示意圖。如圖5所示, 插件管理器300包括1/0器310,插件管理器300適于調(diào)用插件,將涉及1/0操作的行為導(dǎo) 入到1/0器310中。可選地,插件管理器300攔截所調(diào)用的插件中涉及1/0操作的行為,將 該行為導(dǎo)入到1/0器310中。
1/0器310包括第一 1/0操作模塊311,第一 1/0操作模塊311適于根據(jù)1/0器維 護(hù)的操作權(quán)限列表,判定插件是否具有執(zhí)行I/o操作的權(quán)限;若判定出插件具有執(zhí)行1/0操 作的權(quán)限,則執(zhí)行I/o操作;若判定出插件不具有執(zhí)行I/o操作的權(quán)限,禁止執(zhí)行1/0操作。
進(jìn)一步的,插件管理器300還適于判定插件是可信任插件或不可信任插件。第一 1/0操作模塊311具體適于處理不可信任插件的1/0操作。1/0器310還包括第二 1/0操 作模塊312,第二 1/0操作模塊312適于處理可信任插件的1/0操作,具體地,適于直接執(zhí)行 可信任插件的1/0操作。
可選地,I/O器310向所有插件的I/O操作提供統(tǒng)一的I/O接口。I/O器310還包 括判斷模塊313和第三I/O操作模塊314。
判斷模塊313適于判斷插件的I/O操作調(diào)用的是否為統(tǒng)一的I/O接口 ;
第三I/O操作模塊314適于在判斷模塊313判斷出插件的I/O操作調(diào)用的是統(tǒng)一 的I/o接口的情況下,觸發(fā)第一 I/O操作模塊311或第二 I/O操作模塊312工作;在判斷模 塊313判斷出插件的I/O操作調(diào)用的不是統(tǒng)一的I/O接口的情況下,禁止執(zhí)行I/O操作。
上述可信任插件在主線程中運(yùn)行,不可信任插件在子線程中運(yùn)行,I/O器在單獨(dú)的 I/o線程中運(yùn)行。
I/O器310所維護(hù)的操作權(quán)限列表記錄了危險(xiǎn)函數(shù)與可調(diào)用該危險(xiǎn)函數(shù)的插件的 對應(yīng)關(guān)系,危險(xiǎn)函數(shù)是與I/o操作有關(guān)的函數(shù)。
圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的瀏覽器400的結(jié)構(gòu)示意圖。如圖6所示,瀏 覽器400包括上述插件管理器300以及插件(可信任插件和不可信任插件),其中插件也可 以在瀏覽器外部,不限于圖6中所示。
本發(fā)明對于插件擴(kuò)展架構(gòu)中的I/O結(jié)構(gòu)進(jìn)行重新布置,在插件管理器中布置單獨(dú) 的I/o器,在調(diào)用插件時(shí),將插件中的I/O操作的行為導(dǎo)入到I/O器中,I/O器根據(jù)其維護(hù) 的操作權(quán)限列表,判定插件是否具有執(zhí)行該I/o操作的權(quán)限,在具有該權(quán)限的情況下由I/O 器執(zhí)行I/O操作,否則禁止執(zhí)行該I/O操作。本發(fā)明利用I/O器對插件對本地資源的I/O 操作進(jìn)行控制,防止插件帶來的安全隱患。而且,本發(fā)明將速度較慢的I/o操作從其它線程 中獨(dú)立出來由I/o器執(zhí)行,不會(huì)影響插件其它功能的運(yùn)行速度,提高了插件的執(zhí)行效率。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。 各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求 的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種 編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā) 明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施 例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu) 和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在 上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施 例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保 護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面 的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此, 遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身 都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地 改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單 元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或 子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任 何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的 權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例 中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的 范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任 意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行 的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用 微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的插件管理器和瀏覽器中的 一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法 的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí) 現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號的形式。 這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式 提供。
應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng) 域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中, 不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在 未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這 樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來 實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件 項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為 名稱。
權(quán)利要求
1.一種瀏覽器調(diào)用插件的方法,包括導(dǎo)入步驟,在瀏覽器調(diào)用插件時(shí),將所述插件中涉及輸入/輸出操作的行為導(dǎo)入到輸A /輸出器中,所述輸入/輸出器維護(hù)有操作權(quán)限列表;第一輸入/輸出操作步驟,所述輸入/輸出器根據(jù)所述操作權(quán)限列表,判定所述插件是否具有執(zhí)行所述輸入/輸出操作的權(quán)限;若判定出所述插件具有執(zhí)行所述輸入/輸出操作的權(quán)限,則由所述輸入/輸出器執(zhí)行所述輸入/輸出操作;若判定出所述插件不具有執(zhí)行所述輸入/輸出操作的權(quán)限,禁止執(zhí)行所述輸入/輸出操作。
2.根據(jù)權(quán)利要求1所述的方法,在所述導(dǎo)入步驟之前還包括判定步驟,所述瀏覽器判定所述插件是可信任插件或不可信任插件;若所述瀏覽器判定所述插件是不可信任插件,所述方法執(zhí)行所述導(dǎo)入步驟和第一輸入/輸出操作步驟;若所述瀏覽器判定所述插件為可信任插件,所述方法執(zhí)行所述導(dǎo)入步驟和第二輸入/輸出操作步驟,所述第二輸入/輸出操作步驟具體為所述輸入/輸出器直接執(zhí)行所述輸入/輸出操作。
3.根據(jù)權(quán)利要求2所述的方法,所述輸入/輸出器向所有插件的輸入/輸出操作提供統(tǒng)一的輸入/輸出接口;在所述第一輸入/輸出操作步驟或第二輸入/輸出操作步驟之前,所述方法還包括判斷所述插件的輸入/輸出操作調(diào)用的是否為所述統(tǒng)一的輸入/輸出接口,若是,則執(zhí)行所述第一輸入/輸出操作步驟或第二輸入/輸出操作步驟;否則,所述輸入/輸出器禁止執(zhí)行所述輸入/輸出操作。
4.根據(jù)權(quán)利要求2或3所述的方法,所述可信任插件在主線程中運(yùn)行,所述不可信任插件在子線程中運(yùn)行,所述輸入/輸出器在單獨(dú)的輸入/輸出線程中運(yùn)行。
5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,所述操作權(quán)限列表記錄了危險(xiǎn)函數(shù)與可調(diào)用該危險(xiǎn)函數(shù)的插件的對應(yīng)關(guān)系,所述危險(xiǎn)函數(shù)是與輸入/輸出操作有關(guān)的函數(shù)。
6.根據(jù)權(quán)利要求1至5任一項(xiàng)所述的方法,所述將插件中涉及輸入/輸出操作的行為導(dǎo)入到輸入/輸出器中的步驟具體為攔截插件中涉及輸入/輸出操作的行為,將所述行為導(dǎo)入到輸入/輸出器中。
7.一種插件管理器,適于調(diào)用插件,并將涉及輸入/輸出操作的行為導(dǎo)入到輸入/輸出器中;并且所述插件管理器包括輸入/輸出器,所述輸入/輸出器包括第一輸入/輸出操作模塊,所述第一輸入/輸出操作模塊適于根據(jù)所述輸入/輸出器維護(hù)的操作權(quán)限列表,判定所述插件是否具有執(zhí)行所述輸入/輸出操作的權(quán)限;若判定出所述插件具有執(zhí)行所述輸入/輸出操作的權(quán)限,則執(zhí)行所述輸入/輸出操作;若判定出所述插件不具有執(zhí)行所述輸入/輸出操作的權(quán)限,禁止執(zhí)行所述輸入/輸出操作。
8.根據(jù)權(quán)利要求7所述的插件管理器,所述插件管理器還適于判定所述插件是可信任插件或不可信任插件;所述第一輸入/輸出操作模塊具體適于處理不可信任插件的輸入/輸出操作;所述輸入/輸出器還包括第二輸入/輸出操作模塊,所述第二輸入/輸出操作模塊適于處理可信任插件的輸入/輸出操作;所述第二輸入/輸出操作模塊具體適于直接執(zhí)行所述可信任插件的輸入/輸出操作。
9.根據(jù)權(quán)利要求8所述的插件管理器,所述輸入/輸出器向所有插件的輸入/輸出操作提供統(tǒng)一的輸入/輸出接口 ;所述輸入/輸出器還包括判斷模塊,適于判斷所述插件的輸入/輸出操作調(diào)用的是否為所述統(tǒng)一的輸入/輸出接口 ;第三輸入/輸出操作模塊,適于在所述判斷模塊判斷出所述插件的輸入/輸出操作調(diào)用的是所述統(tǒng)一的輸入/輸出接口的情況下,觸發(fā)所述第一輸入/輸出操作模塊或所述第二輸入/輸出操作模塊工作;在所述判斷模塊判斷出所述插件的輸入/輸出操作調(diào)用的不是所述統(tǒng)一的輸入/輸出接口的情況下,禁止執(zhí)行所述輸入/輸出操作。
10.根據(jù)權(quán)利要求8或9所述的插件管理器,所述可信任插件在主線程中運(yùn)行,所述不可信任插件在子線程中運(yùn)行,所述輸入/輸出器在單獨(dú)的輸入/輸出線程中運(yùn)行。
11.根據(jù)權(quán)利要求7至10任一項(xiàng)所述的插件管理器,所述操作權(quán)限列表記錄了危險(xiǎn)函數(shù)與可調(diào)用該危險(xiǎn)函數(shù)的插件的對應(yīng)關(guān)系,所述危險(xiǎn)函數(shù)是與輸入/輸出操作有關(guān)的函數(shù)。
12.根據(jù)權(quán)利要求7至11任一項(xiàng)所述的插件管理器,所述插件管理器攔截所調(diào)用的插件中涉及輸入/輸出操作的行為,將所述行為導(dǎo)入到所述輸入/輸出器中。
13.—種包括權(quán)利要求7-13任一項(xiàng)所述的插件管理器的瀏覽器。
全文摘要
本發(fā)明公開了一種瀏覽器調(diào)用插件的方法以及插件管理器、瀏覽器。其中方法包括在瀏覽器調(diào)用插件時(shí),將插件中涉及I/O操作的行為導(dǎo)入到I/O器中,I/O器維護(hù)有操作權(quán)限列表;I/O器根據(jù)操作權(quán)限列表,判定插件是否具有執(zhí)行I/O操作的權(quán)限;若判定出插件具有執(zhí)行I/O操作的權(quán)限,則由I/O器執(zhí)行I/O操作;若判定出插件不具有執(zhí)行I/O操作的權(quán)限,禁止執(zhí)行I/O操作。本發(fā)明利用I/O器對插件對本地資源的I/O操作進(jìn)行控制,防止插件帶來的安全隱患。而且,本發(fā)明將速度較慢的I/O操作從其它線程中獨(dú)立出來由I/O器執(zhí)行,不會(huì)影響插件其它功能的運(yùn)行速度,提高了插件的執(zhí)行效率。
文檔編號G06F17/30GK102999611SQ20121048824
公開日2013年3月27日 申請日期2012年11月26日 優(yōu)先權(quán)日2012年11月26日
發(fā)明者段培堃, 杭程, 任寰 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司