專利名稱:防止篡改ActiveX控件用途的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及計(jì)算機(jī)網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,特別是涉及一種防止篡改ActiveX控件用途的方法及系統(tǒng)。
背景技術(shù):
ActiveX是一個(gè)用于定義與編程語(yǔ)言無(wú)關(guān)的組件重用的架構(gòu),由此,軟件就可以由這些與編程語(yǔ)言無(wú)關(guān)的組件所構(gòu)成。ActiveX是微軟(Microsoft)于1996年提出的,它是對(duì)組建對(duì)象模型(Component Object Model, COM)和鏈接嵌入對(duì)象(Object Linking andEmbedding, OLE)技術(shù)的一個(gè)發(fā)展。ActiveX控件(ActiveX Controls)作為一個(gè)用于定義與編程語(yǔ)言無(wú)關(guān)的組件重用的架構(gòu),可用于創(chuàng)建可通過(guò)web瀏覽器工作在互聯(lián)網(wǎng)上的分布式應(yīng)用程序。ActiveX控件日益成為開(kāi)發(fā)應(yīng)用于多種容器的可編程軟件組件(programmable software components)的主流架構(gòu)。ActiveX控件可以在本地計(jì)算機(jī)中以當(dāng)前用戶權(quán)限做任何的事情,比如讀寫注冊(cè)表、訪問(wèn)文件系統(tǒng)等。另外,ActiveX控件可以嵌入到腳本容器中并且可被腳本驅(qū)動(dòng)。在比如IE瀏覽器(Internet Explorer)中的宿主容器中,驅(qū)動(dòng)控件的腳本的來(lái)源是未知的、不可信任的。因此,如果ActiveX控件被惡意來(lái)源的站點(diǎn)使用惡意腳本調(diào)用,惡意篡改其用途(Repurposing),而插件又具有無(wú)限制的運(yùn)行權(quán)限,這將給用戶的計(jì)算機(jī)系統(tǒng)帶來(lái)極大的安全威脅。
發(fā)明內(nèi)容
本申請(qǐng)所要解決的技術(shù)問(wèn)題是提供一種防止篡改ActiveX控件用途的方法及系統(tǒng),能夠識(shí)別惡意網(wǎng)頁(yè),解決 ActiveX控件因?yàn)楸粣阂獯鄹挠猛径o用戶計(jì)算機(jī)帶來(lái)安全威脅的問(wèn)題。為了解決上述問(wèn)題,本申請(qǐng)公開(kāi)了一種防止篡改ActiveX控件用途的方法,包括以下步驟ActiveX控件將接口的預(yù)置結(jié)果返回給宿主容器;ActiveX控件獲取宿主容器的當(dāng)前頁(yè)面地址;ActiveX控件將獲取的當(dāng)前頁(yè)面地址向驗(yàn)證服務(wù)器發(fā)送驗(yàn)證請(qǐng)求;驗(yàn)證服務(wù)器驗(yàn)證當(dāng)前頁(yè)面是否可信,并將結(jié)果返回給ActiveX控件;ActiveX控件根據(jù)返回結(jié)果確定是否允許自己被當(dāng)前頁(yè)面繼續(xù)使用,若當(dāng)前頁(yè)面可信,則允許當(dāng)前頁(yè)面繼續(xù)使用,反之,則不允許被當(dāng)前頁(yè)面繼續(xù)使用。進(jìn)一步地,所述ActiveX控件不允許被當(dāng)前頁(yè)面繼續(xù)使用包括ActiveX控件中斷宿主容器創(chuàng)建ActiveX對(duì)象的操作;或ActiveX控件拒絕當(dāng)前頁(yè)面訪問(wèn)ActiveX控件提供的接口。進(jìn)一步地,所述ActiveX控件根據(jù)返回結(jié)果確定是否允許自己被當(dāng)前頁(yè)面繼續(xù)使用包括
ActiveX控件通過(guò)接口方法的返回值控制ActiveX對(duì)象的創(chuàng)建過(guò)程;若當(dāng)前頁(yè)面可信,則接口方法返回預(yù)設(shè)的正確代碼,允許ActiveX對(duì)象完成創(chuàng)建;若當(dāng)前頁(yè)面不可信,則接口方法返回預(yù)設(shè)的錯(cuò)誤代碼,宿主容器根據(jù)接收到的接口方法返回值中斷創(chuàng)建ActiveX 對(duì)象。進(jìn)一步地,所述ActiveX控件根據(jù)返回結(jié)果確定是否允許自己被當(dāng)前頁(yè)面繼續(xù)使用包括ActiveX控件將結(jié)果存儲(chǔ)在ActiveX控件內(nèi)部的成員變量中;在ActiveX的所有接口實(shí)現(xiàn)中首先檢查該成員變量,若當(dāng)前頁(yè)面不可信,則ActiveX控件提供的接口拒絕當(dāng)前頁(yè)面腳本對(duì)接口的調(diào)用。進(jìn)一步地,所述ActiveX控件獲取宿主容器發(fā)送的當(dāng)前頁(yè)面地址包括宿主容器調(diào)用ActiveX控件的IOb jectWithSite接口的SetSite方法將容器指針傳遞給ActiveX控件;ActiveX控件根據(jù)獲取的容器指針取得當(dāng)前頁(yè)面的地址HostUrl。進(jìn)一步地,所述ActiveX控件通過(guò)https向驗(yàn)證服務(wù)器發(fā)送驗(yàn)證請(qǐng)求。進(jìn)一步地,所述驗(yàn)證服務(wù)器驗(yàn)證當(dāng)前頁(yè)面是否可信包括驗(yàn)證服務(wù)器將獲取的當(dāng)前頁(yè)面地址根據(jù)一定的邏輯與預(yù)先存儲(chǔ)的可信列表中的地址進(jìn)行查找,若包含在可信列表中,則認(rèn)為當(dāng)前頁(yè)面是可信的,反之,則認(rèn)為當(dāng)前頁(yè)面是不可信的,所述查找邏輯包括域匹配、站點(diǎn)匹配、地址參數(shù)匹配、整個(gè)頁(yè)面地址匹配。進(jìn)一步地,所述方法還包括 自動(dòng)或人工更新所述驗(yàn)證服務(wù)器中預(yù)先存儲(chǔ)的可信列表。為了解決上述問(wèn)題,本申請(qǐng)還公開(kāi)了一種防止篡改ActiveX控件用途的系統(tǒng),包括ActiveX控件,用于將IobjectSafety的預(yù)置結(jié)果返回給宿主容器,從而獲取當(dāng)前頁(yè)面地址,并將當(dāng)前頁(yè)面地址傳送給驗(yàn)證服務(wù)器;驗(yàn)證服務(wù)器,用于驗(yàn)證ActiveX控件傳送的宿主容器的當(dāng)前頁(yè)面地址,并將結(jié)果返回給ActiveX控件;所述ActiveX控件根據(jù)驗(yàn)證服務(wù)器的結(jié)果確定是否允許自己被當(dāng)前頁(yè)面繼續(xù)使用,若當(dāng)前頁(yè)面可信,則允許被當(dāng)前頁(yè)面繼續(xù)使用,反之,則不允許被當(dāng)前頁(yè)面繼續(xù)使用。進(jìn)一步地,所述ActiveX控件包括操作確定模塊,用于確定是否中斷宿主容器創(chuàng)建ActiveX對(duì)象的操作;或訪問(wèn)確定模塊,用于確定是否允許當(dāng)前頁(yè)面訪問(wèn)ActiveX控件提供的接口。進(jìn)一步地,所述ActiveX控件包括驗(yàn)證模塊,用于根據(jù)宿主容器傳送的容器指針取得當(dāng)前頁(yè)面的地址HostUrl。進(jìn)一步地,所述驗(yàn)證模塊包括發(fā)送單元,用于通過(guò)https向驗(yàn)證服務(wù)器發(fā)送驗(yàn)證請(qǐng)求。進(jìn)一步地,所述系統(tǒng)還包括列表管理器,用于維護(hù)更新驗(yàn)證服務(wù)器中存儲(chǔ)的可信列表,可信列表的記錄形式可以是以下所列中的一種或多種域名、站點(diǎn)、頁(yè)面地址、頁(yè)面地址的中參數(shù)、匹配模式。與現(xiàn)有技術(shù)相比,本申請(qǐng)包括以下優(yōu)點(diǎn)
本申請(qǐng)的防止篡改ActiveX控件用途的方法及系統(tǒng)通過(guò)在ActiveX控件預(yù)設(shè)返回結(jié)果,當(dāng)宿主容器(JavaScript和VBScript引擎)調(diào)用IobjectSafety接口時(shí),ActiveX控件首先返回預(yù)置結(jié)果,使得ActiveX對(duì)象的創(chuàng)建過(guò)程能夠繼續(xù)進(jìn)行;然后,在宿主容器調(diào)用IObjectSafety接口的SetSite方法時(shí),ActiveX控件獲取當(dāng)前頁(yè)面地址(HostUrl),并發(fā)送網(wǎng)頁(yè)到驗(yàn)證服務(wù)器進(jìn)行驗(yàn)證,通過(guò)驗(yàn)證服務(wù)器的返回結(jié)果判斷當(dāng)前頁(yè)面是否合法,并采取相應(yīng)的處理辦法。由于宿主容器(JavaScript和VBScript引擎)是在調(diào)用IObjectSafety接口并得到“本ActiveX控件安全”的回復(fù)后才會(huì)調(diào)用SetSite方法,因此,通過(guò)控制IObjectSafety接口的返回值的傳統(tǒng)驗(yàn)證方法不能適用于這類宿主容器。通過(guò)本方法,一方面,預(yù)置的安全回復(fù)結(jié)果能使宿主容器創(chuàng)建ActiveX對(duì)象的過(guò)程繼續(xù);另一方面,在后續(xù)的創(chuàng)建過(guò)程(即調(diào)用SetSite方法獲取到HostUrl后)會(huì)被截?cái)嘁则?yàn)證HostUrl的合法性,以此為憑據(jù)來(lái)決定創(chuàng)建過(guò)程是否中止,或者決定宿主容器是否可以使用控件接口提供的功能。以此來(lái)阻止惡意腳本對(duì)控件接口的非法調(diào)用,從而避免ActiveX控件被非法篡改用途。另外,通過(guò)將網(wǎng)頁(yè)地址發(fā)送給驗(yàn)證服務(wù)器來(lái)進(jìn)行驗(yàn)證,可以只在服務(wù)器端維護(hù)可信列表,并可以及時(shí)的維護(hù)更新。這就突破了傳統(tǒng)方法中可信列表編譯在控件內(nèi)部,當(dāng)可信列表變化時(shí)必須重新發(fā)布插件的限制,也就省去了用戶端瀏覽器在可信站點(diǎn)變化時(shí)必須重新升級(jí)插件的步驟。進(jìn)一步地,使用https進(jìn)行ActiveX控件與驗(yàn)證服務(wù)器的通信,保證了驗(yàn)證過(guò)程的保密性和完整性。當(dāng)然,實(shí)施本申請(qǐng)的任一產(chǎn)品不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
圖1是本申請(qǐng)的 防止篡改ActiveX控件用途的方法實(shí)施例一的流程圖;圖2是本申請(qǐng)的防止篡改ActiveX控件用途的方法實(shí)例圖;圖3是本申請(qǐng)的防止篡改ActiveX控件用途的方法中ActiveX控件識(shí)別惡意網(wǎng)頁(yè)實(shí)例的流程圖;圖4是本申請(qǐng)的防止篡改ActiveX控件用途的系統(tǒng)實(shí)施例一的結(jié)構(gòu)示意圖;圖5是本申請(qǐng)的防止篡改ActiveX控件用途的系統(tǒng)實(shí)施例二的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說(shuō)明。參照?qǐng)D1,示出本申請(qǐng)的一種惡意網(wǎng)頁(yè)識(shí)別的方法實(shí)施例一,包括以下步驟步驟101,ActiveX控件將接口的預(yù)置結(jié)果返回給宿主容器。在一個(gè)頁(yè)面需要使用ActiveX控件時(shí),宿主容器(如Javascript或Vbscript)首先會(huì)創(chuàng)建ActiveX對(duì)象,而在創(chuàng)建ActiveX對(duì)象的過(guò)程中,宿主容器會(huì)首先詢問(wèn)ActiveX控件是否安全,只有ActiveX控件回復(fù)安全后才能繼續(xù)創(chuàng)建ActiveX對(duì)象。因此,通過(guò)預(yù)先設(shè)置ActiveX控件的回復(fù),使宿主容器能夠繼續(xù)創(chuàng)建ActiveX對(duì)象,以便進(jìn)行后續(xù)操作。參照?qǐng)D2,其中,ActiveX控件實(shí)現(xiàn)了 IObjectSafety接口,宿主調(diào)用IObjectSafety接口來(lái)詢問(wèn)ActiveX控件“是否可初始化”或“是否可以和腳本交互”。因?yàn)轭A(yù)先設(shè)置,ActiveX控件都會(huì)回答“是”,即直接返回IObjectSafety接口中的預(yù)置結(jié)果,從而繼續(xù)進(jìn)行后續(xù)步驟。步驟102,ActiveX控件獲取宿主容器的當(dāng)前頁(yè)面地址。宿主容器在得到預(yù)置回復(fù)后會(huì)繼續(xù)創(chuàng)建ActiveX對(duì)象,并調(diào)用ActiveX控件的IObjectWithSite接口的SetSite方法以將容器指針(IUnknown*pUnkSite)傳遞給ActiveX控件。ActiveX控件拿到容器指針后就可以取得當(dāng)前頁(yè)面的地址HostUrl,然后向服務(wù)器發(fā)起驗(yàn)證請(qǐng)求,例如,querylsValid(HostUrl)。步驟103,ActiveX控件將獲取的當(dāng)前頁(yè)面地址向驗(yàn)證服務(wù)器發(fā)送驗(yàn)證請(qǐng)求。向驗(yàn)證服務(wù)器發(fā)起的驗(yàn)證請(qǐng)求通過(guò)https進(jìn)行通信,可以防止參數(shù)被修改,保證通信過(guò)程的保密性和完整性。步驟104,驗(yàn)證服務(wù)器驗(yàn)證當(dāng)前頁(yè)面是否可信,并將結(jié)果返回給ActiveX控件。驗(yàn)證服務(wù)器中會(huì)預(yù)先存儲(chǔ)可信列表,當(dāng)獲取到當(dāng)前頁(yè)面地址之后,便會(huì)與可信列表中的地址進(jìn)行查找,若包含在可信列表中,則認(rèn)為當(dāng)前頁(yè)面是可信的,反之,則認(rèn)為當(dāng)前頁(yè)面是不可信的,并將查詢結(jié)果返回給ActiveX控件。查找邏輯包括域(Domain)匹配、站點(diǎn)(Host)匹配、地址參數(shù)匹配、整個(gè)頁(yè)面地址匹配具體的,驗(yàn)證服務(wù)器在收到HostUrl后,對(duì)HostUrl進(jìn)行分析,通過(guò)服務(wù)器端的控制邏輯判斷該引用頁(yè)面是否是合法可信的,驗(yàn)證服務(wù)器將查詢結(jié)果返回給ActiveX控件。
進(jìn)一步地,服務(wù)器可對(duì)存儲(chǔ)的可信列表進(jìn)行實(shí)時(shí)更新,保證可信站點(diǎn)的時(shí)效性,更靈活地滿足業(yè)務(wù)需求。步驟105,ActiveX控件根據(jù)驗(yàn)證服務(wù)器的結(jié)果確定是否允許自己被當(dāng)前頁(yè)面繼續(xù)使用,若當(dāng)前頁(yè)面可信,則允許被當(dāng)前頁(yè)面繼續(xù)使用,反之,則不允許被當(dāng)前頁(yè)面繼續(xù)使用。其中,是否允許自己被當(dāng)前頁(yè)面繼續(xù)使用有兩種處置方法一種為,ActiveX控件根據(jù)IObjectWithSite接口方法,如SetSite方法的返回值來(lái)控制ActiveX對(duì)象的創(chuàng)建過(guò)程;若當(dāng)前頁(yè)面是可信站點(diǎn),則SetSite方法返回預(yù)設(shè)的正確代碼,如S_0K ;若當(dāng)前頁(yè)面是不可信站點(diǎn),則SetSite方法返回預(yù)設(shè)的錯(cuò)誤代碼,如E_FAIL或E_ACCESSDENIED。宿主容器根據(jù)接收的SetSite方法的返回值來(lái)確實(shí)是否允許繼續(xù)創(chuàng)建ActiveX對(duì)象。若SetSite方法的返回值為S_0K,則允許ActiveX對(duì)象完成創(chuàng)建,若SetSite方法的返回值為E_FAIL或E_ACCESSDENIED,會(huì)中斷創(chuàng)建ActiveX對(duì)象。另一種為,IObjectWithSite接口方法,如SetSite方法會(huì)始終返回預(yù)設(shè)的正確代碼,即會(huì)允許ActiveX對(duì)象完成創(chuàng)建,但是通過(guò)禁止調(diào)用接口的方式來(lái)禁止當(dāng)前網(wǎng)頁(yè)對(duì)ActiveX控件的繼續(xù)使用,從而避免ActiveX控件用途被篡改。具體的,包括將驗(yàn)證服務(wù)器的結(jié)果存儲(chǔ)在ActiveX對(duì)象內(nèi)部的成員變量中以作為后續(xù)對(duì)接口訪問(wèn)合法性判斷的依據(jù)(假設(shè)變量名為flag_isValid)。具體地,在所有接口實(shí)現(xiàn)的方法的開(kāi)始部分檢查該成員變量flag_isValid便可以判斷當(dāng)前頁(yè)面是否可信,如果當(dāng)前頁(yè)面不可信,則接口立即返回預(yù)設(shè)的錯(cuò)誤代碼,如E_ACCESSDENIED,來(lái)拒絕當(dāng)前頁(yè)面腳本對(duì)接口的調(diào)用,這樣,惡意腳本就很難篡改控件用途。例如,參照?qǐng)D3,以將驗(yàn)證結(jié)果作為ActiveX控件內(nèi)部的成員變量作為后續(xù)判定依據(jù)為例,宿主容器通過(guò)腳本調(diào)用創(chuàng)建完成ActiveX對(duì)象的過(guò)程中,都會(huì)檢查flag_isValid的狀態(tài),如果是合法來(lái)源,則進(jìn)入正常功能的執(zhí)行流程,為宿主容器提供相應(yīng)功能;如果是非法來(lái)源,則立即中斷執(zhí)行,不再執(zhí)行任何功能。采取這種方式,所有接口都被保護(hù)起來(lái),具有較好的隱蔽性,使攻擊者無(wú)法利用ActiveX控件內(nèi)部的潛在漏洞對(duì)用戶系統(tǒng)造成危害。參照?qǐng)D4,示出本申請(qǐng)的惡意網(wǎng)頁(yè)識(shí)別的系統(tǒng),包括ActiveX控件10和驗(yàn)證服務(wù)器20。其中,ActiveX控件10用于將接口的預(yù)置結(jié)果返回給宿主容器,從而獲取當(dāng)前頁(yè)面地址,并將當(dāng)前頁(yè)面地址傳送給驗(yàn)證服務(wù)器20,并根據(jù)驗(yàn)證服務(wù)器20的返回結(jié)果確定是否允許自己被當(dāng)前頁(yè)面繼續(xù)使用,若當(dāng)前頁(yè)面可信,則允許被當(dāng)前頁(yè)面繼續(xù)使用,反之,則不允許被當(dāng)前頁(yè)面繼續(xù)使用。優(yōu)選地,ActiveX控件包括操作確定模塊或訪問(wèn)確定模塊。其中,操作確定模塊,用于確定是否中斷宿主容器創(chuàng)建ActiveX對(duì)象的操作。具體的,操作確定模塊通過(guò)IObjectWithSite接口方法,如SetSite方法的返回值控制ActiveX對(duì)象的創(chuàng)建過(guò)程;若當(dāng)前頁(yè)面可信,則SetSite方法返回預(yù)設(shè)的正確代碼,如S_0K,允許ActiveX對(duì)象完成創(chuàng)建;若當(dāng)前頁(yè)面不可信,則SetSite方法返回預(yù)設(shè)的錯(cuò)誤代碼,如E_FAIL*E_ACCESSDENIED,宿主容器根據(jù)接收到的SetSite返回值中斷創(chuàng)建ActiveX對(duì)象。訪問(wèn)確定模塊,用于確定是否允許當(dāng)前頁(yè)面訪問(wèn)ActiveX控件提供的接口。具體的,訪問(wèn)確定模塊將結(jié)果存儲(chǔ)在ActiveX控件內(nèi)部的成員變量中;在所有接口實(shí)現(xiàn)的方法的開(kāi)始部分檢查該成員變量,若當(dāng)前頁(yè)面不可信,則ActiveX控件提供的接口拒絕當(dāng)前頁(yè)面腳本對(duì)接口的調(diào)用。驗(yàn)證服務(wù)器20用于驗(yàn)證ActiveX控件10傳送的頁(yè)面地址,并將結(jié)果返回給ActiveX控件10。其中,驗(yàn)證服務(wù)器中存儲(chǔ)可信站點(diǎn)的可信列表(即白名單),并在收到ActiveX控件10請(qǐng)求后將驗(yàn)證結(jié)果通過(guò)驗(yàn)證模塊反饋給ActiveX控件10??尚帕斜淼挠涗浶问娇梢允且韵滤兄械囊环N或多種域名(Domain)、站點(diǎn)(Host)、頁(yè)面地址(URL)、頁(yè)面地址的中參數(shù)、匹配模式。優(yōu)選地,ActiveX控件10包括預(yù)置模塊和驗(yàn)證模塊。預(yù)置模塊,用于預(yù)先設(shè)置IObjectSafety接口的返回結(jié)果,使宿主容器能夠繼續(xù)創(chuàng)建ActiveX對(duì)象,從而使驗(yàn)證模塊能夠獲取宿主容器傳送的當(dāng)前頁(yè)面地址HostUrl。驗(yàn)證模塊,用于獲取當(dāng)前頁(yè)面地址HostUrl,并將HostUrl傳送給驗(yàn)證服務(wù)器20。優(yōu)選地,驗(yàn)證模塊根據(jù)宿主容器傳送的容器指針取得當(dāng)前頁(yè)面的地址HostUrl。優(yōu)選地,ActiveX控件10的驗(yàn)證模塊包括發(fā)送單元,通過(guò)https與驗(yàn)證服務(wù)器20鏈接,確保了通信的內(nèi)容不易被篡改,使系統(tǒng)的整體安全性得到了較好地保證。參照?qǐng)D5,優(yōu)選地,系統(tǒng)還包括列表管理器30,用于維護(hù)驗(yàn)證服務(wù)器20中的可信列表,可以由人工完成,也可以根據(jù)程序邏輯自動(dòng)完成。本申請(qǐng)的防止篡改ActiveX控件用途的方法及系統(tǒng)通過(guò)在ActiveX控件預(yù)設(shè)返回結(jié)果,當(dāng)宿主容器(JavaScript和VBScript引擎)調(diào)用IObjectSafety時(shí),ActiveX控件首先返回預(yù)置結(jié)果,使得ActiveX對(duì)象的創(chuàng)建過(guò)程能夠繼續(xù)進(jìn)行;然后,在宿主容器調(diào)用SetSite方法時(shí),ActiveX控件獲取當(dāng)前頁(yè)面地址(以下稱HostUrl),并發(fā)送網(wǎng)頁(yè)到驗(yàn)證服務(wù)器進(jìn)行驗(yàn)證,通過(guò)驗(yàn)證服務(wù)器的返回結(jié)果判斷當(dāng)前頁(yè)面是否合法,并采取相應(yīng)的處理辦法。由于宿主容器(JavaScript和VBScript引擎)是在調(diào)用10bjectSafety接口并得到“本ActiveX控件安全”的回復(fù)后才會(huì)調(diào)用SetSite獲取當(dāng)前頁(yè)面地址,因此,先調(diào)用SetSite驗(yàn)證后再返回IObjectSafety接口值的傳統(tǒng)驗(yàn)證方法不能適用于這類宿主容器。通過(guò)本方法,一方面,預(yù)置的安全回復(fù)結(jié)果能使宿主容器創(chuàng)建ActiveX對(duì)象的過(guò)程繼續(xù);另一方面,在后續(xù)的創(chuàng)建過(guò)程(即調(diào)用SetSite方法獲取到HostUrl后)會(huì)被截?cái)嘁则?yàn)證HostUrl的合法性,以此為憑據(jù)來(lái)決定創(chuàng)建過(guò)程是否中止,或者決定宿主容器是否可以使用控件接口提供的功能。以此來(lái)阻止惡意腳本對(duì)控件接口的非法調(diào)用,從而避免ActiveX控件被非法篡改用途。另外,通過(guò)將網(wǎng)頁(yè)地址發(fā)送給驗(yàn)證服務(wù)器來(lái)進(jìn)行驗(yàn)證,可以只在服務(wù)器端維護(hù)可信列表,并可以及時(shí)的維護(hù)更新,從而使驗(yàn)證結(jié)果更為及時(shí)準(zhǔn)確。進(jìn)一步地,這也突破了傳統(tǒng)方法中可信列表編譯在控件內(nèi)部,當(dāng)可信列表變化時(shí)必須重新發(fā)布插件的限制,也就省去了用戶端瀏覽器在可信站點(diǎn)變化時(shí)必須重新升級(jí)插件的步驟。進(jìn)一步地,使用https進(jìn)行ActiveX控件與驗(yàn)證服務(wù)器的通信,保證了驗(yàn)證過(guò)程的保密性和完整性。本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。對(duì)于系統(tǒng)實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上對(duì)本申請(qǐng)所提供的防止篡改ActiveX控件用途的方法及系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制 。
權(quán)利要求
1.一種防止篡改ActiveX控件用途的方法,其特征在于,包括以下步驟 ActiveX控件將接口的預(yù)置結(jié)果返回給宿主容器; ActiveX控件獲取宿主容器的當(dāng)前頁(yè)面地址; ActiveX控件將獲取的當(dāng)前頁(yè)面地址向驗(yàn)證服務(wù)器發(fā)送驗(yàn)證請(qǐng)求; 驗(yàn)證服務(wù)器驗(yàn)證當(dāng)前頁(yè)面是否可信,并將結(jié)果返回給ActiveX控件; ActiveX控件根據(jù)返回結(jié)果確定是否允許自己被當(dāng)前頁(yè)面繼續(xù)使用,若當(dāng)前頁(yè)面可信,則允許當(dāng)前頁(yè)面繼續(xù)使用,反之,則不允許被當(dāng)前頁(yè)面繼續(xù)使用。
2.如權(quán)利要求1所述的防止篡改ActiveX控件用途的方法,其特征在于,所述ActiveX控件不允許被當(dāng)前頁(yè)面繼續(xù)使用包括 ActiveX控件中斷宿主容器創(chuàng)建ActiveX對(duì)象的操作;或 ActiveX控件拒絕當(dāng)前頁(yè)面訪問(wèn)ActiveX控件提供的接口。
3.如權(quán)利要求2所述的防止篡改ActiveX控件用途的方法,其特征在于,所述ActiveX控件根據(jù)返回結(jié)果確定是否允許自己被當(dāng)前頁(yè)面繼續(xù)使用包括 ActiveX控件通過(guò)接口方法的返回值控制ActiveX對(duì)象的創(chuàng)建過(guò)程;若當(dāng)前頁(yè)面可信,則接口方法返回預(yù)設(shè)的正確代碼,允許ActiveX對(duì)象完成創(chuàng)建;若當(dāng)前頁(yè)面不可信,則接口方法返回預(yù)設(shè)的錯(cuò)誤代碼,宿主容器根據(jù)接收到的接口方法返回值中斷創(chuàng)建ActiveX對(duì)象。
4.如權(quán)利要求2所述的防止篡改ActiveX控件用途的方法,其特征在于,所述ActiveX控件根據(jù)返回結(jié)果確定是否允許自己被當(dāng)前頁(yè)面繼續(xù)使用包括 ActiveX控件將結(jié)果存儲(chǔ)在ActiveX控件內(nèi)部的成員變量中;在ActiveX的所有接口實(shí)現(xiàn)中首先檢查該成員變量,若當(dāng)前頁(yè)面不可信,則ActiveX控件提供的接口拒絕當(dāng)前頁(yè)面腳本對(duì)接口的調(diào)用。
5.如權(quán)利要求1所述的防止篡改ActiveX控件用途的方法,其特征在于,所述ActiveX控件獲取宿主容器發(fā)送的當(dāng)前頁(yè)面地址包括 宿主容器調(diào)用ActiveX控件的IObjectWithSite接口的SetSite方法將容器指針傳遞給ActiveX控件; ActiveX控件根據(jù)獲取的容器指針取得當(dāng)前頁(yè)面的地址HostUrl。
6.如權(quán)利要求1所述的防止篡改ActiveX控件用途的方法,其特征在于,所述ActiveX控件通過(guò)https向驗(yàn)證服務(wù)器發(fā)送驗(yàn)證請(qǐng)求。
7.如權(quán)利要求1所述的防止篡改ActiveX控件用途的方法,其特征在于,所述驗(yàn)證服務(wù)器驗(yàn)證當(dāng)前頁(yè)面是否可信包括 驗(yàn)證服務(wù)器將獲取的當(dāng)前頁(yè)面地址根據(jù)一定的邏輯與預(yù)先存儲(chǔ)的可信列表中的地址進(jìn)行查找,若包含在可信列表中,則認(rèn)為當(dāng)前頁(yè)面是可信的,反之,則認(rèn)為當(dāng)前頁(yè)面是不可信的,所述查找邏輯包括域匹配、站點(diǎn)匹配、地址參數(shù)匹配、整個(gè)頁(yè)面地址匹配。
8.如權(quán)利要求7所述的防止篡改ActiveX控件用途的方法,其特征在于,所述方法還包括 自動(dòng)或人工更新所述驗(yàn)證服務(wù)器中預(yù)先存儲(chǔ)的可信列表。
9.一種防止篡改ActiveX控件用途的系統(tǒng),其特征在于,包括 ActiveX控件,用于將接口的預(yù)置結(jié)果返回給宿主容器,從而獲取當(dāng)前頁(yè)面地址,并將當(dāng)前頁(yè)面地址傳送給驗(yàn)證服務(wù)器; 驗(yàn)證服務(wù)器,用于驗(yàn)證ActiveX控件傳送的宿主容器的當(dāng)前頁(yè)面地址,并將結(jié)果返回給ActiveX控件; 所述ActiveX控件根據(jù)驗(yàn)證服務(wù)器的結(jié)果確定是否允許自己被當(dāng)前頁(yè)面繼續(xù)使用,若當(dāng)前頁(yè)面可信,則允許被當(dāng)前頁(yè)面繼續(xù)使用,反之,則不允許被當(dāng)前頁(yè)面繼續(xù)使用。
10.如權(quán)利要求9所述的防止篡改ActiveX控件用途的系統(tǒng),其特征在于,所述ActiveX控件包括 操作確定模塊,用于確定是否中斷宿主容器創(chuàng)建ActiveX對(duì)象的操作;或 訪問(wèn)確定模塊,用于確定是否允許當(dāng)前頁(yè)面訪問(wèn)ActiveX控件提供的接口。
11.如權(quán)利要求9所述的防止篡改ActiveX控件用途的系統(tǒng),其特征在于,所述ActiveX控件包括 驗(yàn)證模塊,用于根據(jù)宿主容器傳送的容器指針取得當(dāng)前頁(yè)面的地址HostUrl。
12.如權(quán)利要求11所述的防止篡改ActiveX控件用途的系統(tǒng),其特征在于,所述驗(yàn)證模塊包括 發(fā)送單元,用于通過(guò)https向驗(yàn)證服務(wù)器發(fā)送驗(yàn)證請(qǐng)求。
13.如權(quán)利要求9所述的防止篡改ActiveX控件用途的系統(tǒng),其特征在于,所述系統(tǒng)還包括 列表管理器,用于維護(hù)更新驗(yàn)證服務(wù)器中存儲(chǔ)的可信列表,可信列表的記錄形式可以是以下所列中的一種或多種域名、站點(diǎn)、頁(yè)面地址、頁(yè)面地址的中參數(shù)、匹配模式。
全文摘要
本申請(qǐng)?zhí)峁┝艘环N防止篡改ActiveX控件用途的方法,包括以下步驟ActiveX控件將接口的預(yù)置結(jié)果返回給宿主容器;ActiveX控件獲取宿主容器的當(dāng)前頁(yè)面地址;ActiveX控件將獲取的當(dāng)前頁(yè)面地址向驗(yàn)證服務(wù)器發(fā)送驗(yàn)證請(qǐng)求;驗(yàn)證服務(wù)器驗(yàn)證當(dāng)前頁(yè)面是否可信,并將結(jié)果返回給ActiveX控件;ActiveX控件根據(jù)返回結(jié)果確定是否允許自己被當(dāng)前頁(yè)面繼續(xù)使用,若當(dāng)前頁(yè)面可信,則允許當(dāng)前頁(yè)面繼續(xù)使用,反之,則不允許被當(dāng)前頁(yè)面繼續(xù)使用。本申請(qǐng)還提供了一種實(shí)現(xiàn)前述方法的防止篡改ActiveX控件用途的系統(tǒng)。本申請(qǐng)的防止篡改ActiveX控件用途的方法及系統(tǒng),能夠識(shí)別惡意網(wǎng)頁(yè),解決ActiveX控件因?yàn)楸粣阂獯鄹挠猛径o用戶計(jì)算機(jī)帶來(lái)安全威脅的問(wèn)題。
文檔編號(hào)H04L29/06GK103067343SQ201110323998
公開(kāi)日2013年4月24日 申請(qǐng)日期2011年10月21日 優(yōu)先權(quán)日2011年10月21日
發(fā)明者邱武松 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司