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

安全和可擴(kuò)展策略驅(qū)動(dòng)的應(yīng)用程序平臺(tái)的制作方法

文檔序號(hào):6479403閱讀:219來(lái)源:國(guó)知局
專利名稱:安全和可擴(kuò)展策略驅(qū)動(dòng)的應(yīng)用程序平臺(tái)的制作方法
安全和可擴(kuò)展策略驅(qū)動(dòng)的應(yīng)用程序平臺(tái)背景在因特網(wǎng)上可獲得內(nèi)容在近年來(lái)經(jīng)歷了爆炸式的轉(zhuǎn)變。網(wǎng)頁(yè)中的給早期在線用戶 留下印象的靜態(tài)文本或靜止圖像已被動(dòng)態(tài)動(dòng)畫、豐富的多媒體視頻剪輯、以及動(dòng)態(tài)網(wǎng)頁(yè)布 局所代替。另外,網(wǎng)頁(yè)中的內(nèi)容在運(yùn)行時(shí)變成交互式的;用戶可以使用輸入設(shè)備(例如鼠標(biāo) 或指示筆)或用戶的手指來(lái)移動(dòng)或重新安排網(wǎng)頁(yè)內(nèi)的對(duì)象以提供豐富的自定義。該交互式開發(fā)中的驅(qū)動(dòng)力之一是對(duì)可由應(yīng)用程序或軟件(例如,web瀏覽器)執(zhí)行 的計(jì)算機(jī)可執(zhí)行指令形式的腳本內(nèi)容在運(yùn)行時(shí)或接近運(yùn)行時(shí)的使用。這樣的開發(fā)的一個(gè)示 例是混搭(mashup),其是組合來(lái)自各種源的代碼和行為以用于集成在體驗(yàn)內(nèi)或用于創(chuàng)建新 體驗(yàn)的web應(yīng)用程序。然而,由于瀏覽器的性質(zhì),隨著在呈現(xiàn)混搭之時(shí)或在呈現(xiàn)混搭之前執(zhí) 行混搭,大多數(shù)混搭在主站點(diǎn)和網(wǎng)頁(yè)內(nèi)的第三方代碼之間創(chuàng)建了暗含的信任關(guān)系。這一信 任關(guān)系將網(wǎng)站和底層web業(yè)務(wù)模型置于危險(xiǎn)之中。另外,因?yàn)榛齑畲a或腳本的交互式性 質(zhì),該信任關(guān)系也可將網(wǎng)頁(yè)和/或本地設(shè)備上呈現(xiàn)的用戶個(gè)人或隱私內(nèi)容置于危險(xiǎn)之中。概述本發(fā)明的各實(shí)施例通過(guò)定義用于網(wǎng)頁(yè)的策略驅(qū)動(dòng)腳本內(nèi)容的行為的策略以使得 本發(fā)明的各實(shí)施例可以在將腳本內(nèi)容呈現(xiàn)給用戶之時(shí)或?qū)⒛_本內(nèi)容呈現(xiàn)給用戶之前監(jiān)視、 實(shí)施、修改、或補(bǔ)充腳本內(nèi)容的行為來(lái)解決以上缺點(diǎn)。在另一實(shí)施例中,將所定義的策略提 供給本地設(shè)備以使得在該本地設(shè)備處執(zhí)行的瀏覽器可以方便地在本地級(jí)比較腳本內(nèi)容安 全邊界。替換實(shí)施例提供用于策略驅(qū)動(dòng)和策略實(shí)施的腳本執(zhí)行的平臺(tái)和圍繞尤其是在基于 web的混搭上下文中的內(nèi)容引用包含(transclusion)、組件開發(fā)、以及API可擴(kuò)展性的策略 場(chǎng)景。替換實(shí)施例還提供自動(dòng)地支持多實(shí)例的能力并提供范圍保護(hù)。另外,本發(fā)明的其他 方面監(jiān)視并記錄用戶與腳本內(nèi)容的交互,以使得可以記錄服務(wù)質(zhì)量(QOS)度量或數(shù)據(jù)并將 其報(bào)告給該腳本內(nèi)容的發(fā)行者、創(chuàng)作者或提供者。提供本概述是為了以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概 念。本概述不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定 所要求保護(hù)的主題的范圍。其他特征的一部分將是顯而易見的,一部分將在下文中指出。附圖簡(jiǎn)述

