欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

動(dòng)態(tài)內(nèi)容中的跨站點(diǎn)腳本阻止的制作方法

文檔序號:6434572閱讀:279來源:國知局
專利名稱:動(dòng)態(tài)內(nèi)容中的跨站點(diǎn)腳本阻止的制作方法
動(dòng)態(tài)內(nèi)容中的跨站點(diǎn)腳本阻止
背景技術(shù)
傳統(tǒng)上,跨站點(diǎn)腳本是互聯(lián)網(wǎng)可訪問內(nèi)容內(nèi)發(fā)現(xiàn)的安全漏洞。第三方可以利用跨站點(diǎn)腳本漏洞獲取個(gè)人數(shù)據(jù)或者誘騙末端用戶執(zhí)行惡意動(dòng)作。例如,可以利用跨站點(diǎn)腳本漏洞竊取末端用戶的互聯(lián)網(wǎng)資料(cookie),這可能允許第三方訪問與互聯(lián)網(wǎng)資料相關(guān)聯(lián)的末端用戶賬戶。類似地,跨站點(diǎn)腳本漏洞可能允許第三方誘騙末端用戶訪問或傳播惡意軟件。先前,通過清潔可能含有可以傳送給末端用戶的編碼內(nèi)容的內(nèi)容部分地阻止了跨站點(diǎn)腳本。不幸地,清潔過程只提供對于已知存在或已知潛在存在的這些漏洞的緩解。如果第三方在編碼互聯(lián)網(wǎng)內(nèi)容之前識別新漏洞以及利用該漏洞,則末端用戶可能淪為跨站點(diǎn)腳本攻擊的受害者。

發(fā)明內(nèi)容
本發(fā)明的實(shí)施例涉及用于識別用戶請求的內(nèi)容內(nèi)的腳本項(xiàng)的計(jì)算機(jī)存儲介質(zhì)、方法、以及系統(tǒng)??梢詧?zhí)行腳本項(xiàng)的識別以對腳本項(xiàng)應(yīng)用唯一標(biāo)識和/或以確定與腳本項(xiàng)相關(guān)聯(lián)的唯一標(biāo)識是否適當(dāng)。可以使用標(biāo)識識別內(nèi)容內(nèi)的授權(quán)腳本元素以及與未授權(quán)腳本元素區(qū)分。本發(fā)明的實(shí)施例構(gòu)思了至少部分地根據(jù)腳本元素的元素內(nèi)容的哈希函數(shù)確定的標(biāo)識。當(dāng)確定標(biāo)識適當(dāng)時(shí),可以把腳本項(xiàng)傳送給用戶。然而,當(dāng)確定標(biāo)識并不適當(dāng)時(shí),可以阻止把腳本項(xiàng)傳送給用戶。提供此發(fā)明內(nèi)容以介紹下面在具體實(shí)施方式
中進(jìn)一步描述的簡化形式的概念的選擇。此發(fā)明內(nèi)容并非意在識別要求保護(hù)主題的必要特征或關(guān)鍵特征,它也并非意在用作協(xié)助確定要求保護(hù)主題的范圍。


下面參照經(jīng)引用并入本文的附圖詳細(xì)描述本發(fā)明的示例性實(shí)施例,在附圖中 圖1描繪了適合實(shí)施本發(fā)明實(shí)施例的示范性運(yùn)算設(shè)備;
圖2描繪了示例了可以采用本發(fā)明實(shí)施例的示范性系統(tǒng)的方框圖; 圖3描繪了按照本發(fā)明實(shí)施例的、用于在內(nèi)容傳遞系統(tǒng)中抑制跨站點(diǎn)腳本的示范性方法的流程圖4描繪了按照本發(fā)明實(shí)施例的、用于在內(nèi)容傳遞系統(tǒng)中采用哈希函數(shù)確定腳本項(xiàng)不正確的方法的流程圖;以及
圖5描繪了按照本發(fā)明實(shí)施例的、用于阻止跨站點(diǎn)腳本攻擊的方法的流程圖。
具體實(shí)施例方式在本文中以具體性描述本發(fā)明實(shí)施例的主題以符合法定需求。然而,描述本身并非意在限制本專利的范圍。而是,發(fā)明人構(gòu)思了也可以通過其它方式實(shí)施要求保護(hù)的主題, 以結(jié)合其它目前或未來技術(shù),包括與本文件中描述的步驟類似的步驟的組合或不同步驟。
本發(fā)明的實(shí)施例涉及用于識別用戶請求的內(nèi)容內(nèi)的腳本項(xiàng)的計(jì)算機(jī)存儲介質(zhì)、方法、以及系統(tǒng)??梢詧?zhí)行腳本項(xiàng)的識別以對腳本項(xiàng)應(yīng)用唯一標(biāo)識和/或以確定與腳本項(xiàng)相關(guān)聯(lián)的唯一標(biāo)識是否適當(dāng)??梢允褂脴?biāo)識識別內(nèi)容內(nèi)的授權(quán)腳本元素以及與未授權(quán)腳本元素區(qū)分。本發(fā)明的實(shí)施例構(gòu)思了至少部分地根據(jù)腳本元素的元素內(nèi)容的哈希函數(shù)確定的標(biāo)識。當(dāng)確定標(biāo)識適當(dāng)時(shí),可以把腳本項(xiàng)傳送給用戶。然而,當(dāng)確定標(biāo)識并不適當(dāng)時(shí),可以阻止把腳本項(xiàng)傳送給用戶。相應(yīng)地,在一個(gè)方面中,本發(fā)明提供了采用處理器和存儲器的運(yùn)算環(huán)境中的方法, 用于在內(nèi)容傳遞系統(tǒng)中抑制跨站點(diǎn)腳本。方法包括識別用戶請求的內(nèi)容內(nèi)的腳本項(xiàng)。方法還包括確定腳本項(xiàng)包括標(biāo)識。能夠使用標(biāo)識識別內(nèi)容內(nèi)的未授權(quán)腳本元素。方法還包括確定標(biāo)識是否是適當(dāng)標(biāo)識。當(dāng)確定標(biāo)識適當(dāng)時(shí),把腳本項(xiàng)傳送給用戶。進(jìn)一步地,當(dāng)確定標(biāo)識并不適當(dāng)時(shí),可以阻止把腳本項(xiàng)傳送給用戶。在另一方面中,本發(fā)明提供了計(jì)算機(jī)存儲介質(zhì),具有其上實(shí)施的計(jì)算機(jī)可執(zhí)行指令,當(dāng)通過具有處理器和存儲器的運(yùn)算系統(tǒng)執(zhí)行該計(jì)算機(jī)可執(zhí)行指令時(shí),使得運(yùn)算系統(tǒng)執(zhí)行方法。方法包括從用戶接收內(nèi)容的請求。方法還包括確定內(nèi)容腳本項(xiàng)的第一哈希值。第一哈希值基于哈希函數(shù)和腳本項(xiàng)。方法還包括把第一哈希值應(yīng)用于腳本項(xiàng)。進(jìn)一步地,方法包括確定腳本項(xiàng)的第二哈希值??梢栽诰o接把腳本項(xiàng)傳送給用戶以前確定第二哈希值。 第二哈希值基于哈希函數(shù)和腳本項(xiàng)。方法還包括基于第一哈希值和第二哈希值確定腳本項(xiàng)并不正確。例如,第一哈希值和第二哈希值可能缺少指定的彼此關(guān)系。本發(fā)明的第三方面提供了方法。方法包括從用戶接收對標(biāo)記語言內(nèi)容的標(biāo)記語言請求,通過與運(yùn)算系統(tǒng)相關(guān)聯(lián)的服務(wù)器提供標(biāo)記語言內(nèi)容。響應(yīng)于接收標(biāo)記語言請求,方法包括生成唯一標(biāo)識。額外地,方法包括在標(biāo)記語言內(nèi)容內(nèi)識別第一腳本項(xiàng)。方法還包括把唯一標(biāo)識關(guān)聯(lián)到第一腳本項(xiàng)。在把內(nèi)容傳送給用戶以前,方法包括識別要向用戶傳送的一個(gè)或更多個(gè)腳本項(xiàng),其中,一個(gè)或更多個(gè)腳本項(xiàng)包括第一腳本項(xiàng)。進(jìn)一步地,方法包括確定一個(gè)或更多個(gè)腳本項(xiàng)的第二腳本項(xiàng)未與唯一標(biāo)識相關(guān)聯(lián)。另外,方法包括阻止第二腳本項(xiàng)向用戶的傳送。額外地,方法包括在把第一標(biāo)識傳送給用戶以前去除第一腳本項(xiàng)與唯一標(biāo)識之間的關(guān)聯(lián)。方法還包括把第一腳本項(xiàng)傳送給用戶。簡要描述了本發(fā)明實(shí)施例的概況,下面描述用于實(shí)施其實(shí)施例的示范性操作環(huán)
^Mi O總體上參照附圖、以及特別地初始參照圖1,示出了的適合實(shí)施本發(fā)明實(shí)施例的示范性操作環(huán)境,總體上指示為運(yùn)算設(shè)備100。運(yùn)算設(shè)備100只是合適運(yùn)算環(huán)境的一個(gè)實(shí)例, 并非意在建議對于本發(fā)明功能性或使用范圍的任何限制。也不應(yīng)當(dāng)把運(yùn)算設(shè)備100解釋成具有與示例的模塊/組件中的任何一個(gè)或組合有關(guān)的任何依賴性或要求。可以在包括計(jì)算機(jī)或其它機(jī)器(如,個(gè)人數(shù)據(jù)助理或其它手持設(shè)備)執(zhí)行的諸如程序模塊的計(jì)算機(jī)可執(zhí)行指令在內(nèi)的機(jī)器可用指令或計(jì)算機(jī)代碼的總體上下文描述實(shí)施例。 通常,包括例程、程序、對象、模塊、數(shù)據(jù)結(jié)構(gòu)等的程序模塊是指執(zhí)行特定任務(wù)或者實(shí)施特定抽象數(shù)據(jù)類型的代碼??梢栽诎ㄊ殖衷O(shè)備、消費(fèi)類電子產(chǎn)品、通用計(jì)算機(jī)、專業(yè)運(yùn)算設(shè)備、 分布式運(yùn)算環(huán)境、服務(wù)器、客戶端側(cè)計(jì)算機(jī)等的各種系統(tǒng)配置中實(shí)踐實(shí)施例。也可以在通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)的分布式運(yùn)算環(huán)境中如先前所提到的實(shí)踐實(shí)施例。繼續(xù)參照圖1,運(yùn)算設(shè)備100包括直接或間接耦合以下設(shè)備的總線110 存儲器112、一個(gè)或更多個(gè)處理器114、一個(gè)或更多個(gè)呈現(xiàn)模塊116、輸入/輸出(I/O)端口 118、I/ 0模塊120、以及示例性電源122??偩€110代表可以是一個(gè)或更多個(gè)總線(如,地址總線、 數(shù)據(jù)總線、或者其組合)的內(nèi)容。雖然為了清楚起見用線示出了圖1的各種框,但現(xiàn)實(shí)中,勾畫各種模塊并非如此清楚,比方說,線將會更準(zhǔn)確地是灰色和模糊的。例如,可以認(rèn)為諸如顯示設(shè)備的呈現(xiàn)模塊是I/O模塊。另外,處理器具有存儲器。本發(fā)明人在此認(rèn)識到了這種是本領(lǐng)域的本質(zhì),重申圖1的圖僅示例可以結(jié)合一個(gè)或更多個(gè)實(shí)施例使用的示范性運(yùn)算設(shè)備。在諸如“工作站”、“服務(wù)器”、“膝上型電腦”、“手持設(shè)備”等之間不做區(qū)別,因?yàn)樗鼈內(nèi)吭趫D1的范圍內(nèi)構(gòu)思到并表示為“計(jì)算機(jī)”或“運(yùn)算設(shè)備”。運(yùn)算設(shè)備100典型地包括各種計(jì)算機(jī)可讀介質(zhì)。通過實(shí)例而非限制的方式,計(jì)算機(jī)可讀介質(zhì)可以包括隨機(jī)存取存儲器(RAM);只讀存儲器(ROM);電可擦除可編程只讀存儲器(EEPROM) ‘閃存或其它存儲器技術(shù);⑶ROM、數(shù)字多動(dòng)能盤(DVD)或者其它光學(xué)或全息介質(zhì);磁盒、磁帶、磁盤存儲或其它磁存儲設(shè)備、或者可以用來編碼期望的信息以及可以通過運(yùn)算設(shè)備100訪問的任何其它非臨時(shí)性介質(zhì)。存儲器112包括易失性和/或非易失性存儲器形式的計(jì)算機(jī)存儲介質(zhì)。存儲器可以可移除、不可移除、或者其組合。示范性硬件設(shè)備包括固態(tài)存儲器、硬盤驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器等。運(yùn)算設(shè)備100包括從諸如存儲器112或I/O模塊120的各種實(shí)體讀取數(shù)據(jù)的一個(gè)或更多個(gè)處理器。呈現(xiàn)模塊116向用戶或其它設(shè)備呈現(xiàn)數(shù)據(jù)指示。示范性呈現(xiàn)模塊包括顯示設(shè)備、揚(yáng)聲器、打印模塊、振動(dòng)模塊等。I/O端口 118允許運(yùn)算設(shè)備100在邏輯上耦合到包括其中的一些可以內(nèi)置的I/O模塊120的其它設(shè)備。示例性模塊包括麥克風(fēng)、操縱桿、游戲手柄、碟形衛(wèi)星天線、掃描儀、打印機(jī)、無線設(shè)備等。參照圖2,提供了示出了可以采用本發(fā)明實(shí)施例的示范性系統(tǒng)200的方框圖。應(yīng)當(dāng)理解只作為實(shí)例敘述本文中描述的這個(gè)和其它布置。除了示出的這些,可以另外或替代地使用其它布置和元素(例如,機(jī)器、角色、服務(wù)、過程、接口、功能、次序、以及功能的分組等), 可以一起略去一些元素。進(jìn)一步地本文中描述的元素中的許多元素是可以作為離散或分布式組件或者結(jié)合其它組件、以及在任何合適組合和地點(diǎn)中實(shí)施的功能實(shí)體。可以通過硬件、 固件、和/或軟件執(zhí)行本文中描述為由一個(gè)或更多個(gè)實(shí)體執(zhí)行的各種功能。例如,可以通過處理器執(zhí)行存儲器中存儲的指令執(zhí)行各種功能。在未示出的其它組件之中,系統(tǒng)200可以包括用戶運(yùn)算設(shè)備202、注入運(yùn)算設(shè)備 203、以及服務(wù)器206。圖2中示出的組件中的每個(gè)組件可以是任何類型的運(yùn)算設(shè)備,如,例如參照圖1描述的運(yùn)算設(shè)備100。組件可以經(jīng)由可以非限制性地包括一個(gè)或更多個(gè)局域網(wǎng) (LAN)和/或廣域網(wǎng)(WAN)的網(wǎng)絡(luò)204彼此通信。這種組網(wǎng)環(huán)境在辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)部網(wǎng)、以及互聯(lián)網(wǎng)中是司空見慣的。應(yīng)當(dāng)理解可以在仍然在本發(fā)明范圍內(nèi)的情況下在系統(tǒng)200內(nèi)采用任何數(shù)量的用戶運(yùn)算設(shè)備、注入運(yùn)算設(shè)備、服務(wù)器、以及網(wǎng)絡(luò)。額外地,系統(tǒng)200內(nèi)還可以包括未示出的其它組件。相應(yīng)地,可以采用任何數(shù)量的組件/設(shè)備取得本發(fā)明實(shí)施例范圍內(nèi)的期望功能性。雖然為了清楚起見用線示出了圖2的各種組件,但現(xiàn)實(shí)中,勾畫各種組件并非如此清楚,比方說,線將會更準(zhǔn)確地是灰色或模糊的。進(jìn)一步地,雖然把圖2的一些組件描繪成單個(gè)框,但描繪在本質(zhì)上和數(shù)量上是示范性的,而不應(yīng)該解釋成限制性的。用戶運(yùn)算設(shè)備202是用戶可用的運(yùn)算設(shè)備。例如,用戶運(yùn)算設(shè)備202可以是能夠訪問網(wǎng)絡(luò)204的任何類型的個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板電腦、移動(dòng)設(shè)備等。類似地,注入運(yùn)算設(shè)備203是用戶或另一機(jī)器可用的運(yùn)算設(shè)備。例如,注入運(yùn)算設(shè)備203可以是能夠訪問網(wǎng)絡(luò)204的任何類型的個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板電腦、移動(dòng)
設(shè)備等。如將會在下文中更詳細(xì)討論的,服務(wù)器206是能夠通過網(wǎng)絡(luò)204向用戶運(yùn)算設(shè)備 202提供內(nèi)容的運(yùn)算設(shè)備。應(yīng)當(dāng)理解,雖然在本文中總體上把服務(wù)器206描述成具有離散屬性和組件的有形設(shè)備,但服務(wù)器206可以相反是分布在網(wǎng)絡(luò)204 (或類似網(wǎng)絡(luò))上的具有多個(gè)處理器、存儲器設(shè)備、以及其它軟件、固件、以及組件的分布式運(yùn)算系統(tǒng)。因此,服務(wù)器 206可以包括用以執(zhí)行本文中描述的功能的一個(gè)或更多個(gè)服務(wù)器(S卩,運(yùn)算設(shè)備)??梢越M合或單獨(dú)使用用戶運(yùn)算設(shè)備202、注入運(yùn)算設(shè)備203、網(wǎng)絡(luò)204、以及服務(wù)器 206,使得跨站點(diǎn)腳本攻擊出現(xiàn)以及以便減輕同樣的攻擊。通常把跨站點(diǎn)腳本攻擊表征為非持續(xù)性攻擊或者替代地表征為持續(xù)性攻擊。傳統(tǒng)上,跨站點(diǎn)腳本攻擊利用允許攻擊者繞過運(yùn)算設(shè)備和/或軟件在網(wǎng)絡(luò)內(nèi)容上通常施加的客戶端側(cè)安全機(jī)制的漏洞。惡意腳本向網(wǎng)頁中的注入允許攻擊者可以獲得對代表用戶維護(hù)的敏感頁面內(nèi)容、會話資料和其它信息的提升訪問權(quán)限。在服務(wù)器側(cè)腳本立即使用可以作為HTTP查詢參數(shù)或HTML形式提交的網(wǎng)絡(luò)客戶端提供的數(shù)據(jù)對于該用戶生成結(jié)果的頁面,而不首先清潔響應(yīng)時(shí),出現(xiàn)非持續(xù)性(也稱作反映性)跨站點(diǎn)腳本漏洞。因?yàn)镠TML文檔典型地是把控制語句、格式化、以及實(shí)際內(nèi)容合并到公共文檔中的串行結(jié)構(gòu),所以沒有正確HTML編碼的情況下所得頁面中包括的任何非驗(yàn)證用戶提供的數(shù)據(jù)可能導(dǎo)致跨站點(diǎn)腳本注入。非持續(xù)性跨站點(diǎn)腳本漏洞的經(jīng)典實(shí)例包括搜索者搜索字符串的搜索引擎站點(diǎn),典型地將會在結(jié)果頁面上逐字重新顯示搜索字符串以表明原始搜索查詢。如果搜索查詢是跨站點(diǎn)腳本攻擊以及搜索引擎響應(yīng)未正確地規(guī)避或拒絕HTML 控制字符,則跨站點(diǎn)腳本缺陷可能隨著在搜索結(jié)果的呈現(xiàn)而出現(xiàn)。雖然用戶典型地不會故意把他們自身暴露于跨站點(diǎn)腳本差錯(cuò),但第三方可以在用戶訪問的頁面內(nèi)提供欺騙鏈接或隱藏框以使得用戶的瀏覽器自動(dòng)導(dǎo)航到薄弱站點(diǎn)上的URL。非持續(xù)性跨站點(diǎn)腳本攻擊場景可能如下面這樣出現(xiàn)。Alice采用用戶運(yùn)算設(shè)備 202訪問Bob在服務(wù)器206上主管的特定因特網(wǎng)站點(diǎn)。Bob的網(wǎng)站允許Alice通過用戶名和密碼登錄。Bob的網(wǎng)站隨后存儲諸如Alice的金融賬戶信息的信息。Mallory注意到Bob 的網(wǎng)站含有反映性(非持續(xù)性)跨站點(diǎn)腳本漏洞。Mallory生成用以利用Bob的網(wǎng)站中漏洞的統(tǒng)一資源定位符(URL)。Mallory采用注入運(yùn)算設(shè)備203向Alice發(fā)送包括URL的電子郵件(或其它通信)。URL將會指向Bob的網(wǎng)站,但是將會含有Bob的網(wǎng)站將會反映的Mallory 的惡意代碼。Alice將會在登錄到Bob的網(wǎng)站的時(shí)候訪問Mallory提供的URL。對于Alice 不幸的是,URL中嵌入的惡意腳本如同腳本直接來自Bob的網(wǎng)站一樣(這是跨站點(diǎn)腳本漏洞)在Alice的瀏覽器中執(zhí)行。隨后可以使用該腳本把Alice的會話資料發(fā)送給Mallory。 Mallory可以隨后使用會話資料在沒有Alice的知識的情況下竊取Bob的網(wǎng)站處維護(hù)的 Alice的敏感信息(例如,認(rèn)證證書、計(jì)費(fèi)信息等)。在攻擊者提供的數(shù)據(jù)通過服務(wù)器保存以及隨后在瀏覽的正規(guī)過程中向其它用戶提供的“正?!表撁嫔巷@示時(shí)出現(xiàn)稱作持續(xù)性(或存儲性)的第二個(gè)類型跨站點(diǎn)腳本漏洞。 持續(xù)性漏洞的經(jīng)典實(shí)例包括允許用戶張貼HTML格式化消息以便其它用戶閱讀的在線留言板。在HTML格式化帖子包括用戶的瀏覽器能夠執(zhí)行的腳本時(shí)出現(xiàn)漏洞。雖然在一些實(shí)例中這可以通過正確HTML規(guī)避以阻止執(zhí)行腳本(或者組織瀏覽器將腳本辨識成腳本而非僅文本)來避免,但不是所有具有持續(xù)性跨站點(diǎn)腳本漏洞的站點(diǎn)都可以實(shí)施正確HTML規(guī)避。持續(xù)性攻擊可能如以下實(shí)例中所討論的出現(xiàn)。再次采用注入運(yùn)算設(shè)備203的 Mallory向服務(wù)器206主管的社交網(wǎng)絡(luò)張貼具有惡意載荷的消息。再次采用用戶運(yùn)算設(shè)備 202的Alice閱讀由服務(wù)器206服務(wù)并由Mallory張貼的消息。在閱讀Mallory張貼的消息后,Alice的瀏覽器執(zhí)行看上去是由服務(wù)器206主管的社交網(wǎng)絡(luò)站點(diǎn)提供的惡意腳本。惡意腳本是竊取社交網(wǎng)絡(luò)的Alice資料的跨站點(diǎn)腳本攻擊。因此,Mallory可以訪問和采用 Alice的會話在社交網(wǎng)絡(luò)站點(diǎn)上假扮Alice。額外地,構(gòu)思了系統(tǒng)200適合用于阻止用戶請求的內(nèi)容內(nèi)注入的任何外來惡意內(nèi)容的分發(fā)。例如,可以采用本文中討論的采用系統(tǒng)200的一個(gè)或更多個(gè)組件的技術(shù)阻止注入內(nèi)容與中間人(“MintM”)的通信。例如,MintM攻擊可能涉及第三方(例如,注入運(yùn)算設(shè)備 203)攔截第一方(例如,用戶運(yùn)算設(shè)備202)與第二方(例如,服務(wù)器206)之間通信。第三方可以監(jiān)測和/或修改從第二方(或第一方)向其它目的方傳送的內(nèi)容。作為結(jié)果,第三方可以利用此漏洞插入一個(gè)或更多個(gè)未授權(quán)對象(例如,腳本項(xiàng))。在示范性實(shí)施例中,構(gòu)思了可以采用本文中討論的實(shí)施例阻止總體上說是未授權(quán)對象的傳播,具體地說是阻止MintM攻擊。其它攻擊場景構(gòu)思成通過本文中討論的技術(shù)壓制。參照圖2,服務(wù)器206包括處理器208、存儲器210、腳本辨識組件212、標(biāo)識生成組件214、標(biāo)識評估組件216、腳本告警組件218、查找表組件220、腳本阻止組件222、以及通信組件224。要理解可以在仍然在本發(fā)明范圍內(nèi)的情況下通過服務(wù)器206實(shí)施額外組件或較少組件。進(jìn)一步地,構(gòu)思了通過硬件、軟件、固件、或者組合實(shí)施服務(wù)器206的組件。額外地,構(gòu)思了可以通過來自服務(wù)器206 —個(gè)或更多個(gè)其它組件的獨(dú)立資源實(shí)施服務(wù)器206的組件中的一個(gè)或更多個(gè)組件。此外,構(gòu)思了服務(wù)器206的組件中的一個(gè)或更多個(gè)組件至少部分地采用處理器208和/或存儲器210執(zhí)行本文中討論的一個(gè)或更多個(gè)功能性。腳本辨識組件212識別用戶請求的內(nèi)容內(nèi)的腳本項(xiàng)。腳本項(xiàng)是可以使得運(yùn)算設(shè)備執(zhí)行動(dòng)作的計(jì)算機(jī)可讀代碼。腳本項(xiàng)的實(shí)例包括但不限于可執(zhí)行腳本、事件句柄、對象標(biāo)簽、HTML代碼等。腳本項(xiàng)既被有意地包括在內(nèi)容內(nèi),也被惡意地包括在要向用戶傳送的內(nèi)容內(nèi)。在一個(gè)方面中,腳本辨識組件212識別(例如,辨識)請求的內(nèi)容內(nèi)一個(gè)或更多個(gè)特定類型的腳本項(xiàng)。例如,腳本辨識組件212可以識別用戶請求的內(nèi)容內(nèi)的所有事件句柄、或者所有對象標(biāo)簽、或者甚至某個(gè)(或所有)HTML代碼、或者任何組合。類似地,構(gòu)思了腳本辨識組件212能夠識別有意地包括的腳本項(xiàng)或者也識別惡意地(例如,不適當(dāng)?shù)?包括的腳本項(xiàng)。腳本辨識組件212可以采用把已知要使用或者預(yù)期要使用的已知字符組合與腳本項(xiàng)匹配的技術(shù)識別腳本項(xiàng)。腳本辨識組件212的額外方面可以基于與用戶請求的內(nèi)容內(nèi)要識別的腳本項(xiàng)相關(guān)聯(lián)的已知語法或預(yù)期語法工作。又進(jìn)一步地,構(gòu)思了腳本辨識組件212 可以作為處理可以向用戶傳送的內(nèi)容的虛擬或?qū)嶋H瀏覽器型引擎操作。其中,腳本辨識組件212內(nèi)的處理暴露一個(gè)或更多個(gè)腳本項(xiàng)。在本文中構(gòu)思了識別腳本項(xiàng)的其它方法。標(biāo)識生成組件214生成要與腳本項(xiàng)和/或請求一起使用的標(biāo)識。標(biāo)識可以是可以識別或報(bào)告特定腳本項(xiàng)、請求、一系列腳本項(xiàng)等的唯一字符或字符組合。例如,構(gòu)思了對于來自用戶的接收的內(nèi)容請求生成標(biāo)識??梢噪S后把標(biāo)識與到來的請求相關(guān)聯(lián)以唯一地識別請求和要響應(yīng)于請求提供的任何內(nèi)容。因此,用于唯一地識別到來請求的先前生成的標(biāo)識可以一直維持來唯一地識別想要響應(yīng)于請求傳送的內(nèi)容,如,腳本項(xiàng)。額外地,構(gòu)思了可以對于相關(guān)聯(lián)的信息(例如,作為整體或特定部分的內(nèi)容)生成作為對內(nèi)容或者內(nèi)容的一部分 (例如,腳本項(xiàng))唯一的哈希值的標(biāo)識。將會在下文中針對圖4更詳細(xì)地討論采用哈希值。進(jìn)一步地,構(gòu)思了標(biāo)識生成組件214隨機(jī)生成標(biāo)識。標(biāo)識評估組件216評估與請求的內(nèi)容、腳本項(xiàng)、請求等相關(guān)聯(lián)的標(biāo)識。例如,評估可以與腳本項(xiàng)相關(guān)聯(lián)的一個(gè)或更多個(gè)標(biāo)識以確信腳本項(xiàng)是否適當(dāng)。適當(dāng)腳本項(xiàng)(將會在下文中更詳細(xì)討論)是內(nèi)容的提供者想要向請求用戶提供的腳本項(xiàng)。這與典型地由第三方通過惡意或不期望意圖提供的不適當(dāng)腳本內(nèi)容相對??梢允褂貌贿m當(dāng)腳本項(xiàng)來利用跨站點(diǎn)腳本漏洞。標(biāo)識評估組件216可以評估如腳本辨識組件212所辨識的腳本項(xiàng)相關(guān)聯(lián)的標(biāo)識。 標(biāo)識評估組件216執(zhí)行的評估可以包括參考查找表組件220維護(hù)的查找表(在下文中討論)。類似地,標(biāo)識評估組件216可以執(zhí)行通過腳本項(xiàng)所辨識的標(biāo)識與標(biāo)識生成組件214所生成的另一標(biāo)識之間的比較,以確保兩個(gè)比較的標(biāo)識之間的一致性。例如,如果通過腳本項(xiàng)辨識的標(biāo)識是基于函數(shù)的,如,哈希值,則可以生成確認(rèn)哈希值并隨后與辨識的哈希值比較,以確定未被改變或者其他方式操控腳本項(xiàng)。進(jìn)一步地,構(gòu)思了標(biāo)識評估組件216可以僅評估是否甚至與內(nèi)容的一部分存在表示。又進(jìn)一步地,構(gòu)思了標(biāo)識評估組件216與相應(yīng)請求相比較評估辨識的標(biāo)識。腳本告警組件218在識別內(nèi)容的不適當(dāng)或者其他不期望部分時(shí)向一個(gè)或更多個(gè)實(shí)體提供通知。例如,如果確定腳本項(xiàng)利用跨站點(diǎn)腳本漏洞,則腳本告警組件218可以結(jié)合通信組件2M工作以通知服務(wù)器206的管理員或者與漏洞相關(guān)聯(lián)的內(nèi)容的管理員。類似地,構(gòu)思了腳本告警組件218向請求用戶提供關(guān)于請求的內(nèi)容包括可能是不適當(dāng)?shù)哪_本項(xiàng)的通知??梢圆捎猛ㄐ沤M件2M發(fā)送電子通信或者向內(nèi)容中注入或插入通知或者通過用戶運(yùn)算設(shè)備202顯示,來提供通知。例如,構(gòu)思了通知可以是用戶運(yùn)算設(shè)備202上的瀏覽器可讀取的消息,以允許瀏覽器基于要接收的內(nèi)容調(diào)整向用戶提供的保護(hù)。這只是腳本告警組件218可以提供的通知的幾個(gè)實(shí)例。查找表組件220提供含有用于識別適當(dāng)內(nèi)容部分的表的查找表。例如,構(gòu)思了維護(hù)具有哈希值函數(shù)與一個(gè)或更多個(gè)腳本項(xiàng)的哈希值之間的相關(guān)性的表。類似地,構(gòu)思了維護(hù)包括腳本項(xiàng)一個(gè)或更多個(gè)標(biāo)識的表。進(jìn)一步地,查找表組件220可以包括可以向其分配標(biāo)識的期望腳本項(xiàng)的列表。進(jìn)一步地,查找表組件220可以包括用以列出標(biāo)識評估組件216 先前識別成不適當(dāng)?shù)囊粋€(gè)或更多個(gè)腳本項(xiàng)的表,以便一個(gè)或更多個(gè)實(shí)體在試圖識別利用的漏洞時(shí)使用。進(jìn)一步地,查找表組件220可以包括具有標(biāo)識生成組件214可以用來生成標(biāo)識的一個(gè)或更多個(gè)哈希函數(shù)的表。腳本阻止組件222調(diào)整要向用戶傳送的內(nèi)容。例如,腳本阻止組件222可以在腳本項(xiàng)被識別成了不適當(dāng)時(shí)從內(nèi)容中去除該腳本項(xiàng)。在另一方面,腳本阻止組件222可以改變內(nèi)容的一個(gè)或更多個(gè)部分以阻止執(zhí)行被識別成不適當(dāng)?shù)哪_本項(xiàng)。例如,可以操控與腳本項(xiàng)相關(guān)聯(lián)的代碼元素以阻止用戶運(yùn)算設(shè)備202再現(xiàn)或者其他方式執(zhí)行腳本元素。額外地, 這些方面構(gòu)思了腳本阻止組件222在不適當(dāng)項(xiàng)被識別為與內(nèi)容相關(guān)聯(lián)時(shí)阻止請求的內(nèi)容的一個(gè)或更多個(gè)部分的通信。
通信組件2M接收和分發(fā)與內(nèi)容有關(guān)的通信。例如,通信組件2M可以從用戶接收對于通過服務(wù)器206可訪問的內(nèi)容的請求。額外地,通信組件2M可以把請求的內(nèi)容的一個(gè)或更多個(gè)部分從服務(wù)器206傳送給采用用戶運(yùn)算設(shè)備202的用戶。通信組件2M可以結(jié)合腳本阻止組件222工作以阻止內(nèi)容的一個(gè)或更多個(gè)部分的通信。通信組件還可以向用戶、管理員、內(nèi)容提供者等傳送表明識別了不適當(dāng)腳本項(xiàng)或者漏洞可能存在的通知。如先前所討論的,雖然通過具體實(shí)施例描述了服務(wù)器206的各種組件,但要理解服務(wù)器206的組件可以提供額外操作和任務(wù)。進(jìn)一步地,要理解服務(wù)器206的組件可以是離散或單獨(dú)的軟件、固件、和/或硬件。類似地,要理解可以把服務(wù)器206的組件中的一個(gè)或更多個(gè)組件組合作為提供如本文中所討論的一個(gè)或更多個(gè)功能的混合服務(wù)。又進(jìn)一步地,構(gòu)思了在本文中識別成與服務(wù)器206相關(guān)聯(lián)的組件中的一個(gè)或更多個(gè)組件也可以或者替代地位于用戶運(yùn)算設(shè)備202上或者與用戶運(yùn)算設(shè)備202相關(guān)聯(lián)。例如,腳本辨識組件212 和標(biāo)識評估組件216可以駐留在用戶運(yùn)算設(shè)備202上,或者在用戶運(yùn)算設(shè)備202處運(yùn)行。圖3描繪了按照本發(fā)明實(shí)施例的、用于在內(nèi)容傳遞系統(tǒng)中抑制跨站點(diǎn)腳本的示范性方法300的流程圖。內(nèi)容傳遞系統(tǒng)可以包括針對圖2討論的運(yùn)算系統(tǒng)200。內(nèi)容傳遞系統(tǒng)是向請求客戶端提供客戶端請求了的內(nèi)容的環(huán)境或系統(tǒng)。典型地,因特網(wǎng)是內(nèi)容傳遞系統(tǒng)的實(shí)例。但是,在本文中構(gòu)思了其它系統(tǒng)??缯军c(diǎn)腳本攻擊的抑制可以包括阻止被識別成不適當(dāng)?shù)哪_本項(xiàng)的通信。抑制還可以包括改變內(nèi)容以阻止識別的腳本項(xiàng)的執(zhí)行或再現(xiàn)。方法300包括框302。框302代表識別請求的內(nèi)容內(nèi)的腳本項(xiàng)。識別腳本項(xiàng)可以采用先前針對圖2討論的腳本辨識組件212。如先前所討論的,可以通過搜索和識別與腳本項(xiàng)相關(guān)聯(lián)的一個(gè)或更多個(gè)字符或元素識別腳本項(xiàng)。類似地,可以通過再現(xiàn)腳本項(xiàng)的至少一部分以定位將會在客戶端(如,圖2的用戶運(yùn)算設(shè)備202)處本地執(zhí)行的腳本項(xiàng)識別腳本項(xiàng)。進(jìn)一步地,構(gòu)思了隨著收集用戶請求的內(nèi)容以及向集合添加腳本項(xiàng),隨后識別腳本項(xiàng)。在本發(fā)明的一個(gè)方面中,通過圖2的腳本辨識組件212識別與腳本項(xiàng)相關(guān)聯(lián)的標(biāo)識,完成請求的內(nèi)容內(nèi)腳本項(xiàng)的識別。例如,圖2的腳本辨識組件212可以獲知標(biāo)識或者獲知與標(biāo)識相關(guān)聯(lián)的語法以協(xié)助腳本項(xiàng)的識別。在框304,執(zhí)行在框302識別的腳本項(xiàng)包括標(biāo)識的確定。例如,一旦識別腳本項(xiàng),可以執(zhí)行腳本項(xiàng)的評估以確定腳本項(xiàng)是否直接或間接包括標(biāo)識。在包括與腳本項(xiàng)的代碼元素一致的標(biāo)識時(shí),該標(biāo)識可以與腳本項(xiàng)直接相關(guān)聯(lián)。類似地,在標(biāo)識應(yīng)用于腳本項(xiàng)的HTML標(biāo)簽時(shí),該標(biāo)識可以與腳本項(xiàng)直接相關(guān)聯(lián)。在標(biāo)識位于繪出標(biāo)識與腳本項(xiàng)之間關(guān)聯(lián)或相關(guān)性的查找表內(nèi)時(shí),該標(biāo)識可以與腳本項(xiàng)間接相關(guān)聯(lián)。在框306,執(zhí)行腳本項(xiàng)的標(biāo)識是否適當(dāng)?shù)拇_定。如先前所討論的,在腳本項(xiàng)利用因特網(wǎng)可訪問頁面或頁面的集合中的漏洞時(shí),腳本項(xiàng)是不適當(dāng)?shù)?。在?nèi)容的管理員不期望傳播腳本項(xiàng)時(shí),腳本項(xiàng)是不適當(dāng)?shù)?。相反地,在?nèi)容的管理員期望把腳本項(xiàng)分發(fā)給請求用戶時(shí),腳本項(xiàng)可以是適當(dāng)?shù)?。在本文中?gòu)思了曾經(jīng)適當(dāng)?shù)哪_本項(xiàng)可能后來變得不適當(dāng)。例如,如果第三方改變期望由管理員傳送的腳本項(xiàng),則在改變后腳本項(xiàng)的改變版本可能是不適當(dāng)?shù)?。可以使用哈希值幫助識別何時(shí)適當(dāng)腳本項(xiàng)受危害以及因此應(yīng)當(dāng)識別成不適當(dāng)腳本項(xiàng)??梢酝ㄟ^圖2的標(biāo)識評估組件216執(zhí)行腳本項(xiàng)的適當(dāng)性的確定。例如,可以評估與腳本項(xiàng)相關(guān)聯(lián)的標(biāo)識以確定它是否確實(shí)存在,如果它存在,則確定標(biāo)識是否是預(yù)計(jì)的標(biāo)識。 預(yù)計(jì)的標(biāo)識是預(yù)期或者其他方式與腳本項(xiàng)正確相關(guān)聯(lián)的標(biāo)識。如果標(biāo)識作為與基礎(chǔ)請求相關(guān)聯(lián)的標(biāo)識的直接匹配或衍生相關(guān),則標(biāo)識可以是適當(dāng)?shù)?。如果通過查找表組件220維護(hù)的相關(guān)性表驗(yàn)證了標(biāo)識,則標(biāo)識可以是適當(dāng)?shù)?。進(jìn)一步地,當(dāng)可以獨(dú)立確定(例如,計(jì)算)標(biāo)識并且獨(dú)立計(jì)算與識別的標(biāo)識相稱(例如,對應(yīng)于相關(guān)聯(lián)的哈希值標(biāo)識的哈希值重新計(jì)算) 時(shí),標(biāo)識可以是適當(dāng)?shù)?。?dāng)標(biāo)識與另一標(biāo)識(例如,先前確定的標(biāo)識、先前相關(guān)聯(lián)的標(biāo)識、有關(guān)請求的標(biāo)識等)不相稱時(shí)可以認(rèn)定標(biāo)識是不適當(dāng)?shù)?。在?08,當(dāng)確定標(biāo)識并不是適當(dāng)?shù)?即,不適當(dāng))時(shí),阻止把腳本項(xiàng)傳送給用戶。阻止腳本項(xiàng)傳送的實(shí)例包括但不限于在把內(nèi)容傳送給用戶以前從內(nèi)容中移除(例如,去除)腳本項(xiàng)。腳本項(xiàng)傳送的阻止還可以包括改變腳本項(xiàng)以使得不傳送處于未改變狀態(tài)的腳本項(xiàng), 而是傳送處于改變的狀態(tài)的腳本項(xiàng)。如先前所討論的,腳本項(xiàng)的改變可以包括改變一個(gè)或更多個(gè)代碼元素以把腳本項(xiàng)轉(zhuǎn)換成代碼的不可執(zhí)行部分。阻止腳本項(xiàng)的傳送還可以包括阻止請求的內(nèi)容中全部或一些內(nèi)容的傳送以減少或阻止腳本項(xiàng)引起的破壞。在替選方案中,當(dāng)在框306確定標(biāo)識是適當(dāng)?shù)臅r(shí),把腳本項(xiàng)傳送給用戶,如在框 310所描繪的。例如,通常應(yīng)當(dāng)在沒有干預(yù)的情況下把對跨站點(diǎn)腳本沒有漏洞的內(nèi)容傳送給請求用戶。因此,應(yīng)當(dāng)在識別的標(biāo)識是適當(dāng)?shù)臉?biāo)識時(shí)傳送期望由管理員傳送的內(nèi)容。如本文中所使用的,適當(dāng)?shù)臉?biāo)識是授權(quán)標(biāo)識。因此,授權(quán)標(biāo)識在示范性實(shí)施例中表示要向用戶傳送的授權(quán)或期望腳本項(xiàng)。相反地,如果標(biāo)識不適當(dāng),則在本發(fā)明的一個(gè)方面中,標(biāo)識會可以是未授權(quán)的,因此腳本項(xiàng)可能是不適當(dāng)?shù)模粦?yīng)當(dāng)傳送給用戶。圖4描繪了按照本發(fā)明實(shí)施例的、用于在內(nèi)容傳遞系統(tǒng)中采用哈希函數(shù)確定腳本項(xiàng)不正確的方法400的流程圖。在框402,接收來自用戶的內(nèi)容請求。在示范性實(shí)施例中, 在服務(wù)器(如,針對圖2討論的服務(wù)器206)處接收請求。請求在示范性實(shí)施例中是對于標(biāo)記語言(如,超文本標(biāo)記語言(HTML))形式的響應(yīng)的請求。然而,構(gòu)思了請求可以對于任何 web服務(wù)響應(yīng)形式的響應(yīng)。在示范性實(shí)施例中,在接收請求后,對于到來的請求生成標(biāo)識。 例如,可以生成附加到或者與到來的請求相關(guān)聯(lián)的唯一標(biāo)識以使得可以稍后使用該標(biāo)識識別不適當(dāng)腳本項(xiàng)。在框404,確定內(nèi)容腳本項(xiàng)的第一哈希值。哈希值是從向基礎(chǔ)對象應(yīng)用哈希函數(shù)得到的字符或字符組。在本發(fā)明的示范性實(shí)施例中,向腳本項(xiàng)的整體或一部分應(yīng)用哈希函數(shù)以得到標(biāo)識。因此,如果改變腳本項(xiàng)或腳本項(xiàng)的一部分,則從同一哈希函數(shù)得到的哈希值也會改變。此場景中使用的哈希值對于識別期望的腳本項(xiàng)以及未改變的腳本項(xiàng)可能是有用的。因此,在此實(shí)例中,腳本項(xiàng)的第一哈希值的確定可以包括把腳本項(xiàng)的至少一部分(例如, 字符、元素、代碼片段、變量、命令等)應(yīng)用于對于希望注入跨站點(diǎn)腳本攻擊的第三方未知的哈希函數(shù)。所得的哈希值可以用作如本文中所討論的標(biāo)識。因此,期望由管理員傳送給用戶的腳本項(xiàng)與根據(jù)基礎(chǔ)腳本項(xiàng)和哈希函數(shù)計(jì)算的哈希值初始地相關(guān)聯(lián)。如先前所討論的,哈希函數(shù)是把輸入(例如,腳本項(xiàng)字符)以及有可能哈希函數(shù)參數(shù)轉(zhuǎn)換為看上去不相關(guān)的值的輸出(例如,標(biāo)識)的運(yùn)算(例如,數(shù)學(xué)的)。在本文中構(gòu)思了保持哈希函數(shù)或它的參數(shù)對第三方保密以加強(qiáng)采用哈希函數(shù)的有效性。在框406,把第一哈希值應(yīng)用于腳本項(xiàng)。第一哈希值向腳本項(xiàng)的應(yīng)用可以包括直接或間接關(guān)聯(lián)哈希值作為標(biāo)識,如先前所討論的。在示范性實(shí)施例中,把第一哈希值插入在腳本項(xiàng)內(nèi)。例如,可以向腳本項(xiàng)附加標(biāo)記以提供標(biāo)識。(例如,“〈script id=1234>…</ script>”、“<script hash=9876>…〈/script〉”)。因此,構(gòu)思了向腳本項(xiàng)應(yīng)用標(biāo)識或哈希值包括用標(biāo)識對腳本項(xiàng)加標(biāo)簽和/或使用JavMcript的HTML標(biāo)簽。第一哈希值(或標(biāo)識) 的應(yīng)用可以包括向腳本項(xiàng)應(yīng)用變量??梢噪S后從表引用變量以維持對標(biāo)識或者用來生成標(biāo)識的函數(shù)的訪問控制。類似地,把標(biāo)識應(yīng)用于腳本項(xiàng)可以包括應(yīng)用標(biāo)識作為直接從腳本可訪問的靜態(tài)字符。在框408,根據(jù)腳本項(xiàng)確定第二哈希值。例如,可以使用公共哈希函數(shù)確定第一哈希值以及第二哈希值。因此,在示范性實(shí)施例中,如果在過渡期間哈希函數(shù)未改變以及未改變腳本項(xiàng),則所得第一哈希值和所得第二哈希值應(yīng)當(dāng)在示范性實(shí)施例中等同。因此,第二哈希值的使用對于驗(yàn)證腳本項(xiàng)未從它在確定第一哈希值時(shí)所在的狀態(tài)改變是有效的。在框410,做出腳本項(xiàng)并不正確的確定。在示范性實(shí)施例中,腳本項(xiàng)并不正確的確定是未通過腳本項(xiàng)識別第一或第二哈希值的結(jié)果。構(gòu)思了在第三方注入腳本項(xiàng)的情況下無法識別第一或第二哈希值。在另一示范性實(shí)施例中,當(dāng)在框408確定的第二哈希值與在框 404確定的第一哈希值不等同時(shí),得到腳本項(xiàng)并不正確的確定。圖5描繪了按照本發(fā)明實(shí)施例的、用于阻止跨站點(diǎn)腳本攻擊的方法500的流程圖。 在框502,在服務(wù)器處接收對內(nèi)容的標(biāo)記語言請求。在示范性實(shí)施例中,用戶采用圖2的用戶運(yùn)算設(shè)備202生成請求。進(jìn)一步地,在示范性實(shí)施例中,通過網(wǎng)絡(luò)204傳送請求以通過服務(wù)器206接收。在框504,響應(yīng)于接收請求生成唯一標(biāo)識。標(biāo)識可以是隨機(jī)生成、根據(jù)哈希函數(shù)生成或者其他方式生成的字符串,以便用作一個(gè)或更多個(gè)腳本項(xiàng)的標(biāo)識。在框506,在請求的內(nèi)容內(nèi)識別第一腳本項(xiàng)。請求的內(nèi)容可以是標(biāo)記語言(如, HTML)形式的。進(jìn)一步地,可以通過圖2的腳本辨識組件212識別腳本項(xiàng)。在框508,唯一標(biāo)識與第一腳本項(xiàng)相關(guān)聯(lián)。如先前所討論的,可以通過對腳本項(xiàng)加標(biāo)簽和/或更新查找表以維護(hù)唯一標(biāo)識與第一腳本項(xiàng)之間的相關(guān)性,來完成唯一標(biāo)識的關(guān)聯(lián)。在框510,在傳送給用戶以前識別可以作為內(nèi)容的一部分傳送給用戶的一個(gè)或更多個(gè)腳本項(xiàng)。在示范性實(shí)施例中,一個(gè)或更多個(gè)腳本項(xiàng)包括第一腳本項(xiàng)和第二腳本項(xiàng)。在示范性實(shí)施例中,第一腳本項(xiàng)與第二腳本項(xiàng)不同。在框512,確定第二腳本項(xiàng)未與唯一標(biāo)識相關(guān)聯(lián)。例如,如果第二腳本項(xiàng)并非請求內(nèi)容的作者提供的腳本項(xiàng),則唯一標(biāo)識不可以與第二腳本項(xiàng)相關(guān)聯(lián)。第二腳本項(xiàng)可以因此是注入的腳本項(xiàng)。在框514,阻止把第二腳本項(xiàng)傳送給用戶。在示范性實(shí)施例中,基于缺少與唯一標(biāo)識(可以與和第一腳本項(xiàng)相關(guān)聯(lián)的唯一標(biāo)識不同或一樣)的關(guān)聯(lián)確定第二腳本項(xiàng)是不適當(dāng)腳本項(xiàng)。如先前所討論的,第二腳本項(xiàng)傳送的阻止可以包括去除第二腳本項(xiàng)、改變第二腳本項(xiàng)、或者用以阻止在請求用戶的運(yùn)算設(shè)備上執(zhí)行第二腳本項(xiàng)的其它方法。在框516,在把第一腳本項(xiàng)傳送給用戶以前去除第一腳本項(xiàng)與唯一標(biāo)識之間的關(guān)聯(lián)。在示范性實(shí)施例中,希望維持從用戶的透明過程以不提供對標(biāo)識使用的語法的暗示或線索。維持此級別的安全或私密知識阻礙惡意第三方模仿唯一標(biāo)識以避免通過唯一標(biāo)識提供的跨站點(diǎn)腳本檢測。因此,構(gòu)思了第一腳本項(xiàng)與唯一標(biāo)識之間關(guān)聯(lián)的去除可以包括從腳本項(xiàng)去除(例如,從標(biāo)記語言去除)唯一標(biāo)識、去除對查找表使用的唯一標(biāo)識的引用、改變唯一標(biāo)識以提供誘餌標(biāo)識、或者其他方式隱蔽唯一標(biāo)識。在示范性實(shí)施例中,維持唯一標(biāo)識的全部或至少一部分和/或哈希函數(shù)對用戶私密。維護(hù)私密性意味著實(shí)際標(biāo)識或哈希函數(shù)未暴露,對于基礎(chǔ)標(biāo)識或哈希函數(shù)來說也未暴露線索或暗示。因此,在本發(fā)明的一個(gè)方面中,唯一標(biāo)識生成、關(guān)聯(lián)、確定等是對用戶的透明過程。在框518,把第一腳本傳送給用戶。在示范性實(shí)施例中,確定第一腳本具有唯一標(biāo)識以及確定該唯一標(biāo)識與在框504生成的唯一標(biāo)識等同。進(jìn)一步地,在示范性實(shí)施例中,在其中沒有合并唯一標(biāo)識的情況下傳送第一腳本項(xiàng)。額外地,在示范性實(shí)施例中,也可以把用戶請求的內(nèi)容的另外部分傳送給末端用戶,只要也通過類似技術(shù)確定這些其它部分是適當(dāng)?shù)?。在不脫離本發(fā)明范圍和精神的情況下,描繪的各種組件以及未示出的組件的許多不同布置都是可能的。通過示例性而非限制性的意圖描述了本發(fā)明的實(shí)施例。未脫離它的范圍的替選實(shí)施例將會對本領(lǐng)域技術(shù)人員而言是明顯的。技術(shù)人員可以在不脫離本發(fā)明范圍的情況下開發(fā)實(shí)施上述改進(jìn)的替選裝置。將會理解某些特征和子組合是實(shí)用的,并且可以在沒有對其它特征和子組合的引用的情況下采用,以及是在權(quán)利要求的范圍內(nèi)構(gòu)思的。并非需要按描述的具體次序執(zhí)行各種圖中列出的所有步驟。
權(quán)利要求
1.一種采用處理器和存儲器的運(yùn)算環(huán)境中的方法,用于在內(nèi)容傳遞系統(tǒng)中抑制跨站點(diǎn)腳本,該方法包括識別(302)用戶請求的內(nèi)容內(nèi)的腳本項(xiàng);確定(304)腳本項(xiàng)包括標(biāo)識,其中,標(biāo)識能夠用于識別內(nèi)容內(nèi)的未授權(quán)腳本元素;以及確定(306)標(biāo)識是否是適當(dāng)?shù)臉?biāo)識; a)當(dāng)確定標(biāo)識是適當(dāng)?shù)臅r(shí)(310),把腳本項(xiàng)傳送給用戶; b )當(dāng)確定標(biāo)識不適當(dāng)時(shí)(308 ),阻止把腳本項(xiàng)傳送給用戶。
2.權(quán)利要求1的方法,其中,腳本項(xiàng)是來自以下內(nèi)容的一個(gè) 可執(zhí)行腳本,事件句柄, 對象標(biāo)簽,或者 HTML代碼。
3.權(quán)利要求1的方法,其中,標(biāo)識是隨機(jī)生成的標(biāo)識。
4.權(quán)利要求1的方法,其中,標(biāo)識是至少部分地基于腳本項(xiàng)確定的哈希值。
5.權(quán)利要求1的方法,進(jìn)一步包括當(dāng)確定標(biāo)識不適當(dāng)時(shí)傳送不適當(dāng)腳本項(xiàng)的通知。
6.權(quán)利要求1的方法,進(jìn)一步包括當(dāng)確定標(biāo)識不適當(dāng)時(shí)改變腳本項(xiàng)以阻止與用戶相關(guān)聯(lián)的運(yùn)算設(shè)備對腳本項(xiàng)的執(zhí)行。
7.權(quán)利要求1的方法,其中,阻止傳送腳本項(xiàng)包括從內(nèi)容中去除腳本項(xiàng)。
8.一種采用處理器和存儲器的運(yùn)算環(huán)境中的方法,用于在內(nèi)容傳遞系統(tǒng)中抑制跨站點(diǎn)腳本,該方法包括從用戶接收(402)對內(nèi)容的請求;確定(404)內(nèi)容腳本項(xiàng)的第一哈希值,其中,第一哈希值基于哈希函數(shù)和腳本項(xiàng); 把第一哈希值應(yīng)用(406)于腳本項(xiàng);確定(408)腳本項(xiàng)的第二哈希值,其中,第二哈希值基于哈希函數(shù)和腳本項(xiàng);和基于第一哈希值和第二哈希值確定(410)腳本項(xiàng)不正確。
9.權(quán)利要求8的方法,其中,第一哈希值是對腳本項(xiàng)唯一的值。
10.權(quán)利要求8的方法,其中,把第一哈希值應(yīng)用于腳本項(xiàng)包括應(yīng)用與腳本項(xiàng)一致的第一哈希值或者向腳本項(xiàng)應(yīng)用HTML標(biāo)簽。
11.權(quán)利要求8的方法,其中,應(yīng)用第一哈希值包括通過與腳本項(xiàng)相關(guān)聯(lián)的第一哈希值更新查找表。
12.權(quán)利要求8的方法,其中,腳本項(xiàng)在第一哈希值和第二哈希值不等同時(shí)不正確。
13.權(quán)利要求8的方法,其中,方法進(jìn)一步包括在把內(nèi)容傳送給用戶以前從內(nèi)容中去除腳本項(xiàng)。
14.權(quán)利要求8的方法,其中,哈希函數(shù)的元素對用戶未知。
15.一種采用處理器和存儲器的運(yùn)算環(huán)境中的方法,用于在內(nèi)容傳遞系統(tǒng)中抑制跨站點(diǎn)腳本,該方法包括從用戶接收(502)對標(biāo)記語言內(nèi)容的請求,標(biāo)記語言內(nèi)容是通過與運(yùn)算系統(tǒng)相關(guān)聯(lián)的服務(wù)器提供的;響應(yīng)于接收標(biāo)記語言請求,生成(504)唯一標(biāo)識;在標(biāo)記語言內(nèi)容內(nèi)識別(506)第一腳本項(xiàng); 把唯一標(biāo)識關(guān)聯(lián)(508)到第一腳本項(xiàng);在把內(nèi)容傳送給用戶以前,識別(510)要向用戶傳送的一個(gè)或更多個(gè)腳本項(xiàng),其中,一個(gè)或更多個(gè)腳本項(xiàng)包括第一腳本項(xiàng);確定(512) —個(gè)或更多個(gè)腳本項(xiàng)中的第二腳本項(xiàng)未與唯一標(biāo)識相關(guān)聯(lián); 阻止(514)第二腳本項(xiàng)向用戶的傳送;在把第一標(biāo)識傳送給用戶以前去除(516)第一腳本項(xiàng)與唯一標(biāo)識之間的關(guān)聯(lián);以及把第一腳本項(xiàng)傳送(518)給用戶。
全文摘要
實(shí)施例涉及用于在內(nèi)容傳遞系統(tǒng)中抑制跨站點(diǎn)腳本的系統(tǒng)方法以及計(jì)算機(jī)存儲介質(zhì)。接收對于包括一個(gè)或數(shù)個(gè)腳本項(xiàng)的內(nèi)容的請求。在內(nèi)容內(nèi)識別腳本項(xiàng)。在腳本元素是期望與內(nèi)容相關(guān)聯(lián)的腳本元素時(shí),將標(biāo)識與腳本元素相關(guān)聯(lián)。標(biāo)識可以是基于哈希函數(shù)和腳本項(xiàng)的哈希值。在把內(nèi)容傳送給用戶以前,再次識別腳本項(xiàng)以確定標(biāo)識是否與腳本項(xiàng)相關(guān)聯(lián)。如果標(biāo)識與腳本項(xiàng)相關(guān)聯(lián),則評估標(biāo)識以確定標(biāo)識是否適當(dāng)。當(dāng)確定標(biāo)識不適當(dāng)時(shí),阻止把腳本項(xiàng)傳送給用戶。
文檔編號G06F21/00GK102368257SQ20111029664
公開日2012年3月7日 申請日期2011年9月30日 優(yōu)先權(quán)日2010年10月6日
發(fā)明者古爾斯基 D., L. 貝努亞 M., 安德魯斯 M., 什羅夫 S. 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
卓资县| 栾城县| 清苑县| 弋阳县| 辽阳市| 虞城县| 蕉岭县| 资兴市| 平湖市| 文成县| 图们市| 竹溪县| 新化县| 克什克腾旗| 淮滨县| 修文县| 遂宁市| 盐山县| 隆子县| 西丰县| 舒兰市| 静安区| 当涂县| 镇宁| 奇台县| 杨浦区| 女性| 内黄县| 安达市| 潞城市| 伊金霍洛旗| 娄烦县| 宣恩县| 甘德县| 桑植县| 日照市| 蒙城县| 正蓝旗| 西充县| 满洲里市| 延川县|