圖1是示出根據(jù)本發(fā)明的一實(shí)施例的用于保護(hù)網(wǎng)頁(yè)內(nèi)的腳本內(nèi)容的系統(tǒng)的示例 性實(shí)施例的框圖。圖2是示出根據(jù)本發(fā)明的一實(shí)施例的用于定義腳本內(nèi)容的執(zhí)行邊界的示例性策 略的框圖。圖3-9是示出根據(jù)本發(fā)明的一實(shí)施例的腳本內(nèi)容交互的屏幕顯示的示例性框圖。圖10-11是示出根據(jù)本發(fā)明的一實(shí)施例的腳本內(nèi)容的服務(wù)質(zhì)量的管理和測(cè)量的 框圖。圖12是示出根據(jù)本發(fā)明的一實(shí)施例的與保護(hù)腳本內(nèi)容相關(guān)聯(lián)的示例性服務(wù)質(zhì)量 數(shù)據(jù)的框圖。
圖13是示出根據(jù)本發(fā)明的一實(shí)施例的保護(hù)網(wǎng)頁(yè)內(nèi)的腳本內(nèi)容的操作的示例性流 程圖。圖14-15是示出根據(jù)本發(fā)明在附錄A中描述的一實(shí)施例的保護(hù)網(wǎng)頁(yè)內(nèi)的腳本內(nèi)容 的替換實(shí)施例的框圖。圖16是示出根據(jù)本發(fā)明的一實(shí)施例的保護(hù)客戶機(jī)設(shè)備上的網(wǎng)頁(yè)內(nèi)的腳本內(nèi)容的 操作的框圖。附錄A示出安全和可擴(kuò)展策略驅(qū)動(dòng)的應(yīng)用程序平臺(tái)的示例性實(shí)現(xiàn)。相應(yīng)的附圖標(biāo)記在全部附圖中指示相應(yīng)的部分。詳細(xì)描述本發(fā)明的各實(shí)施例向頁(yè)面內(nèi)腳本內(nèi)容或函數(shù)提供安全,并向在網(wǎng)頁(yè)內(nèi)顯示或呈現(xiàn) 的用戶內(nèi)容提供適當(dāng)?shù)谋Wo(hù)?,F(xiàn)在參考圖1,示出了根據(jù)本發(fā)明的一實(shí)施例的用于保護(hù)內(nèi)容 持有者104內(nèi)的腳本內(nèi)容102的系統(tǒng)100。系統(tǒng)100包括可由客戶機(jī)108經(jīng)由通信網(wǎng)絡(luò)(未 示出)訪問(wèn)的服務(wù)器106。在一個(gè)示例中,服務(wù)器106包括聯(lián)網(wǎng)計(jì)算機(jī)的集合、計(jì)算機(jī)、web 服務(wù)器、企業(yè)服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、認(rèn)證服務(wù)器、其組合、或以上的集合。在一個(gè)實(shí)施例中, 服務(wù)器106可以是向用戶114提供各種服務(wù)的服務(wù)器的聯(lián)合集合。在另一實(shí)施例中,服務(wù) 器106包括處理器110,處理器110可以是處理單元、微處理器、中央處理單元、或以上示例 的集合/組合。在一個(gè)示例中,服務(wù)器106提供各種服務(wù),如基于web的電子郵件(e-mail) 帳戶、聚集用戶114的各種個(gè)性化信息的集中式web門戶頁(yè)面,等等。在另一示例中,服務(wù) 器106以超文本標(biāo)記語(yǔ)言(HTML)、可擴(kuò)展標(biāo)記語(yǔ)言(XML) JavaScript 、異步JavaScript 和XML(AJAX)等的形式向用戶114提供交互式內(nèi)容和非交互式內(nèi)容兩者。可以理解,可以 提供諸如多媒體內(nèi)容等其他內(nèi)容而不背離本發(fā)明的各方面的范圍和精神??蛻魴C(jī)108包括與用戶114相關(guān)聯(lián)的任何客戶機(jī)設(shè)備,如個(gè)人計(jì)算機(jī)(PC)(例如, 臺(tái)式計(jì)算機(jī)或膝上型計(jì)算機(jī))、便攜式數(shù)字設(shè)備、個(gè)人數(shù)字助理(PDA)、蜂窩電話、便攜式媒 體播放器等。通信網(wǎng)絡(luò)包括便于兩個(gè)或更多個(gè)計(jì)算機(jī)之間的連接的任何有線或無(wú)線通信網(wǎng)在一個(gè)示例中,服務(wù)器106被配置成向用戶114提供內(nèi)容持有者104以在客戶機(jī) 108處呈現(xiàn)或顯示。例如,內(nèi)容持有者104可以由安裝在客戶機(jī)108上的web瀏覽器應(yīng)用 程序(WBA) 118呈現(xiàn)。在一個(gè)實(shí)施例中,內(nèi)容持有者104可以是網(wǎng)頁(yè)、ASCII文本頁(yè)、具有嵌 入式標(biāo)記語(yǔ)言內(nèi)容的網(wǎng)頁(yè)、具有嵌入式媒體內(nèi)容的網(wǎng)頁(yè)等。在一個(gè)實(shí)施例中,WBA 118是 獨(dú)立應(yīng)用程序或軟件。在另一實(shí)施例中,WBA 118可以是能夠呈現(xiàn)以諸如超文本標(biāo)記語(yǔ)言 (HTML)、可擴(kuò)展標(biāo)記語(yǔ)言(XML)等標(biāo)記語(yǔ)言編寫的內(nèi)容的程序或軟件的一部分或組件。還 可以理解,WBA 118可以是在在線環(huán)境中呈現(xiàn)其他內(nèi)容的應(yīng)用程序和組件,這些內(nèi)容諸如圖 形文件((· jpg、· tiff、· pdf 等)、媒體文件(· wma、· mp3、· mp4 等),等等。內(nèi)容持有者104包括具有內(nèi)容的一個(gè)或多個(gè)組件。在一個(gè)示例中,一組件可包括 腳本內(nèi)容102和/或非腳本內(nèi)容116。在一個(gè)示例中,腳本內(nèi)容102包括計(jì)算機(jī)可執(zhí)行指令、 代碼、函數(shù)、可執(zhí)行表達(dá)式、或其他可執(zhí)行程序設(shè)計(jì)語(yǔ)言。腳本內(nèi)容102可以經(jīng)由函數(shù)調(diào)用 或應(yīng)用程序編程接口(API)請(qǐng)求或調(diào)用來(lái)引起執(zhí)行啟用。執(zhí)行啟用可以從服務(wù)器106、客戶 機(jī)108、或WBA 118請(qǐng)求資源。另一方面,非腳本內(nèi)容116包括不可執(zhí)行或不引起執(zhí)行結(jié)果 的內(nèi)容。例如,文本語(yǔ)句(例如,“Today's news (今天新聞)...”)可以是非腳本內(nèi)容116,但文本語(yǔ)句(例如,echo (Today,s news. . . ) ;document, write ( "Today,s news…”);) 可以是腳本內(nèi)容102,因?yàn)樵趫?zhí)行該語(yǔ)句時(shí),該文本語(yǔ)句造成超過(guò)僅僅顯示該文本語(yǔ)句本身 的函數(shù)結(jié)果。系統(tǒng)100還包括策略引擎120,策略引擎120包括用于定義腳本內(nèi)容的執(zhí)行邊界的 一個(gè)或多個(gè)策略。在一個(gè)示例中,策略引擎120包括用于存儲(chǔ)一個(gè)或多個(gè)策略的存儲(chǔ)介質(zhì)。 現(xiàn)在參考圖2,一示圖示出存儲(chǔ)在策略引擎120中的簡(jiǎn)單化的策略202。在一個(gè)示例中,策 略202中的每一個(gè)都定義特定腳本內(nèi)容或該腳本內(nèi)容中包括的函數(shù)的執(zhí)行邊界。在另一示 例中,策略202-1包括被稱為“addFolderO (添加文件夾)” 204的腳本內(nèi)容或函數(shù)的執(zhí)行 邊界,而策略202-2包括被稱為“openWindowO (打開窗口)”206的腳本內(nèi)容或函數(shù)的執(zhí)行 邊界??梢岳斫?,其他函數(shù)或腳本內(nèi)容可以包括在策略引擎120中而不背離本發(fā)明的范圍 或精神。還可以理解,在開發(fā)、擴(kuò)充、修改、或升級(jí)附加函數(shù)或腳本內(nèi)容時(shí),策略引擎120可 被周期性地全部或部分更新。在一替換實(shí)施例中,執(zhí)行邊界指示可由腳本內(nèi)容或函數(shù)訪問(wèn) 的內(nèi)容或資源的限制。例如,假定策略202-1定義腳本內(nèi)容“addFolderO,,的執(zhí)行邊界。策略202_1中 的執(zhí)行邊界可以定義腳本內(nèi)容“addFolderO”可以在向服務(wù)器106發(fā)送了請(qǐng)求之后在WBA 118實(shí)例內(nèi)的運(yùn)行時(shí)期間執(zhí)行。同樣,邊界可以進(jìn)一步將腳本內(nèi)容“addFolderO ”(其創(chuàng)建 文件夾或目錄)的結(jié)果限制為只限于在WBA118將用戶114的信息從服務(wù)器106呈現(xiàn)在客 戶機(jī)108上時(shí)訪問(wèn)與用戶114相關(guān)聯(lián)的存儲(chǔ)空間。addFolderO函數(shù)不能訪問(wèn)(例如,讀權(quán) 限)來(lái)自該存儲(chǔ)空間的其他信息。圖3-9通過(guò)用戶114的基于web的電子郵件帳戶的簡(jiǎn)化 示例進(jìn)一步示出本發(fā)明的各方面。例如,在圖3中,顯示窗口 302顯示安裝在客戶機(jī)108上的WBA 118的實(shí)例。顯示 窗口 302包括web地址欄304和顯示內(nèi)容持有者104的內(nèi)容的內(nèi)容顯示區(qū)域306??梢园?括其他控件,諸如窗口大小控件308 (其包括窗口最小化控件、窗口最大化控件、以及窗口 關(guān)閉控件)、搜索控件310、導(dǎo)航控件312等。還可以理解,可以添加或?qū)崿F(xiàn)其他控件而不背 離本發(fā)明的范圍或精神。在其中WBA 118向用戶114顯示個(gè)人基于web的電子郵件收件箱的這一示例中, 內(nèi)容顯示區(qū)域306還包括側(cè)窗格314和列出用戶114的收件箱中的一個(gè)或多個(gè)電子郵件消 息的主消息窗格316。作為說(shuō)明,側(cè)窗格314顯示將用戶114鏈接到電子郵件帳戶userlg user-mail, com的收件箱內(nèi)的一個(gè)或多個(gè)目錄或文件夾的多個(gè)控件、按鈕、或鏈接。例如,這 些文件夾包括“收件箱”文件夾、“草稿”文件夾、“已發(fā)送項(xiàng)目”文件夾、“垃圾箱”文件夾、以 及“已刪除”文件夾。側(cè)窗格314還包括在“文件夾”標(biāo)題下示出一個(gè)或多個(gè)個(gè)性化文件夾 或目錄的部分。在該圖示中,不存在用戶114的個(gè)性化文件夾或目錄。顯示窗口 302還在 主消息窗格316中顯示電子郵件消息的列表。如圖所示,顯示窗口 302顯示或呈現(xiàn)用戶的 收件箱的布局并還顯示其從服務(wù)器106提供的內(nèi)容。換言之,只要內(nèi)容或用戶收件箱的內(nèi) 容的布局能由WBA 118正確地識(shí)別,顯示窗口 302就將相應(yīng)地在內(nèi)容顯示區(qū)域306中向用 戶114呈現(xiàn)該布局和內(nèi)容。還可以理解,側(cè)窗格314和主消息窗格316可以取決于內(nèi)容持 有者104的布局來(lái)修改。同樣,在所示示例中,用戶114接收來(lái)自“購(gòu)物”的具有主題行“減價(jià)20%在線銷 售”的電子郵件消息320?,F(xiàn)在參考圖4,一示圖示出本發(fā)明的各實(shí)施例如何通過(guò)控制所顯示的內(nèi)容內(nèi)的函數(shù)調(diào)用來(lái)采用策略驅(qū)動(dòng)的應(yīng)用程序平臺(tái),以使得用戶敏感或隱私內(nèi)容得到 保護(hù)。在該示例中,假定消息320包括典型的非腳本內(nèi)容和腳本內(nèi)容。非腳本內(nèi)容可包括對(duì) 于用戶廣告購(gòu)物銷售的文本消息。消息320的腳本內(nèi)容包括嘗試向用戶114的電子郵件帳 戶添加被稱為“購(gòu)物”的文件夾的一個(gè)或多個(gè)函數(shù)。這樣的“購(gòu)物文件夾”將為用戶114保 持銷售交易、優(yōu)惠券、或其他銷售消息??梢栽凇按蜷_”消息320時(shí)或在一短暫延遲后激活或 調(diào)用腳本內(nèi)容。在一個(gè)示例中,用戶114可以通過(guò)使用輸入設(shè)備(例如,鼠標(biāo)或指示筆)或 用戶的手指來(lái)打開電子郵件消息320。在一個(gè)實(shí)施例中,在用戶114突出顯示消息320時(shí), 如通過(guò)將鼠標(biāo)圖形光標(biāo)懸停在該消息上方或?qū)⑽恢脴?biāo)記移動(dòng)到(例如,使用鍵盤上的箭頭 鍵)電子郵件消息320的位置,電子郵件消息320可被自動(dòng)打開。可以理解,可以采用突出 顯示或聚焦消息320以打開消息320來(lái)查看其內(nèi)容的其他手段而不背離本發(fā)明的范圍或精 神。當(dāng)前技術(shù)將執(zhí)行腳本內(nèi)容而不進(jìn)行干涉。換言之,如果腳本內(nèi)容的函數(shù)指定打開 顯示窗口,則顯示窗口將被打開。用戶114將不具有對(duì)如何執(zhí)行腳本內(nèi)容的控制。實(shí)際上, 服務(wù)器106也不具有對(duì)該內(nèi)容的控制,因?yàn)閮?nèi)容在web或在線環(huán)境中的呈現(xiàn)或顯示通常被 委托給WBA 118。如此,用戶的收件箱的隱私或內(nèi)容或其他內(nèi)容受到任何所顯示的頁(yè)面的腳 本內(nèi)容的閃念(whim)的控制。本發(fā)明的各實(shí)施例定義各個(gè)策略來(lái)監(jiān)視和/或截取腳本內(nèi)容,以使得腳本內(nèi)容只 可在由所定義的策略指定的定義邊界內(nèi)執(zhí)行。本發(fā)明的各方面還提供響應(yīng)于評(píng)估所截取的 腳本內(nèi)容調(diào)用或函數(shù)的動(dòng)態(tài)解決方案。動(dòng)態(tài)解決方案可包括以下至少一個(gè)在所請(qǐng)求的資 源能在執(zhí)行邊界內(nèi)執(zhí)行的情況下準(zhǔn)許該請(qǐng)求,在所請(qǐng)求的資源不能在執(zhí)行邊界內(nèi)執(zhí)行的情 況下拒絕該請(qǐng)求,在準(zhǔn)許該請(qǐng)求之前擴(kuò)充該請(qǐng)求,響應(yīng)于另一請(qǐng)求在提供替換解決方案之 前用該另一請(qǐng)求替換該請(qǐng)求,以及從用戶請(qǐng)求用于準(zhǔn)許或拒絕該請(qǐng)求的用戶輸入。在一個(gè)實(shí)施例中,用戶114還可以涉及進(jìn)一步限制腳本內(nèi)容的執(zhí)行?,F(xiàn)在再次參 考圖4,在打開消息320時(shí)并且在執(zhí)行消息320的腳本內(nèi)容時(shí),消息320的腳本內(nèi)容被傳遞 到策略引擎120以供評(píng)估并且用戶114可以幫助或參與該評(píng)估?;谝陨鲜纠坏┫?20被“打開”,消息320的腳本內(nèi)容就嘗試使用諸如 "addFolderO ”等函數(shù)來(lái)向用戶114的電子郵件帳戶添加被稱為“購(gòu)物”文件夾的文件夾。 并非像現(xiàn)有技術(shù)那樣執(zhí)行腳本內(nèi)容,本發(fā)明的各方面使腳本內(nèi)容和/或函數(shù)調(diào)用穿過(guò)策略 引擎120。如圖2所示,策略引擎120包括關(guān)于處理函數(shù)調(diào)用的一個(gè)或多個(gè)規(guī)則。在該示 例中,策略引擎120可被設(shè)計(jì)成截取所有addFolderO函數(shù)調(diào)用并提取腳本的內(nèi)容。同時(shí), 策略引擎120觸發(fā)或啟用替換函數(shù)或附加函數(shù)的執(zhí)行或運(yùn)行,如用于向用戶114打開窗口 322的函數(shù)“alertWindowO ”(警告窗口)。alertffindow()函數(shù)希望在WBA 118的執(zhí)行環(huán) 境內(nèi)打開窗口 322以向用戶114顯示消息和交互式控件。所顯示的消息和/或交互式控件 符合或表示從消息320的腳本內(nèi)容提取的內(nèi)容。在該示例中,替換alertWindowO函數(shù)希望通過(guò)顯示以下消息來(lái)打開窗口警告用 戶114:“添加包括來(lái)自您最喜愛的商店的優(yōu)惠券的“購(gòu)物”文件夾? ”用戶114可以通過(guò)點(diǎn) 擊“是”按鈕340來(lái)選擇添加文件夾或通過(guò)點(diǎn)擊“否”按鈕342來(lái)拒絕該請(qǐng)求。如果用戶114 選擇“是”按鈕340,則新個(gè)性化“購(gòu)物”文件夾334可被添加到用戶的個(gè)性化文件夾部分, 如在圖5中所看到的。因此,用戶114現(xiàn)在是準(zhǔn)許或拒絕消息320的腳本內(nèi)容的原始意圖(例如,執(zhí)行addFolderO函數(shù))的決定過(guò)程的一部分。在另一實(shí)施例中,消息320的腳本內(nèi)容可以調(diào)用對(duì)服務(wù)器106、處理器110、客戶機(jī) 108、或WBA 118的資源的應(yīng)用程序編程接口(API)調(diào)用。在該情形中,本發(fā)明的各實(shí)施例 還可以截取這樣的API調(diào)用并使它們穿過(guò)策略引擎120。在一個(gè)實(shí)施例中,在帶有或不帶有 對(duì)于用戶114的任何通知的情況下,策略引擎120可以選擇允許、拒絕、擴(kuò)充、或替換任何調(diào) 用的行為。這些調(diào)用可以源自現(xiàn)有API或只經(jīng)由策略來(lái)定義(例如,它們不必是預(yù)先存在 的 API)。例如,圖6示出本發(fā)明的一方面,其中自動(dòng)地拒絕來(lái)自消息的腳本內(nèi)容的請(qǐng)求 或調(diào)用但向用戶114通知這一拒絕。在該圖示中,本發(fā)明的各方面使策略引擎120能夠 自動(dòng)地拒絕所有腳本啟用或函數(shù)調(diào)用。在這樣做時(shí),修改對(duì)用戶的通知消息332以顯示 “Shopping-for-you. com請(qǐng)求向您的電子郵件帳戶添加文件夾并且該請(qǐng)求被自動(dòng)拒絕。如 果您想要準(zhǔn)許這一請(qǐng)求,請(qǐng)點(diǎn)擊“準(zhǔn)許”。否則,請(qǐng)點(diǎn)擊“繼續(xù)”。”響應(yīng)于這一通知向用戶114 呈現(xiàn)了“準(zhǔn)許”按鈕344和“繼續(xù)”按鈕346。換言之,一旦設(shè)定了自動(dòng)拒絕策略設(shè)置則本發(fā) 明的各實(shí)施例向用戶114提供在一次性的基礎(chǔ)上作出決定的能力。在另一實(shí)施例中,通知 332可包括其他選項(xiàng),如“記住我的設(shè)置”、“在兩星期內(nèi)記住我的設(shè)置”、“總是這樣做”、“復(fù) 位我先前的決定”等(如選項(xiàng)370 “將來(lái)總是采取這一動(dòng)作”)。在該替換中,本發(fā)明的各方面還被配置成自動(dòng)地準(zhǔn)許請(qǐng)求或函數(shù)調(diào)用,并且在圖7 中同樣向用戶114給出通過(guò)點(diǎn)擊“拒絕”按鈕348來(lái)更改這樣的自動(dòng)動(dòng)作或“繼續(xù)”按鈕350 來(lái)繼續(xù)動(dòng)作的默認(rèn)過(guò)程的機(jī)會(huì)。在另一實(shí)施例中,策略引擎120可被配置成修改所截取的函數(shù)調(diào)用?,F(xiàn)在參考圖 8,如果本發(fā)明的各方面被實(shí)現(xiàn)成修改所截取的函數(shù)調(diào)用或API請(qǐng)求,則消息332現(xiàn)在顯示 以下內(nèi)容“Shopping-for-you. com請(qǐng)求向您的電子郵件帳戶添加“購(gòu)物”文件夾但看來(lái)您 已經(jīng)具有名為“購(gòu)物”的文件夾了。該請(qǐng)求被自動(dòng)修改成拒絕該請(qǐng)求。如果您想要進(jìn)一步 修改該請(qǐng)求,請(qǐng)點(diǎn)擊“修改”。否則,請(qǐng)點(diǎn)擊“繼續(xù)”。”換言之,該修改還可以與對(duì)該請(qǐng)求的拒 絕相耦合。如此,用戶114有機(jī)會(huì)通過(guò)點(diǎn)擊“修改”按鈕352來(lái)修改該請(qǐng)求或通過(guò)點(diǎn)擊“繼 續(xù)”按鈕354以進(jìn)行策略引擎120中的策略或規(guī)則所定義或設(shè)定的修改。類似地,策略引擎 120中的策略還可以將修改與對(duì)該請(qǐng)求的自動(dòng)準(zhǔn)許相耦合,如圖9中所示。在圖9中,向用戶 114呈現(xiàn)消息332,指示該請(qǐng)求已被使用向用戶的個(gè)性化文件夾部分添加文件夾“購(gòu)物-復(fù) 件”來(lái)自動(dòng)地替換了。用戶114同樣有機(jī)會(huì)通過(guò)點(diǎn)擊“繼續(xù)”按鈕356來(lái)同意該修改或通過(guò) 點(diǎn)擊“取消”按鈕358來(lái)取消該修改。在又一實(shí)施例中,對(duì)所截取的請(qǐng)求的修改可包括重寫 所截取的請(qǐng)求,以使得腳本內(nèi)容/請(qǐng)求處于基于所定義的策略的執(zhí)行邊界內(nèi)。在一個(gè)實(shí)施例中,在執(zhí)行WBA 118時(shí),可以實(shí)現(xiàn)WBA 118的一個(gè)或多個(gè)實(shí)例,并且 本發(fā)明的各方面在運(yùn)行時(shí)或執(zhí)行時(shí)間期間正確地區(qū)分每一實(shí)例。例如,用戶114可具有 同時(shí)運(yùn)行的一個(gè)或多個(gè)WBA118窗口。如此,如本發(fā)明的各方面所例示的,本發(fā)明在當(dāng)前 WBA 118窗口內(nèi)的實(shí)例化需要所有代碼首先經(jīng)由簡(jiǎn)單變換來(lái)標(biāo)準(zhǔn)化。這一變換重定向所有 API調(diào)用使其穿過(guò)策略引擎118。這一步驟嘗試迫使首先調(diào)用策略引擎并且還注入適當(dāng)?shù)?QOS(服務(wù)質(zhì)量)測(cè)試(稍后討論)。作為又一優(yōu)點(diǎn),腳本內(nèi)容的所實(shí)例化的實(shí)例中的每一 個(gè)具有獨(dú)立和分開的執(zhí)行邊界。在一個(gè)實(shí)施例中,只要從消息320的腳本內(nèi)容調(diào)用API,就對(duì)照策略引擎120來(lái)定
9向它。策略引擎120檢查以下至少一個(gè)作出請(qǐng)求的對(duì)象的類型、被調(diào)用的API的類型(屬 性、方法、工廠、或刪除),并將決定過(guò)程傳遞到策略腳本或規(guī)則中的至少一個(gè)。策略腳本可 以選擇拒絕訪問(wèn)(默認(rèn))、允許、擴(kuò)充(或取決于上下文來(lái)動(dòng)態(tài)地選擇拒絕或允許)、或替換 和/或定義該行為。在一個(gè)示例中,策略可被堆疊任何單個(gè)API啟用可被映射到0到η個(gè)策略或規(guī) 則。策略可以按定義的次序執(zhí)行。例如,第一次序策略允許訪問(wèn)屬性(例如,標(biāo)題屬性),并 且后續(xù)策略可通過(guò)只有在102-1的上下文內(nèi)的一個(gè)元素上才允許訪問(wèn)該屬性來(lái)進(jìn)一步約 束規(guī)則。另一示例可以允許啟用一種方法(例如,警告),其中后續(xù)策略覆蓋警告的默認(rèn)行 為以在狀態(tài)欄上顯示而非經(jīng)由提示來(lái)顯示。如此,在用戶114經(jīng)由WBA 118在線查看的內(nèi)容或內(nèi)容持有者包括腳本函數(shù)、可執(zhí) 行碼和API請(qǐng)求時(shí),本發(fā)明的各方面向用戶114提供一層保護(hù)。在一個(gè)現(xiàn)有示例中,基于 web的電子郵件收件箱的用戶具有許多方便特征是常見的,如通過(guò)點(diǎn)擊諸如“添加到聯(lián)系 人”等鏈接來(lái)自動(dòng)地將電子郵件地址添加到用戶的聯(lián)系人文件夾。一些電子郵件服務(wù)提供 者通過(guò)向用戶提示用于準(zhǔn)許該許可的分開頁(yè)面來(lái)實(shí)現(xiàn)這一方便特征。用戶一點(diǎn)擊“添加到 聯(lián)系人”鏈接,一些提供者就將自動(dòng)地執(zhí)行所請(qǐng)求的動(dòng)作。然而,一些提供者將自動(dòng)地執(zhí)行 所請(qǐng)求的動(dòng)作而無(wú)需用戶點(diǎn)擊“添加到聯(lián)系人”鏈接;提供者假定用戶希望添加聯(lián)系人并進(jìn) 行添加聯(lián)系人而不詢問(wèn)用戶。如此,用戶不具有對(duì)該用戶的聯(lián)系人文件夾中的私人信息的 控制。本發(fā)明的各實(shí)施例嘗試通過(guò)截取來(lái)自內(nèi)容持有者104的腳本內(nèi)容的函數(shù)調(diào)用或執(zhí)行 請(qǐng)求并在使得用戶涉入之前評(píng)估該函數(shù)調(diào)用來(lái)減輕當(dāng)前系統(tǒng)的這一問(wèn)題和缺點(diǎn)。在另一實(shí)施例中,策略引擎120的副本在客戶機(jī)108上實(shí)例化或被復(fù)制到客戶機(jī) 108,以使得對(duì)函數(shù)調(diào)用的截取可以在客戶機(jī)108本地完成。換言之,本發(fā)明的各實(shí)施例使 得WBA118能夠當(dāng)在運(yùn)行時(shí)呈現(xiàn)或顯示內(nèi)容持有者104時(shí)監(jiān)視內(nèi)容持有者104的腳本內(nèi)容 并截取函數(shù)調(diào)用或API調(diào)用??捎煽蛻魴C(jī)和WBA 118在本地訪問(wèn)的策略引擎120評(píng)估所截 取的函數(shù)調(diào)用或請(qǐng)求。WBA 118接著可根據(jù)所定義的策略來(lái)向用戶114呈現(xiàn)任何后續(xù)UI。 在另一實(shí)施例中,WBA 118或客戶機(jī)108將擴(kuò)充或執(zhí)行內(nèi)容持有者104的腳本內(nèi)容的結(jié)果 進(jìn)一步傳遞到服務(wù)器106。使用圖3作為示例,在消息320希望向用戶的個(gè)性化文件夾列表 或部分添加文件夾時(shí),WBA 118或客戶機(jī)108可以將用戶的判定傳遞回服務(wù)器106以將“購(gòu) 物”文件夾添加到用戶的收件箱文件夾列表或拒絕該請(qǐng)求。在一替換實(shí)施例中,可能不存在來(lái)自用戶或如圖4-9所示的決策的反饋。例如,內(nèi) 容持有者104可以只是顯示內(nèi)容和廣告的網(wǎng)頁(yè)。然而,內(nèi)容持有者104還包括腳本內(nèi)容,如 在呈現(xiàn)或顯示內(nèi)容持有者104時(shí)執(zhí)行動(dòng)態(tài)操作。例如,假定內(nèi)容持有者104是具有文本內(nèi) 容(例如,非腳本內(nèi)容)和腳本內(nèi)容的網(wǎng)頁(yè)。腳本內(nèi)容可以嵌入在諸如電影剪輯等動(dòng)畫對(duì) 象或諸如圖片等圖形對(duì)象中。這些動(dòng)畫對(duì)象或圖形對(duì)象可以是在線廣告的一部分,并且腳 本內(nèi)容可以嘗試從內(nèi)容持有者104的其他部分產(chǎn)生效果,內(nèi)容持有者104可以由或不由服 務(wù)器106管理。如此,當(dāng)呈現(xiàn)或顯示在線廣告時(shí),隨后顯示或呈現(xiàn)腳本內(nèi)容。然而,來(lái)自腳 本內(nèi)容的關(guān)于內(nèi)容持有者104的其他部分的合乎需要的效果可能使WBA 118崩潰、使客戶 機(jī)4108崩潰、或造成其他不合需要的事件。現(xiàn)在參考圖10來(lái)作為以上示例的說(shuō)明,一框圖示出根據(jù)本發(fā)明的一實(shí)施例的腳本內(nèi)容的服務(wù)質(zhì)量的管理和測(cè)量。圖10示出顯示在WBA 118的內(nèi)容顯示區(qū)域306的滑雪 旅行或滑雪度假?gòu)V告402。在一個(gè)示例中,廣告402可以是諸如網(wǎng)頁(yè)等內(nèi)容持有者的一部 分。網(wǎng)頁(yè)還包括在該網(wǎng)頁(yè)上顯示天氣預(yù)報(bào)信息的天氣預(yù)報(bào)模塊404。也可以顯示其他內(nèi)容 或模塊,如新聞更新模塊406和技術(shù)更新模塊408。每一模塊可具有與其相關(guān)聯(lián)的元數(shù)據(jù) 以標(biāo)記或標(biāo)識(shí)該模塊的特征或?qū)傩?。廣告402還包括含有可執(zhí)行碼和函數(shù)調(diào)用的腳本內(nèi)容 410。在該示例中,腳本內(nèi)容410被設(shè)計(jì)成將滑雪勝地天氣預(yù)報(bào)信息添加到內(nèi)容持有者中的 相關(guān)內(nèi)容,以使得用戶可以快速查看靠近該用戶的當(dāng)前顯示頁(yè)上可用的位置處的滑雪勝地 或具滑雪吸引力的地點(diǎn)的天氣情況是什么。一旦添加了天氣預(yù)報(bào)信息,廣告402就將動(dòng)畫 顯示內(nèi)容以示出所廣告的滑雪勝地的圖片。如此,腳本內(nèi)容410可以嘗試讀模塊404的內(nèi)容以查看用戶想要了解天氣的城市。 這一嘗試將觸發(fā)廣告402來(lái)顯示最接近用戶感興趣的城市的滑雪勝地的廣告。本發(fā)明的各 實(shí)施例可準(zhǔn)許這一嘗試/動(dòng)作或者阻塞或抑制這一嘗試/動(dòng)作或操作。如果被批準(zhǔn)了許可, 則許可廣告402以查看有針對(duì)性的廣告。另一方面,廣告402可被抑制而免于顯示有針對(duì) 性的廣告并可以顯示通用廣告,如“美國(guó)頂級(jí)滑雪勝地”,如圖11所示。如此,本發(fā)明的各實(shí) 施例向用戶提供干涉或參與決策的機(jī)會(huì)。本發(fā)明的各方面可以測(cè)量這樣的腳本內(nèi)容的有效性以向內(nèi)容提供者提供有效反 饋?,F(xiàn)在參考圖12,一框圖示出根據(jù)本發(fā)明的一實(shí)施例的與保護(hù)腳本內(nèi)容相關(guān)聯(lián)的示例性 服務(wù)質(zhì)量數(shù)據(jù)502。通過(guò)截取來(lái)自腳本內(nèi)容的每一個(gè)函數(shù)調(diào)用、API請(qǐng)求等,本發(fā)明的各實(shí) 施例可以正確地評(píng)估這些請(qǐng)求并且該評(píng)估被正確地記錄在存儲(chǔ)器區(qū)域122中。例如,圖12 示出可被收集并轉(zhuǎn)發(fā)到內(nèi)容提供者的示例性服務(wù)質(zhì)量度量。例如,服務(wù)質(zhì)量數(shù)據(jù)502包括 各個(gè)字段,諸如“拒絕次數(shù)”、“修改次數(shù)”、“替換次數(shù)”、“用戶修改次數(shù)”、“與其他腳本內(nèi)容 的交互”、以及“不穩(wěn)定事件”。。在圖10-11所示的示例中,對(duì)廣告402的腳本內(nèi)容的拒絕 被當(dāng)作“不穩(wěn)定事件”。在另一實(shí)施例中,WBA 118或客戶機(jī)108可以記錄由于不能顯示內(nèi) 容持有者中的內(nèi)容而造成的WBA 118非預(yù)期異?;虮罎?。這一記錄或日志還可被轉(zhuǎn)發(fā)到服 務(wù)器106以收集“與其他腳本內(nèi)容的交互”的數(shù)據(jù)。在又一示例中,可以響應(yīng)于截取和評(píng)估 來(lái)監(jiān)視、記錄、并存儲(chǔ)腳本內(nèi)容、WBA 118、客戶機(jī)108和/或服務(wù)器106之間的執(zhí)行活動(dòng)。 可以監(jiān)視、評(píng)估、測(cè)量、并稍后向腳本內(nèi)容的提供者提供各執(zhí)行活動(dòng),諸如所提供的解決方 案與在線內(nèi)容的其他部分之間的活動(dòng);所提供的解決方案與在線內(nèi)容的腳本內(nèi)容之間的活 動(dòng);所提供的解決方案與用戶之間的活動(dòng);以及所提供的解決方案、腳本內(nèi)容與WBA 118等 之間的活動(dòng)等。還可以理解,可以定義其他服務(wù)質(zhì)量度量并收集相關(guān)數(shù)據(jù)而不背離本發(fā)明 的范圍和精神。在又一實(shí)施例中,策略引擎120可具有中間截取的所有屬性、方法啟用、以及對(duì)象 工廠,其中在執(zhí)行調(diào)用之前進(jìn)行了確認(rèn)。確認(rèn)可以是動(dòng)態(tài)的(其不僅僅是打開和關(guān)閉)并 且決定過(guò)程可以考慮所有細(xì)節(jié)。例外,策略引擎120自動(dòng)地將不可靠代碼封裝在其自己的 可被多次實(shí)例化的沙箱中,每一次實(shí)例化都可能具有其自己的唯一覆蓋策略。各替換實(shí)施例包括提供超過(guò)只進(jìn)行安全保護(hù)的策略。策略之間的差異可以在執(zhí)行 系統(tǒng)(例如,瀏覽器)之間標(biāo)準(zhǔn)化,并且策略還可以用新API來(lái)擴(kuò)展默認(rèn)能力或使隱錯(cuò)或其 他問(wèn)題對(duì)開發(fā)者透明。對(duì)于基于web的可腳本化內(nèi)容,在應(yīng)用策略之前,資源(例如,HTML、CSS、以及腳本)當(dāng)前需要在服務(wù)器側(cè)轉(zhuǎn)換。這一轉(zhuǎn)換不是確認(rèn)步驟,而僅僅是使客戶機(jī)側(cè)策略能夠在 執(zhí)行時(shí)得到應(yīng)用??梢韵氲?,各替換實(shí)施例可以使該轉(zhuǎn)換步驟成為“發(fā)布”或“呈現(xiàn)”內(nèi)容 的更大過(guò)程的一部分,連同代碼確認(rèn)、版本化、作者簡(jiǎn)檔等。盡管通常是在瀏覽器或WBA 118的上下文中查看的,但圍繞混搭的所有上述挑戰(zhàn) 適用于其中在更大應(yīng)用程序內(nèi)執(zhí)行不可靠?jī)?nèi)容(不管它是腳本、DLL等)的任何環(huán)境。因 此,WBA 118應(yīng)僅被看作一個(gè)可能的實(shí)例。與傳統(tǒng)web小配件(其是在頁(yè)面上孤立的組件)相比,本發(fā)明的各實(shí)施例允許代 碼或腳本內(nèi)容在頁(yè)面本機(jī)執(zhí)行,并取決于策略來(lái)允許訪問(wèn)周圍API或上下文。這一方法還 用作用于網(wǎng)站可擴(kuò)展性的主機(jī)驅(qū)動(dòng)模型?,F(xiàn)在參考圖13,一示例性流程圖示出根據(jù)本發(fā)明的一實(shí)施例的保護(hù)網(wǎng)頁(yè)內(nèi)的腳本 內(nèi)容的操作。例如,在602,定義用于內(nèi)容持有者中的一組件的策略。該組件提供用戶與內(nèi) 容持有者中的其他內(nèi)容之間的交互。所定義的策略指示該組件的執(zhí)行邊界。在604,傳送具 有策略引擎和/或該組件的內(nèi)容持有者以供在主機(jī)設(shè)備上的應(yīng)用程序中呈現(xiàn)。在606,響應(yīng) 于該應(yīng)用程序所進(jìn)行的呈現(xiàn),截取來(lái)自該組件的對(duì)服務(wù)器的資源的請(qǐng)求。這些資源向該組 件提供服務(wù)以與以下至少一個(gè)交互用戶和來(lái)自內(nèi)容持有者的其他內(nèi)容。在608,對(duì)照所定 義的策略中的執(zhí)行邊界來(lái)評(píng)估所截取的請(qǐng)求。在610,響應(yīng)于該評(píng)估來(lái)提供動(dòng)態(tài)解決方案。現(xiàn)在參考圖16,一框圖示出根據(jù)本發(fā)明的一實(shí)施例的保護(hù)客戶機(jī)設(shè)備上的網(wǎng)頁(yè)內(nèi) 的腳本內(nèi)容的操作。圖16在與圖1中類似地描述的一個(gè)實(shí)施例上進(jìn)一步擴(kuò)展??蛻魴C(jī)設(shè) 備702包括本地存儲(chǔ)器704、顯示器706、以及應(yīng)用程序710。本地存儲(chǔ)器704存儲(chǔ)來(lái)自可 由諸如服務(wù)器106等遠(yuǎn)程服務(wù)器訪問(wèn)的遠(yuǎn)程存儲(chǔ)器區(qū)域712的策略708。策略中的每一個(gè) 都定義函數(shù)或應(yīng)用程序的執(zhí)行邊界。在一個(gè)示例中,執(zhí)行邊界定義函數(shù)或應(yīng)用程序的資源 訪問(wèn)限制或者訪問(wèn)屬性。在該實(shí)施例中,應(yīng)用程序710(例如,WBA 118)呈現(xiàn)從遠(yuǎn)程計(jì)算設(shè) 備傳送到客戶機(jī)設(shè)備702的內(nèi)容。在一個(gè)示例中,該內(nèi)容可以聚集在內(nèi)容持有者(例如,網(wǎng) 頁(yè))中,并且該內(nèi)容可以是包括用標(biāo)記語(yǔ)言編寫的內(nèi)容、具有圖形和多媒體的內(nèi)容等的在 線內(nèi)容。在712,在呈現(xiàn)該內(nèi)容后,響應(yīng)于呈現(xiàn)、提供、或加載該在線內(nèi)容,應(yīng)用程序710標(biāo) 識(shí)內(nèi)容持有者的web腳本內(nèi)容。如上所述,所標(biāo)識(shí)的web腳本內(nèi)容被配置成發(fā)起執(zhí)行啟用 以與在線內(nèi)容的其他部分進(jìn)行交互。例如,執(zhí)行啟用可包括函數(shù)調(diào)用、函數(shù)請(qǐng)求、API啟用、 API調(diào)用等。執(zhí)行啟用還可以請(qǐng)求其他資源而不背離本發(fā)明各實(shí)施例的范圍。在714,應(yīng)用 程序710截取從所標(biāo)識(shí)的web腳本內(nèi)容發(fā)起的執(zhí)行啟用。在716,應(yīng)用程序710可以進(jìn)一步標(biāo)識(shí)所截取的執(zhí)行啟用中包括的參數(shù)。所標(biāo)識(shí) 的參數(shù)可以從應(yīng)用程序或客戶機(jī)設(shè)備請(qǐng)求資源以與在線內(nèi)容的其他部分進(jìn)行交互,以及其 他操作。在另一實(shí)施例中,所標(biāo)識(shí)的參數(shù)可以從應(yīng)用程序或客戶機(jī)設(shè)備請(qǐng)求資源以與諸如 用戶114等用戶進(jìn)行交互。在718,應(yīng)用程序710對(duì)照本地存儲(chǔ)器704中存儲(chǔ)的每一策略 的執(zhí)行邊界來(lái)評(píng)估所標(biāo)識(shí)的參數(shù)。例如,應(yīng)用程序710對(duì)照?qǐng)?zhí)行邊界來(lái)分析所標(biāo)識(shí)的參數(shù) 并確定是否可以在應(yīng)用程序710或客戶機(jī)設(shè)備702的執(zhí)行環(huán)境內(nèi)執(zhí)行該web腳本內(nèi)容。在 720,響應(yīng)于所評(píng)估的參數(shù),應(yīng)用程序710向該應(yīng)用程序提供動(dòng)態(tài)解決方案。如上所述,該解 決方案可涉及修改、替換、移除、或擴(kuò)充所發(fā)起的執(zhí)行啟用。在722,顯示器706向用戶顯示 所提供的解決方案722。出于說(shuō)明的目的,程序和如操作系統(tǒng)等其他可執(zhí)行程序組件在此被示為各離散的框。然而,可以認(rèn)識(shí)到,這樣的程序和組件在不同時(shí)間駐留在計(jì)算機(jī)的不同存儲(chǔ)組件中,并 由計(jì)算機(jī)的數(shù)據(jù)處理器執(zhí)行。盡管結(jié)合包括客戶機(jī)設(shè)備702的示例性計(jì)算系統(tǒng)環(huán)境進(jìn)行了描述,但本發(fā)明的實(shí) 施例可用于眾多其他通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置。計(jì)算系統(tǒng)環(huán)境不旨在對(duì)本發(fā)明的任 何方面的使用范圍或功能提出任何限制。而且,計(jì)算系統(tǒng)環(huán)境不應(yīng)被解釋為對(duì)在示例性操 作環(huán)境中所示組件的任何一個(gè)或組合有任何依賴性或要求。適用于本發(fā)明各方面的公知的 計(jì)算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝 上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子產(chǎn)品、移動(dòng)電話、 網(wǎng)絡(luò)PC、小型機(jī)、大型機(jī)、包括上述系統(tǒng)或設(shè)備中的任一個(gè)的分布式計(jì)算機(jī)環(huán)境等。本發(fā)明的各實(shí)施例可以在由一個(gè)或多個(gè)計(jì)算機(jī)或其他設(shè)備執(zhí)行的諸如程序模塊 等計(jì)算機(jī)可執(zhí)行指令的通用上下文中描述。一般而言,程序模塊包括但不限于,執(zhí)行特定的 任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件和數(shù)據(jù)結(jié)構(gòu)。本發(fā)明的各方面也 可以在其中任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)現(xiàn)。在分 布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)器存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介 質(zhì)中。軟件體系結(jié)構(gòu)的上下文中的接口包括軟件模塊、組件、代碼部分、或其他計(jì)算機(jī)可 執(zhí)行指令的序列。該接口包括例如第一模塊,該模塊訪問(wèn)代表第一模塊執(zhí)行計(jì)算任務(wù)的第 二模塊。在一個(gè)示例中,該第一和第二模塊包括諸如由操作系統(tǒng)提供的應(yīng)用程序編程接口 (API)、組件對(duì)象模型(COM)接口(例如,用于對(duì)等應(yīng)用程序通信)和可擴(kuò)展標(biāo)記語(yǔ)言元數(shù) 據(jù)交換格式(XMI)接口(例如,用于web服務(wù)之間的通信)。接口可以是緊耦合的同步實(shí)現(xiàn),諸如在Java 2平臺(tái)企業(yè)版(J2EE)、C0M、或分布式 COM(DCOM)的示例中。另選地或另外地,接口可以是松耦合的異步實(shí)現(xiàn),諸如在web服務(wù)中 (例如,使用簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)。一般而言,接口包括以下特性的任何組合緊耦合、松耦 合、同步、和異步。此外,接口可遵循標(biāo)準(zhǔn)協(xié)議、專有協(xié)議、或標(biāo)準(zhǔn)和專有協(xié)議的任何組合。此處所描述的接口都可以是單個(gè)接口的一部分,或可被實(shí)現(xiàn)為獨(dú)立的接口或其中 的任何組合。接口可以本地或遠(yuǎn)程地執(zhí)行以提供功能。此外,接口可包括比此處所示出或 描述的更多或更少的功能。本發(fā)明的各實(shí)施例可以用計(jì)算機(jī)可執(zhí)行指令來(lái)實(shí)現(xiàn)。計(jì)算機(jī)可執(zhí)行指令可以被組 織為一個(gè)或多個(gè)計(jì)算機(jī)可執(zhí)行組件或模塊。本發(fā)明的各方面可以用任何數(shù)量的這些組件或 模塊及其任何組織來(lái)實(shí)現(xiàn)。例如,本發(fā)明的各方面不限于在各附圖中示出和本文中描述的 特定的計(jì)算機(jī)可執(zhí)行指令或者特定的組件或模塊。本發(fā)明的其他實(shí)施例可以包括具有比在 本文中示出和描述的更多或更少的功能的不同計(jì)算機(jī)可執(zhí)行指令或組件。除非另有指定,否則此處所示和所述的本發(fā)明各實(shí)施例的操作的執(zhí)行或進(jìn)行的次 序并不重要。即,除非另有指明,否則各操作可按照任何次序執(zhí)行,且本發(fā)明的實(shí)施例可以 包括比本文所公開的更多或更少的操作。例如,構(gòu)想了在另一操作之前、同時(shí)或之后執(zhí)行或 進(jìn)行一特定操作是在本發(fā)明各方面的范圍之內(nèi)的。當(dāng)介紹本發(fā)明或其實(shí)施例的各方面的各元素時(shí),冠詞“一”、“一個(gè)”、“該”和“所述” 指的是存在該元素的一個(gè)或多個(gè)。術(shù)語(yǔ)“包括”、“包含”、“具有”旨在是包括性的并且指的 是可以有除所列元素之外的其他元素。
在詳細(xì)描述了本發(fā)明的各方面之后,可以清楚,修改和變化是有可能的,而不背離 所附權(quán)利要求書中定義的本發(fā)明各方面的范圍。不背離本發(fā)明各方面的范圍的情況下,可 對(duì)以上構(gòu)造、產(chǎn)品和方法進(jìn)行各種改變,以上描述中所包含的以及在附圖中所示出的所有 一切旨在應(yīng)被解釋為說(shuō)明性并且沒(méi)有限制意義。附錄 A示例實(shí)現(xiàn)以下示例示出從源代碼到安全代碼的轉(zhuǎn)換以及該安全代碼的執(zhí)行,其在圖14中 示出(最內(nèi)部的矩形“CODE SAMPLE(代碼示例)” 1402)。在圖14中,考慮以下源“代碼”。<html xmlns= 〃 http://www.w3.org/1999/xhtml" ><head><style type =" text/ess" >body{background:lightblue ;margin:Opx ;}</style><title>Sample</title></head><body><h2>Code Sample</h2>
Current Time:<span id =" currentTime" ></span><br>Click inside to see the body HTML</p><script type=" text/javascript" >document, body. attachEvent(" onclick" , function(){alert (document, body. innerHTML);})window, setlnterval (function (){document. getElementByld ( " currentTime " ). innerText = new Date ();},10)〈/script〉</body></html>如可看到的,以上源代碼包含CSS、HTML、以及JavaScript。CSS對(duì)<body>標(biāo)簽應(yīng)用樣式,并且腳本將事件附連到“body(正文)”。HTML包含具有“id”的〈span〉??梢?看到,在以上源代碼的轉(zhuǎn)換和執(zhí)行期間,運(yùn)行時(shí)將1.確保該代碼引用的“body”是結(jié)果 頁(yè)面中的代碼的沙箱容器(在該實(shí)施例中,沙箱是<div>),如在圖15中所示。這適用于 CSS樣式以及腳本引用(attachEvent (附連事件)和innerHTML (內(nèi)部HTML));以及2.將 〈span〉部分的“id”重命名成對(duì)該代碼唯一的id。這對(duì)該代碼是透明的,所以它將仍然訪 問(wèn)“currentTime (當(dāng)前時(shí)間)”。運(yùn)行時(shí)注意映射。在轉(zhuǎn)換以上代碼時(shí),產(chǎn)生以下代碼$Policy. registerCode (function (a){s. addSheet({〃 %body%" : {〃 margin-left" ·.'’ Opx",〃 margin-right “:〃 Opx〃 , “ margiη-top“ 〃 Opx" ,〃 margin-bottom" 〃 Opx" ,〃 background" 〃 Iightblu
e"⑴;var b = a. g,c = a. s,d = a. i.e = a. η,f = a. f ;c (b (document,〃 documentElement〃),〃 innerHTML",〃 <H2>Cod eSample</H2XP>Current Time:<SPAN id = currentTime>Tue Sep 25 09:05:08PDT 2007</SPANXBR>Click inside to see the body HTML</P>〃 );d(b (document, " body" ), " attachEvent" , [“ onclick", f (function (){d (window, " alert" , [b (b (document, " body" ),〃 innerHT ML")])})]);d(window, " setlnterval" , [f(function(){c (d (document, " ge tE 1 ementBy I d ", [“currentTime" ]), 〃 innerText" , e(Date,[]))}),10]);c (document, " title",‘‘ Sample")},“ SampleCode 〃 )當(dāng)前實(shí)施例將原始HTML轉(zhuǎn)換成方法調(diào)用^egisterCode (注冊(cè)代碼)。如可看到
的,該方法調(diào)用可以被安全地注入容器頁(yè)。它們僅是對(duì)運(yùn)行時(shí)的調(diào)用。轉(zhuǎn)換步驟將CSS轉(zhuǎn) 換成“JS0N”格式。這一 JSON對(duì)象用作運(yùn)行時(shí)的輸入。 一個(gè)實(shí)施例簡(jiǎn)單地將HTML從源轉(zhuǎn)換成“documentElement (文檔元素)”的 “innerHTML”的屬性值。運(yùn)行時(shí)將確保HTML是安全的并符合主要策略。注意將來(lái)實(shí)施例可
15以將源HTML轉(zhuǎn)換成其他格式,如JS0N。在該實(shí)施例中,并非如上所示地調(diào)用“addSheet (添 加表單),,,而是將設(shè)置傳遞到regi SterCode。JavaScript代碼被轉(zhuǎn)換成對(duì)運(yùn)行時(shí)方法“b”、“c”、“d”等的調(diào)用。這些是確保屬 性設(shè)定/取得、方法啟用和對(duì)象創(chuàng)建符合這些策略的運(yùn)行時(shí)方法。在經(jīng)轉(zhuǎn)換的代碼在所得頁(yè)面中“運(yùn)行”時(shí),運(yùn)行時(shí)產(chǎn)生以下代碼段〈STYLE〉· ms_idl {BACKGROUND:Iightblue ;MARGIN:Opx ;_$SafeType:ruleStyle}</STYLE>源CSS使用“標(biāo)簽選擇器”句法來(lái)將樣式應(yīng)用于“〈body〉”標(biāo)簽。這已被轉(zhuǎn)換成應(yīng) 用于具有“ms_idl”類的元素的“類選擇器”。現(xiàn)在是<div>部分成為經(jīng)轉(zhuǎn)換的HTML的“沙 箱”。<DIV class =〃 ms_idl〃 id = TestGadgetBlock style =〃 ..."_$SafeType = " tag" ><H2>Code Sample</H2>
Current Time:<SPAN id = ms_idlcurrentTime_$SafeType = “ tag “ >Tue S印 25 09:38:07PDT 2007</SPANXBR>Click insideto see the body HTML</PX/DIV>如可看到地,運(yùn)行時(shí)用“ms_idl”對(duì)<span>id加了前綴以確保其是唯一的。當(dāng) 然,沙箱代碼不知道這一點(diǎn)已經(jīng)發(fā)生。在每一定時(shí)器計(jì)時(shí),其都設(shè)定“currentTime”的 innerText (內(nèi)部文本)。"lightblue (淡藍(lán))”的CSS背景色只應(yīng)用于分配給該源的沙箱區(qū)域。在點(diǎn)擊進(jìn)入 該區(qū)域時(shí),代碼示出包含“body”的警告框。
權(quán)利要求
一種評(píng)估web交互式組件的方法,所述方法包括為內(nèi)容持有者中的組件定義策略,在呈現(xiàn)所述組件時(shí)所述組件提供用戶與所述內(nèi)容持有者中的其他內(nèi)容之間的交互,所定義的策略指示所述組件在運(yùn)行時(shí)期間的執(zhí)行邊界,所述執(zhí)行邊界定義所述組件的資源訪問(wèn);傳送具有所述組件的內(nèi)容持有者以在主機(jī)設(shè)備上的應(yīng)用程序中呈現(xiàn);響應(yīng)于所述應(yīng)用程序所進(jìn)行的呈現(xiàn),截取來(lái)自所述組件的對(duì)服務(wù)器的資源的請(qǐng)求,其中所述資源向所述組件提供服務(wù)以與以下至少一個(gè)進(jìn)行交互所述用戶和來(lái)自所述內(nèi)容持有者的其他內(nèi)容;對(duì)照所定義的策略中的執(zhí)行邊界來(lái)評(píng)估所截取的請(qǐng)求;以及響應(yīng)于所評(píng)估的請(qǐng)求來(lái)向所述服務(wù)器或所述應(yīng)用程序提供動(dòng)態(tài)解決方案。
2.如權(quán)利要求1所述的方法,其特征在于,提供所述動(dòng)態(tài)解決方案包括以下至少一個(gè) 在所請(qǐng)求的資源能在所述執(zhí)行邊界內(nèi)執(zhí)行的情況下準(zhǔn)許所述請(qǐng)求,在所請(qǐng)求的資源不能在 所述執(zhí)行邊界內(nèi)執(zhí)行的情況下拒絕所述請(qǐng)求,在準(zhǔn)許所述請(qǐng)求之前擴(kuò)充所述請(qǐng)求,響應(yīng)于 另一請(qǐng)求在提供替換解決方案之前用該另一請(qǐng)求替換所述請(qǐng)求,以及從所述用戶請(qǐng)求用于 準(zhǔn)許或拒絕所述請(qǐng)求的用戶輸入。
3.如權(quán)利要求1所述的方法,其特征在于,還包括提供用于接收來(lái)自所述組件的所述 請(qǐng)求的應(yīng)用程序編程接口(API),并且其中截取包括截取來(lái)自所述API的對(duì)所述服務(wù)器的 資源的請(qǐng)求。
4.如權(quán)利要求1所述的方法,其特征在于,還包括實(shí)例化所述組件的多個(gè)實(shí)例。
5.如權(quán)利要求4所述的方法,其特征在于,截取包括截取來(lái)自所述組件的所述多個(gè)實(shí) 例化實(shí)例中的每一個(gè)的對(duì)服務(wù)器的資源的請(qǐng)求。
6.如權(quán)利要求1所述的方法,其特征在于,還包括響應(yīng)于所述評(píng)估修改來(lái)自所述組件 的請(qǐng)求,所述修改所述請(qǐng)求包括重寫所述請(qǐng)求以使得所述請(qǐng)求處于基于所定義的策略的執(zhí) 行邊界內(nèi)。
7.一種評(píng)估腳本內(nèi)容的安全性的系統(tǒng),所述系統(tǒng)包括被配置成執(zhí)行計(jì)算機(jī)可執(zhí)行指令的處理器,所述指令用于為網(wǎng)頁(yè)中的所述腳本內(nèi)容定義策略,所述腳本內(nèi)容提供用戶與所述網(wǎng)頁(yè)內(nèi)的其他內(nèi)容 之間的交互,所定義的策略指示所述腳本內(nèi)容的執(zhí)行邊界,所述執(zhí)行邊界定義所述腳本內(nèi) 容的資源訪問(wèn);對(duì)照所定義的策略中的執(zhí)行邊界來(lái)評(píng)估所述腳本內(nèi)容;以及 在運(yùn)行時(shí),響應(yīng)于所述評(píng)估來(lái)轉(zhuǎn)換所述網(wǎng)頁(yè)的至少一部分;以及 用于傳送具有所述腳本內(nèi)容的所述經(jīng)轉(zhuǎn)換的部分的所述網(wǎng)頁(yè)以在主機(jī)設(shè)備上的應(yīng)用 程序中呈現(xiàn)的界面。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述處理器還被配置成響應(yīng)于所述評(píng)估向 所述服務(wù)器或所述應(yīng)用程序提供動(dòng)態(tài)解決方案。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述動(dòng)態(tài)解決方案包括以下至少一個(gè)在所 述網(wǎng)頁(yè)的所述經(jīng)轉(zhuǎn)換的部分能在所述執(zhí)行邊界內(nèi)執(zhí)行的情況下準(zhǔn)許請(qǐng)求,在所述網(wǎng)頁(yè)的所 述經(jīng)轉(zhuǎn)換的部分不能在所述執(zhí)行邊界內(nèi)執(zhí)行的情況下拒絕請(qǐng)求,在準(zhǔn)許請(qǐng)求之前擴(kuò)充所述 請(qǐng)求,響應(yīng)于另一請(qǐng)求在提供替換解決方案之前用該另一請(qǐng)求替換所述請(qǐng)求,以及從所述用戶請(qǐng)求用于準(zhǔn)許或拒絕來(lái)自所述網(wǎng)頁(yè)的所述經(jīng)轉(zhuǎn)換的部分的請(qǐng)求的用戶輸入。
10.如權(quán)利要求8所述的系統(tǒng),其特征在于,還包括用于接收來(lái)自所述腳本內(nèi)容的請(qǐng)求 的應(yīng)用程序編程接口(API),并且所述處理器執(zhí)行所述API以處理接收到的對(duì)服務(wù)器的資 源的請(qǐng)求。
11.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述處理器還被配置成將所述腳本內(nèi)容的 至少一部分轉(zhuǎn)換成要在運(yùn)行時(shí)執(zhí)行的函數(shù)的屬性值。
12.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述處理器還被配置成實(shí)例化所述腳本內(nèi) 容的多個(gè)實(shí)例。
13.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述處理器還被配置成在轉(zhuǎn)換期間修改所 述腳本內(nèi)容,其中所述處理器重寫所述腳本內(nèi)容以符合另一腳本內(nèi)容,并且所述另一腳本 內(nèi)容處于基于所定義的策略的執(zhí)行邊界內(nèi)。
14.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述處理器被配置成將所述腳本內(nèi)容的 所述經(jīng)轉(zhuǎn)換的部分替換成映射另一腳本內(nèi)容的另一屬性值,所述另一屬性值當(dāng)在運(yùn)行時(shí)執(zhí) 行時(shí)落入所定義的策略的執(zhí)行邊界內(nèi)。
15.一種保護(hù)web交互式函數(shù)的方法,所述方法包括為網(wǎng)頁(yè)中的所述web交互式函數(shù)定義策略,所述web交互式函數(shù)向用戶和所述網(wǎng)頁(yè)中 的其他內(nèi)容提供交互,所定義的策略指示所述web交互式函數(shù)的執(zhí)行邊界,所述執(zhí)行邊界 定義所述web交互式函數(shù)的資源訪問(wèn);傳送所述網(wǎng)頁(yè)以在主機(jī)設(shè)備上的應(yīng)用程序中呈現(xiàn);響應(yīng)于所述應(yīng)用程序所進(jìn)行的呈現(xiàn),監(jiān)視所述web交互式函數(shù)對(duì)與所述用戶或所述網(wǎng) 頁(yè)中的其他內(nèi)容的交互的請(qǐng)求;截取所監(jiān)視的來(lái)自所述web交互式函數(shù)的對(duì)服務(wù)器的資源的請(qǐng)求,其中所述資源向所 述web交互式函數(shù)提供服務(wù)以與以下至少一個(gè)交互所述用戶和來(lái)自所述網(wǎng)頁(yè)的其他內(nèi) 容;對(duì)照所定義的策略中的執(zhí)行邊界來(lái)評(píng)估所截取的請(qǐng)求;以及響應(yīng)于所述評(píng)估來(lái)向所述服務(wù)器或所述應(yīng)用程序提供動(dòng)態(tài)解決方案。
16.如權(quán)利要求15所述的方法,其特征在于,提供所述動(dòng)態(tài)解決方案包括以下至少一 個(gè)在所請(qǐng)求的資源能在所述執(zhí)行邊界內(nèi)執(zhí)行的情況下準(zhǔn)許所述請(qǐng)求,在所請(qǐng)求的資源不 能在所述執(zhí)行邊界內(nèi)執(zhí)行的情況下拒絕所述請(qǐng)求,在準(zhǔn)許所述請(qǐng)求之前擴(kuò)充所述請(qǐng)求,響 應(yīng)于另一請(qǐng)求在提供替換解決方案之前用該另一請(qǐng)求替換所述請(qǐng)求,以及從所述用戶請(qǐng)求 用于準(zhǔn)許或拒絕所述請(qǐng)求的用戶輸入。
17.如權(quán)利要求15所述的方法,其特征在于,還包括提供用于接收來(lái)自所述函數(shù)的所 述請(qǐng)求的應(yīng)用程序編程接口(API),并且其中截取包括截取來(lái)自所述API的對(duì)資源的請(qǐng)求。
18.如權(quán)利要求15所述的方法,其特征在于,還包括在所述應(yīng)用程序呈現(xiàn)多個(gè)網(wǎng)頁(yè)時(shí) 實(shí)例化所述函數(shù)的多個(gè)實(shí)例。
19.如權(quán)利要求18所述的方法,其特征在于,截取包括截取來(lái)自所述組件的所述多個(gè) 實(shí)例化實(shí)例中的每一個(gè)的對(duì)所述服務(wù)器的資源的請(qǐng)求。
20.如權(quán)利要求15所述的方法,其特征在于,還包括響應(yīng)于所述評(píng)估修改來(lái)自所述函 數(shù)的請(qǐng)求,所述修改所述請(qǐng)求包括重寫所述請(qǐng)求以使得所述請(qǐng)求處于基于所定義的策略的執(zhí)行邊界內(nèi)。
全文摘要
一種評(píng)估腳本內(nèi)容的安全性的系統(tǒng)。處理器執(zhí)行用于為網(wǎng)頁(yè)中的腳本內(nèi)容定義策略的計(jì)算機(jī)可執(zhí)行指令。該腳本內(nèi)容提供用戶與網(wǎng)頁(yè)內(nèi)的其他內(nèi)容之間的交互。所定義的策略指示腳本內(nèi)容的執(zhí)行邊界。處理器還對(duì)照所定義的策略中的執(zhí)行邊界來(lái)評(píng)估腳本內(nèi)容。在運(yùn)行時(shí),處理器響應(yīng)于該評(píng)估來(lái)轉(zhuǎn)換網(wǎng)頁(yè)的至少一部分。一界面?zhèn)魉途哂心_本內(nèi)容的經(jīng)轉(zhuǎn)換的部分的網(wǎng)頁(yè)以在主機(jī)設(shè)備上的應(yīng)用程序中呈現(xiàn)。
文檔編號(hào)G06F15/16GK101911054SQ200880124688
公開日2010年12月8日 申請(qǐng)日期2008年12月17日 優(yōu)先權(quán)日2008年1月11日
發(fā)明者R·K·洛根, S·M·約克, S·伊薩克斯 申請(qǐng)人:微軟公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
锡林郭勒盟| 南充市| 德惠市| 桐梓县| 普宁市| 长汀县| 盘山县| 屏山县| 姜堰市| 新竹市| 延川县| 华安县| 泰顺县| 迁安市| 濉溪县| 永城市| 多伦县| 上栗县| 平谷区| 合江县| 托克逊县| 枣强县| 名山县| 嘉黎县| 海安县| 石首市| 盐津县| 茂名市| 三台县| 固始县| 深水埗区| 南陵县| 利川市| 庆元县| 图片| 涞水县| 兰坪| 光山县| 布拖县| 宁明县| 宝清县|