專利名稱:已聲明的起源策略的制作方法
已聲明的起源策略背景相同起源策略(SOP)是用于客戶機側(cè)腳本的安全措施,其阻止從一個“起源”加載的文檔或腳本獲得或設(shè)置來自不同起源的文檔的特性。有了 S0P,瀏覽器不應(yīng)信任從任意網(wǎng)站加載的內(nèi)容。在SOP中,網(wǎng)頁在“沙箱”中運行,且被阻止訪問來自其他起源的資源。沒有了這個保護,惡意網(wǎng)頁可能損害另一網(wǎng)頁的機密性或完整性。術(shù)語“起源”使用域名、協(xié)議,和端口來定義。如果這三個值相同,則兩個頁面屬于同一起源。為了說明,下表 1 給出了相對于URL“http://www. example, com/dir/page. html” 的起源比較的示例。標注為“結(jié)果”的欄示出相應(yīng)URL的SOP的結(jié)果。
URL
http://www.example.com/dir2/other.html
結(jié)果
原因
成功
相同協(xié)議和主機表 1概述提供本概述是為了以精簡的形式介紹將在以下詳細描述中進一步描述的一些概念。本概述并非旨在標識出所要求保護的主題的關(guān)鍵特征或必要特征。本概述亦非旨在用于限制所要求保護的主題的范圍。提供了已聲明的起源策略。首先,可以接收包括一應(yīng)用程序被允許訪問的諸地址的多個記錄??梢詫⑺邮盏亩鄠€記錄放在一清單中。接著,可以接收包含一地址的請求, 并將其與清單中的多個記錄進行比較。當清單中的多個記錄之一與該地址匹配時,或當對清單中的多個記錄之一是否與該地址匹配遇到模糊性時,可以允許訪問該地址。當清單中的多個記錄無一與該地址匹配時,可以拒絕訪問該地址。此外,當該應(yīng)用程序被更新、卸載, 或重新安裝時,可以拒絕改變清單中的多個記錄的任一個的任何請求。前述概括描述和以下詳細描述兩者都提供示例且都只是說明性的。因此,前述概括描述和以下詳細描述不應(yīng)被認為是限制性的。此外,除了此處所闡明的那些之外還可提供其他特征或變型。例如,各實施方式可涉及在詳細描述中描述的各種特征組合和子組合。附圖簡述合并在本發(fā)明中并構(gòu)成其一部分的附圖示出本發(fā)明的各種實施方式。在附圖中
圖1是一操作環(huán)境的框圖;圖2是用于提供已聲明的起源策略的方法的流程圖;以及圖3是包括計算設(shè)備的系統(tǒng)的框圖。詳細描述以下詳細描述參考各個附圖。只要可能,就在附圖和以下描述中使用相同的附圖標記來指示相同或類似的要素。盡管可能描述了本發(fā)明的各實施方式,但修改、改編和其他實現(xiàn)也是可能的。例如,可以對附圖中所示出的要素進行置換、添加、或修改,且可以通過對所公開的方法置換、重新排序、或添加階段來修改此處所描述的方法。因此,以下詳細描述并不限制本發(fā)明。相反,本發(fā)明的正確范圍由所附權(quán)利要求書確定。常規(guī)web瀏覽器試圖使用SOP安全策略來控制腳本能訪問什么站點。SOP試圖防止攻擊者通過在用戶上下文中發(fā)送HTTP請求或通過假裝是合法網(wǎng)站來扮演合法網(wǎng)站來扮演合法用戶。除了讓開發(fā)者難以試圖使用來自多個站點的web服務(wù)建立網(wǎng)頁混搭以外,SOP 具有眾多安全問題。豐富因特網(wǎng)應(yīng)用程序(RIA)可以包括具有傳統(tǒng)桌面應(yīng)用特征和功能的web應(yīng)用。 RIA可以將用戶所需的處理轉(zhuǎn)移到web客戶端的接口,但是將大量數(shù)據(jù)(即維持程序、數(shù)據(jù)等的狀態(tài))留在應(yīng)用服務(wù)器上。RIA可以在web瀏覽器中運行,可以不需要軟件安裝,且可以在象沙箱那樣的安全環(huán)境中本地地運行。RIA可以包括網(wǎng)頁的本地拷貝,其可以基于本地地獲得的信息執(zhí)行不同功能。SOP可以是RIA的一個問題,因為RIA網(wǎng)頁可以不來自于與RIA網(wǎng)頁使用的web服務(wù)的相同的站點。SOP可能阻塞了 RIA可做的大部分功能。如果 SOP被完全移除而沒有一些替換,則RIA或提供web服務(wù)的已受損主機中的隱錯可能使用 RIA來攻擊終端用戶。例如,已受損主機可以將RIA重定向以向攻擊者的主機發(fā)送認證信息。因此,對RIA而言,需要對SOP的替代。圖1示出了一操作環(huán)境100的框圖。如圖1所示,操作環(huán)境100可以包括豐富因特網(wǎng)應(yīng)用程序(RIA) 105、清單110、操作系統(tǒng)115,以及站點120。根據(jù)本發(fā)明的實施例,清單110可以列出作為RIA 105的一部分的所有文件。在清單110中,RIA 105也可以列出 RIA 105可以訪問的所有站點(例如,站點120)。清單110可以包含,例如,RIA 105所允許的主機名、協(xié)議,以及端口。如果RIA 105的進程中的任何事(腳本、網(wǎng)頁所使用的控件、 攻擊者放置到系統(tǒng)上的惡意代碼,等)企圖聯(lián)系(即,請求)站點120,則在站點120沒有列在清單110中的情況下,操作系統(tǒng)115可以阻止該請求。然而,如果RIA 105的進程中的任何事企圖聯(lián)系(即,請求)站點120,則在站點120列在清單110中的情況下,操作系統(tǒng)115 可以允許該請求。根據(jù)本發(fā)明的實施例,開發(fā)者可以通過,例如,站點名、協(xié)議,或端口(每一個都允許通配符),在清單110中聲明可以被RIA 105訪問的所有站點。到未在清單110中聲明的任何其他主機或站點的網(wǎng)絡(luò)連接無一可以在進程(例如,下載將幀指向不同URL的圖像, ActiveX控件進行自定義功能,等)中被允許。清單110中的站點列表可以不被通過例如更新或卸載/重新安裝進程來改變。本發(fā)明的實施例可以具有優(yōu)于SOP的幾個益處。例如,SOP不阻塞所有網(wǎng)絡(luò)連接, 僅僅阻塞來自腳本的特定連接類型。因此,惡意代碼能夠使用非標準方式來聯(lián)系其他服務(wù)器。根據(jù)本發(fā)明的實施例的已聲明的起源策略可以阻塞到未聲明主機的所有網(wǎng)絡(luò)連接,而不管它們的源。SOP可以阻塞腳本聯(lián)系web服務(wù)的正常方式,因此開發(fā)者被強制使用不可靠的或困難的方式來避免該保護。根據(jù)本發(fā)明的實施例的已聲明的起源策略可以允許開發(fā)者聯(lián)系他們所選擇的任何web服務(wù)而不受限制。SOP可以被不同瀏覽器以不同方式實現(xiàn),且并不總是清楚它如何工作。根據(jù)本發(fā)明的實施例的已聲明的起源策略可以是簡單和直接的。此外,本發(fā)明的實施例可以具有優(yōu)于crossdomain.xml的幾個益處。例如, Crossdomain. xml支持可以被局限在Adobe Flash,因此正常的web瀏覽場景可能被排除。 根據(jù)本發(fā)明的實施例的已聲明的起源策略可以應(yīng)用到在瀏覽器中使用的任何技術(shù)。此外, Crossdomain. xml文件可能在沒有顧客交互的情況下在服務(wù)器上改變,因此,客戶機可能不能夠清楚領(lǐng)會日復(fù)一日什么可能被允許。根據(jù)本發(fā)明的實施例的已聲明的起源策略可以在客戶機上存儲主機列表(例如清單110),因此設(shè)備管理員可以對客戶機被允許連接到何處有清楚的概念。圖2是闡述根據(jù)本發(fā)明的實施例的用于提供已聲明的起源策略的方法200中所涉及的各概略階段的流程圖。方法200可使用如將在以下參考圖3更詳細地描述的計算設(shè)備 300來實現(xiàn)。以下將更詳細地描述實現(xiàn)方法200的各階段的方式。方法200可以在起始框 205開始,并進展到階段210,在那里計算設(shè)備300可以接收包含RIA 105被允許訪問的諸地址的多個記錄。例如,開發(fā)者可以確定RIA 105僅需訪問特定站點。隨后,開發(fā)者可以提供包含RIA 105被允許訪問的諸地址的多個記錄。如果開發(fā)者允許訪問站點120,則提供站點120的地址。如果開發(fā)者不允許訪問站點120,則不提供站點120的地址。從階段210,在那里計算設(shè)備300接收包含RIA 105被允許訪問的諸地址的多個記錄,方法200可以前進到階段220,在那里計算設(shè)備300可以將所接收到的多個記錄放置在清單110中。如以下更詳細地描述的,清單110和RIA105兩者可以駐留在計算設(shè)備300 上。RIA可以包括兩個文件,清單110和在清單110中指定的主HTML文檔。清單110 可以包括聲明各RIA 105特性的XML文檔,該特性包括,例如,啟動時加載的主HTML文檔的名稱。主HTML文檔可以存在于計算設(shè)備300上,并存在于和清單110相同的目錄中。如果清單105或主HTML文檔丟失或不可訪問,RIA 105可能不能執(zhí)行且可以向用戶顯示合適的
錯誤消息。一旦計算設(shè)備300在階段220將所接收到的多個記錄放置在清單110中,方法200 可以繼續(xù)到階段230,在那里計算設(shè)備300可以接收包含一地址的請求。例如,在RIA 105 執(zhí)行期間,代碼可以指向RIA 105應(yīng)該連接的站點。這代碼可以包括腳本、網(wǎng)頁使用的控件或甚至惡意代碼。本發(fā)明的實施例可以包括跨站點導(dǎo)航限制。例如,操作環(huán)境100可以針對特權(quán)提升狀況進行保護,并且不應(yīng)被濫用為web瀏覽器的一般目的。指向主HTML文檔外的所有導(dǎo)航鏈接可以在相對于RIA 105的進程以外執(zhí)行以達到這個目的。這可以意味著, 例如,啟動hternet Explorer來處理這些導(dǎo)航請求。指向RIA 105內(nèi)(可能是文檔的不同部分)的導(dǎo)航鏈接可以如預(yù)料地運作,將用戶帶到主HTML文檔的那個部分。
在計算設(shè)備300在階段230接收到包含地址的請求之后,方法200可以進展到?jīng)Q策框?qū)?,在那里計算設(shè)備300可以將所接收到的地址與在清單110中的多個記錄進行比較。如以下更詳細地描述的,“通配符”可以被用來代表多個記錄的一部分。常規(guī)SOP狀態(tài),例如,運行在網(wǎng)頁上的JavMcript代碼可能不與不是起源于相同網(wǎng)站的任何源交互。存在這個安全策略的原因是阻止惡意web程序員創(chuàng)建盜竊web用戶的信息或損害他們隱私的頁面。這個常規(guī)策略也有使得web開發(fā)困難的副作用。由于RIA是從本地設(shè)備調(diào)用的,所以瀏覽器起源可能被缺省設(shè)置為“本地主機(localhost)”。盡管這對于未連接應(yīng)用程序尚可,它可能對于需要訪問網(wǎng)絡(luò)資源的那些應(yīng)用程序造成問題,因為那些請求可能使常規(guī)SOP失敗。根據(jù)本發(fā)明的實施例,已聲明的起源策略可以規(guī)定RIA 105 可以在清單110中聲明所有起源站點。無論何時需要實施SOP策略都可以檢查該列表,并且與該列表匹配的請求可以被允許通過。落在列表之外的請求可以如常規(guī)SOP情況中那樣被阻止。例如,RIA 105可以聯(lián)系gasbuddy. com web服務(wù)來檢索給定城市的汽油價格。因此,RIA 105的開發(fā)者可以向清單110添加以下域gasbuddy. com在一個更復(fù)雜的示例中,RIA 105可以使用maps. live, com的API顯示給定城市的地圖。這些API聯(lián)系跨maps. live, com和virtualearth. net的不同子域的幾個地圖小塊(tile)服務(wù)器maps. live, comstl. maps. live, comst2. maps. live, comrO. ortho. tiles, virtualearth. netrl. ortho. tiles, virtualearth. net在此情況下,RIA 105的開發(fā)者可以向清單110添加以下域maps. live, comtile, virtualearth. net注意,星號(即,通配符)被用來使開發(fā)者省得把各個和每個域/子域列出。具體地,有效域條目可以是i)域名(即foo. com)或ii)單個星號后面跟隨句點以及由至少兩個非通配符令牌組成的有效域名/后綴。以下是一些有效條目的示例foo. com氺.foo. com氺· foo. bar. com氺· domain, co. uk以下是一些無效條目的示例*foo. com〔星號后沒有句點〕*. com〔星號后只有一個令牌〕*〔星號后沒有句點〕.〔不是有效域名〕. com〔不是有效域名〕
從決策框M0,如果計算設(shè)備300確定清單110中的多個記錄之一與該地址匹配, 則方法200可以前進到階段250,在那里計算設(shè)備300可以允許訪問該地址。例如,如果RIA 105的進程中的任何事(腳本、網(wǎng)頁所使用的控件、攻擊者放置到系統(tǒng)上的惡意代碼,等)企圖聯(lián)系(即,請求)站點120,則在站點120列在清單110中的情況下,操作系統(tǒng)115可以允許該請求。如前所述,當確定清單110中的多個記錄之一與該地址匹配時,在清單110中的多個記錄中的通配符可以被考慮。例如,通配符可以被用來代替網(wǎng)站名稱、協(xié)議或端口。從決策框M0,如果計算設(shè)備300確定對清單110中的多個記錄之一是否與該地址匹配遇到模糊性時,方法200可以前進到階段沈0,在那里計算設(shè)備300可以允許訪問該地址。例如,在模糊性的情況下,根據(jù)本發(fā)明的已聲明的起源策略可能在因缺省導(dǎo)致的更多許可性的方面出錯。例如,在接續(xù)上述示例的以下列表中,對live, com的任何子域的請求 (包括直接對live, com的請求)可以通過live, com氺· live, com從決策框M0,如果計算設(shè)備300確定清單110中的多個記錄無一與該地址匹配, 則方法200可以前進到階段270,在那里計算設(shè)備300可以拒絕訪問該地址。例如,如果RIA 105的進程中的任何事(腳本、網(wǎng)頁所使用的控件、攻擊者放置到系統(tǒng)上的惡意代碼,等)企圖聯(lián)系(即,請求)站點120,則在站點120未列在清單110中的情況下,操作系統(tǒng)115可以拒絕該請求。如前所述,當確定清單110中的多個記錄之一與地址匹配時,在清單110中的多個記錄中的通配符可以被考慮。例如,通配符可以被用來代替網(wǎng)站名稱、協(xié)議或端口。從階段250、階段沈0,或階段270,方法200可以前進到階段觀0,在那里計算設(shè)備 300可以拒絕改變清單110中的多個記錄的任何一個的任何請求。例如,RIA 105可以被更新、卸載和重新安裝。在這個情況下,作為已添加安全特征,當RIA 105被更新、卸載和重新安裝時,可以拒絕改變清單110中的多個記錄的任何一個的任何請求。一旦計算設(shè)備300 在階段觀0中拒絕了任何請求,方法200然后就可在階段290處結(jié)束。根據(jù)本發(fā)明的實施例可包括用于提供已聲明的起源策略的系統(tǒng)。該系統(tǒng)可包括存儲器存儲和耦合到該存儲器存儲的處理單元。該處理單元可用于接收包含一地址的請求, 并將所接收的地址和清單中的多個記錄進行比較。接著,當清單中的多個記錄之一與該地址匹配,該處理單元可以允許對該地址的訪問,而當清單中的多個記錄無一與該地址匹配, 該處理單元拒絕對該地址的訪問。根據(jù)本發(fā)明的另一實施例可包括用于提供已聲明的起源策略的系統(tǒng)。該系統(tǒng)可包括存儲器存儲和耦合到該存儲器存儲的處理單元。該處理單元可用于接收包括一應(yīng)用程序被允許訪問的諸地址的多個記錄。該處理單元可以接著將所接收的多個記錄放置在清單中。該清單和該應(yīng)用程序可以駐留在同一計算設(shè)備中。該存儲器可以接著接收包含一地址的請求,并將所接收的地址和清單中的多個記錄進行比較。接著,該處理單元可以i)當清單中的多個記錄之一與該地址匹配時允許訪問該地址;ii)當清單中的多個記錄之一是否與該地址匹配遇到模糊性時,允許訪問該地址;iii)當清單中的多個記錄無一與該地址匹配時,拒絕訪問該地址。當該應(yīng)用程序被更新、卸載或重新安裝時,該處理單元還可以拒絕改變清單中的多個記錄的任一個的任何請求。根據(jù)本發(fā)明的又一實施例可包括用于提供已聲明的起源策略的系統(tǒng)。該系統(tǒng)可包括存儲器存儲和耦合到該存儲器存儲的處理單元。該處理單元可用于接收包括一應(yīng)用程序被允許訪問的諸地址的多個記錄,并將所接收當多個記錄放置在清單中。接著,該處理單元可以從請求訪問該地址的應(yīng)用程序接收包括一地址的請求。該應(yīng)用程序可以包括,例如,腳本、網(wǎng)頁使用的控件,或惡意代碼。接著,該處理單元可以將所接收的地址和清單中的多個記錄進行比較。當清單中的多個記錄之一與該地址匹配時,該處理單元可以接著允許訪問該地址。當確定清單中的多個記錄之一與地址匹配時,在清單中的多個記錄中的至少一個通配符可以被考慮。該至少一個通配符可以被用來代替網(wǎng)站名稱、協(xié)議或端口。當清單中的多個記錄之一是否與該地址匹配遇到模糊性時,該處理單元可以允許訪問該地址,或當清單中的多個記錄無一與該地址匹配時,拒絕訪問該地址。當該應(yīng)用程序被更新、卸載,或重新安裝時,該處理單元可以拒絕改變清單中的多個記錄的任一個的任何請求。圖3是包括計算設(shè)備300的系統(tǒng)的框圖。根據(jù)本發(fā)明的一個實施方式,上述存儲器存儲和處理單元可以在諸如圖3的計算設(shè)備300等計算設(shè)備中實現(xiàn)??梢允褂糜布?、軟件或固件的任何合適的組合來實現(xiàn)該存儲器存儲和處理單元。例如,存儲器存儲和處理單元可以用計算設(shè)備300或結(jié)合計算設(shè)備300的其他計算設(shè)備318中的任意一個來實現(xiàn)。站點120可以包括其他計算設(shè)備318之一。根據(jù)本發(fā)明的各實施方式,上述系統(tǒng)、設(shè)備和處理器是示例,而其他系統(tǒng)、設(shè)備和處理器可以包括上述存儲器存儲和處理單元。此外,計算設(shè)備300可包括用于上述環(huán)境100的操作環(huán)境。操作環(huán)境100可以在其他環(huán)境中操作并且不限于計算設(shè)備300。參考圖3,根據(jù)本發(fā)明的一實施方式的系統(tǒng)可包括計算設(shè)備,諸如計算設(shè)備300。 在一基本配置中,計算設(shè)備300可以包括至少一個處理單元302和系統(tǒng)存儲器304。取決于計算設(shè)備的配置和類型,系統(tǒng)存儲器304可以包括,但不限于,易失性存儲器(例如,隨機存取存儲器(RAM))、非易失性存儲器(例如,只讀存儲器(ROM))、閃存或任何組合。系統(tǒng)存儲器304可以包括操作系統(tǒng)115、一個或多個編程模塊306,且可以包括程序數(shù)據(jù)307,并且可以包括清單110。操作系統(tǒng)115,例如,可適用于控制計算設(shè)備300的操作。在一個實施例中,編程模塊306可包括例如,RIA 105。此外,本發(fā)明的各實施方式可以結(jié)合圖形庫、其他操作系統(tǒng)、或任何其他應(yīng)用程序來實踐,且不限于任何特定應(yīng)用程序或系統(tǒng)。該基本配置在圖3中由虛線308內(nèi)的組件示出。計算設(shè)備300可具有附加特征或功能。例如,計算設(shè)備300還可包括附加數(shù)據(jù)存儲設(shè)備(可移動和/或不可移動),諸如例如磁盤、光盤或磁帶。這些附加存儲在圖3中由可移動存儲309和不可移動存儲310示出。計算機存儲介質(zhì)可包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術(shù)實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。系統(tǒng)存儲器304、可移動存儲309和不可移動存儲310都是計算機存儲介質(zhì)的示例(即,存儲器存儲)。計算機存儲介質(zhì)可以包括,但不限于,RAM、ROM、 電可擦除只讀存儲器(EEPROM)、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設(shè)備、或可用于存儲信息且可以由計算設(shè)備300訪問的任何其它介質(zhì)。任何這樣的計算機存儲介質(zhì)都可以是設(shè)備300的一部分。 計算設(shè)備300還可以具有輸入設(shè)備312,如鍵盤、鼠標、筆、聲音輸入設(shè)備、觸摸輸入設(shè)備等。 還可包括諸如顯示器、揚聲器、打印機等輸出設(shè)備314。上述設(shè)備是示例且可以使用其他設(shè)備。
計算設(shè)備300還可包含可允許設(shè)備300諸如通過例如內(nèi)聯(lián)網(wǎng)或因特網(wǎng)等分布式計算環(huán)境中的網(wǎng)絡(luò)來與其他計算設(shè)備318進行通信的通信連接316。通信連接316是通信介質(zhì)的一個示例。通信介質(zhì)通常由諸如載波或其他傳輸機制等已調(diào)制數(shù)據(jù)信號中的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)來體現(xiàn),并包括任何信息傳遞介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”可以描述以對該信號中的信息進行編碼的方式設(shè)定或者改變其一個或多個特征的信號。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接線連接等有線介質(zhì),以及諸如聲學(xué)、射頻(RF)、紅外線和其他無線介質(zhì)等無線介質(zhì)。如此處所使用的術(shù)語“計算機可讀介質(zhì)“可以包括存儲介質(zhì)和通信介質(zhì)兩者。如上所述,可以在系統(tǒng)存儲器304中存儲包括操作系統(tǒng)115在內(nèi)的多個程序模塊和數(shù)據(jù)文件。當在處理單元302上執(zhí)行時,編程模塊306(例如,RIA 105)可執(zhí)行各過程,包括例如,如上所述的方法200的一個或多個階段。前述過程是示例,且處理單元302可執(zhí)行其他過程。根據(jù)本發(fā)明的各實施方式可以使用的其他編程模塊可以包括電子郵件和聯(lián)系人應(yīng)用程序、文字處理應(yīng)用程序、電子表格應(yīng)用程序、數(shù)據(jù)庫應(yīng)用程序、幻燈片演示應(yīng)用程序、 繪圖或計算機輔助應(yīng)用程序等。一般而言,根據(jù)本發(fā)明的各實施方式,程序模塊可以包括可以執(zhí)行特定任務(wù)或可以實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)和其他類型的結(jié)構(gòu)。此外,本發(fā)明的各實施方式可用其他計算機系統(tǒng)配置來實踐,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)或可編程消費電子產(chǎn)品、小型機、大型計算機等。本發(fā)明的各實施方式也可以在其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠程處理設(shè)備執(zhí)行的分布式計算環(huán)境中實現(xiàn)。在分布式計算環(huán)境中,程序模塊可以位于本地和遠程存儲器存儲設(shè)備中。此外,本發(fā)明的各實施方式可在包括分立電子元件的電路、包含邏輯門的封裝或集成電子芯片、利用微處理器的電路、或在包含電子元件或微處理器的單個芯片上實現(xiàn)。本發(fā)明的各實施方式還可以使用能夠執(zhí)行諸如,例如,AND(與)、0R(或)和NOT(非)等邏輯運算的其他技術(shù)來實踐,包括但不限于,機械、光學(xué)、流體和量子技術(shù)。另外,本發(fā)明的各實施方式可以在通用計算機或任何其他電路或系統(tǒng)中實現(xiàn)。例如,本發(fā)明的各實施方式可被實現(xiàn)為計算機進程(方法)、計算系統(tǒng)或諸如計算機程序產(chǎn)品或計算機可讀介質(zhì)等制品。計算機程序產(chǎn)品可以是計算機系統(tǒng)可讀并編碼了用于執(zhí)行計算機過程的指令的計算機程序的計算機存儲介質(zhì)。計算機程序產(chǎn)品還可以是計算系統(tǒng)可讀并編碼了用于執(zhí)行計算機過程的指令的計算機程序的載體上的傳播信號。因此, 本發(fā)明能以硬件和/或軟件(包括固件、常駐軟件、微碼等)來具體化。換言之,本發(fā)明的各實施方式可以采用其上包含有供指令執(zhí)行系統(tǒng)使用或結(jié)合其使用的計算機可使用或計算機可讀程序代碼的計算機可使用或計算機可讀存儲介質(zhì)上的計算機程序產(chǎn)品的形式。計算機可使用或計算機可讀介質(zhì)可以是可包含、存儲、通信、傳播、或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或結(jié)合其使用的任何介質(zhì)。計算機可使用或計算機可讀介質(zhì)可以是,例如,但不限于,電、磁、光、電磁、紅外、 或半導(dǎo)體系統(tǒng)、裝置、設(shè)備或傳播介質(zhì)。更具體的計算機可讀介質(zhì)示例(非窮盡列表),計算機可讀介質(zhì)可以包括以下具有一條或多條導(dǎo)線的電連接、便攜式計算機盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPR0M或閃存)、光纖、和便攜式壓縮盤只讀存儲器(CD-ROM)。注意,計算機可使用或計算機可讀介質(zhì)甚至可以是其上打印有程序的紙張或另一合適的介質(zhì),因為程序可以經(jīng)由例如對紙張或其他介質(zhì)的光學(xué)掃描而電子地捕獲,隨后如有必要被編譯、解釋,或以其他合適的方式處理,并隨后存儲在計算機存儲器中。以上參考例如根據(jù)本發(fā)明的各實施方式的方法、系統(tǒng)和計算機程序產(chǎn)品的框圖和 /或操作圖示描述了本發(fā)明的各實施方式??蛑兴⒚鞯母鞴δ?動作可以按不同于任何流程圖所示的次序出現(xiàn)。例如,取決于所涉及的功能/動作,連續(xù)示出的兩個框?qū)嶋H上可以基本上同時執(zhí)行,或者這些框有時可以按相反的次序來執(zhí)行。盡管已經(jīng)描述了本發(fā)明的某些實施方式,但也可能存在其他實施方式。此外,雖然本發(fā)明的各實施方式被描述為與存儲在存儲器和其他存儲介質(zhì)中的數(shù)據(jù)相關(guān)聯(lián),但數(shù)據(jù)還可以被存儲在或讀取自其他類型的計算機可讀介質(zhì),如輔助存儲設(shè)備,像硬盤、軟盤、或 CD-ROM ;來自因特網(wǎng)的載波;或其他形式的RAM或ROM。此外,所公開的各方法的各階段可以按任何方式來修改,包括通過對各階段重新排序和/或插入或刪除階段,而不背離本發(fā)明。包括此處所包括的代碼中的版權(quán)在內(nèi)的所有權(quán)利都歸屬于申請人并且是本申請人的財產(chǎn)。申請人保持并保留此處所包括的代碼中的所有權(quán)利,并授予僅關(guān)于所授權(quán)的專利的再現(xiàn)且未出于其他目的再現(xiàn)該材料的許可。雖然本說明書包括各示例,但本發(fā)明的范圍由所附權(quán)利要求書來指示。此外,盡管用對結(jié)構(gòu)特征和/或方法動作專用的語言描述了本說明書,但權(quán)利要求書并不限于上述特征或動作。相反,上述具體特征和動作是作為本發(fā)明的各實施方式的示例來公開的。
權(quán)利要求
1.一種用于提供已聲明的起源策略的方法,所述方法包括接收包含地址的請求;將所接收的地址與清單(110)中的多個記錄進行比較;當所述清單(110)中的所述多個記錄之一匹配所述地址時,允許訪問所述地址;以及當所述清單(110)中的所述多個記錄無一匹配所述地址時,拒絕訪問所述地址。
2.如權(quán)利要求1所述的方法,其特征在于,接收包含所述地址的請求包括從請求訪問所述地址的應(yīng)用程序(10 接收包含所述地址的請求。
3.如權(quán)利要求1所述的方法,其特征在于,接收包含所述地址的請求包括從請求訪問所述地址的應(yīng)用程序(10 接收包含所述地址的請求,其中所述應(yīng)用程序(10 包括以下至少一個腳本、網(wǎng)頁(120)使用的控件,以及惡意代碼。
4.如權(quán)利要求1所述的方法,其特征在于,將所接收的地址與所述清單(110)中的所述多個記錄進行比較包括,將所接收的地址與所述清單(110)中的所述多個記錄進行比較, 其中通配符被用于代表所述多個記錄的一部分。
5.如權(quán)利要求1所述的方法,其特征在于,當所述清單(110)中的所述多個記錄之一匹配所述地址時允許訪問所述地址包括,在確定所述清單(110)中的所述多個記錄之一匹配所述地址時,考慮所述清單(110)中的所述多個記錄中的通配符。
6.如權(quán)利要求1所述的方法,其特征在于,當所述清單(110)中的所述多個記錄之一匹配所述地址時允許訪問所述地址包括,在確定所述清單(110)中的所述多個記錄之一匹配所述地址時,考慮所述清單(110)中的所述多個記錄中的至少一個通配符,所述至少一個通配符被來代替網(wǎng)站名稱。
7.如權(quán)利要求1所述的方法,其特征在于,當所述清單(110)中的所述多個記錄之一匹配所述地址時允許訪問所述地址包括,在確定所述清單(110)中的所述多個記錄之一匹配所述地址時,考慮所述清單(110)中的所述多個記錄中的至少一個通配符,所述至少一個通配符被來代替協(xié)議。
8.如權(quán)利要求1所述的方法,其特征在于,當所述清單(110)中的所述多個記錄之一匹配所述地址時允許訪問所述地址包括,在確定所述清單(110)中的所述多個記錄之一匹配所述地址時,考慮所述清單(110)中的所述多個記錄中的至少一個通配符,所述至少一個通配符被來代替端口。
9.如權(quán)利要求1所述的方法,其特征在于,當所述清單(110)中的所述多個記錄無一匹配所述地址時拒絕訪問所述地址包括,在確定所述清單(110)中的所述多個記錄無一匹配所述地址時,考慮所述清單(110)中的所述多個記錄中的通配符。
10.如權(quán)利要求1所述的方法,其特征在于,當所述清單(110)中的所述多個記錄無一匹配所述地址時拒絕訪問所述地址包括,在確定所述清單(110)中的所述多個記錄無一匹配所述地址時,考慮所述清單(110)中的所述多個記錄中的至少一個通配符,所述至少一個通配符被來代替網(wǎng)站名稱。
11.如權(quán)利要求1所述的方法,其特征在于,當所述清單(110)中的所述多個記錄無一匹配所述地址時拒絕訪問所述地址包括,在確定所述清單(110)中的所述多個記錄無一匹配所述地址時,考慮所述清單(110)中的所述多個記錄中的至少一個通配符,所述至少一個通配符被來代替協(xié)議。
12.如權(quán)利要求1所述的方法,其特征在于,當所述清單(110)中的所述多個記錄無一匹配所述地址時拒絕訪問所述地址包括,在確定所述清單(110)中的所述多個記錄無一匹配所述地址時,考慮所述清單(110)中的所述多個記錄中的至少一個通配符,所述至少一個通配符被來代替端口。
13.如權(quán)利要求1所述的方法,其特征在于,還包括,當應(yīng)用程序(105)被進行更新、卸載,和重新安裝之一時,拒絕對所述清單(110)中的所述多個記錄進行改變的任何請求。
14.如權(quán)利要求1所述的方法,其特征在于,還包括當對所述清單(110)中的所述多個記錄之一是否與所述地址匹配遇到模糊性時,允許訪問所述地址。
15.如權(quán)利要求1所述的方法,其特征在于,還包括接收包含應(yīng)用程序(10 被允許訪問的諸地址的所述多個記錄;將所接收的多個記錄放置在所述清單(110)中。
16.如權(quán)利要求15所述的方法,其特征在于,將所接收的多個記錄放置在所述清單 (110)中包括,將所接收的多個記錄放置在所述清單(110)中,其中所述清單(110)和所述應(yīng)用程序(10 駐留在同一計算設(shè)備上。
17.一種存儲一組指令的計算機可讀介質(zhì),所述一組指令在被執(zhí)行時執(zhí)行一種用于提供已聲明的起源策略的方法,由所述一組指令執(zhí)行的方法包括接收包含應(yīng)用程序(10 被允許訪問的諸地址的多個記錄;將所接收的多個記錄放置在清單(110)中,其中將所接收的多個記錄放置在所述清單 (110)中包括,將所接收的多個記錄放置在所述清單(110)中其中所述清單(110)和所述應(yīng)用程序(10 駐留在同一計算設(shè)備上;接收包含地址的請求;將所接收的地址與所述清單(110)中的所述多個記錄進行比較;當所述清單(110)中的所述多個記錄之一匹配所述地址時,允許訪問所述地址;以及當對所述清單(110)中的所述多個記錄之一是否與所述地址匹配遇到模糊性時,允許訪問所述地址;當所述清單(110)中的所述多個記錄無一匹配所述地址時,拒絕訪問所述地址;以及當所述應(yīng)用程序(10 被進行更新、卸載,和重新安裝之一時,拒絕對所述清單(110) 中的所述多個記錄進行改變的任何請求。
18.如權(quán)利要求17所述的計算機可讀介質(zhì),其特征在于,當所述清單(110)中的所述多個記錄之一匹配所述地址時允許訪問所述地址包括,在確定所述清單(110)中的所述多個記錄之一匹配所述地址時,考慮所述清單(110)中的所述多個記錄中的至少一個通配符, 所述至少一個通配符被來代替以下至少一個網(wǎng)站名稱、協(xié)議,以及端口。
19.如權(quán)利要求17所述的計算機可讀介質(zhì),其特征在于,當所述清單(110)中的所述多個記錄無一匹配所述地址時拒絕訪問所述地址包括,在確定所述清單(110)中的所述多個記錄無一匹配所述地址時,考慮所述清單(110)中的所述多個記錄中的至少一個通配符, 所述至少一個通配符被來代替以下至少一個網(wǎng)站名稱、協(xié)議,以及端口。
20.一種用于提供已聲明的起源策略的系統(tǒng),所述系統(tǒng)包括存儲器存儲304 ;以及耦合到所述存儲器存儲(304)的處理單元(302),其中所述處理單元可用于接收包含應(yīng)用程序(10 被允許訪問的諸地址的多個記錄; 將所接收的多個記錄放置在所述清單(110)中;從請求訪問一地址的所述應(yīng)用程序(10 接收包含所述地址的請求,其中所述應(yīng)用程序(10 包括以下至少一個腳本、網(wǎng)頁(120)使用的控件,以及惡意代碼; 將所接收的地址與所述清單(110)中的所述多個記錄進行比較; 當所述清單(110)中的所述多個記錄之一匹配所述地址時允許訪問所述地址,其中所述處理單元(302)被操作用于允許訪問包括所述處理單元被操作用于在確定所述清單 (110)中的所述多個記錄之一匹配所述地址時,考慮所述清單(110)中的所述多個記錄中的至少一個通配符,所述至少一個通配符被來代替以下至少之一網(wǎng)站名稱、協(xié)議,以及端 Π ;當對所述清單(110)中的所述多個記錄之一是否與所述地址匹配遇到模糊性時,允許訪問所述地址;當所述清單(110)中的所述多個記錄無一匹配所述地址時,拒絕訪問所述地址;以及當所述應(yīng)用程序(10 被進行更新、卸載,和重新安裝之一時,拒絕對所述清單(110) 中的所述多個記錄進行改變的任何請求。
全文摘要
提供了已聲明的起源策略。首先,可以接收包括一應(yīng)用程序被允許訪問的諸地址的多個記錄??梢詫⑺邮盏亩鄠€記錄放在一清單中。接著,可以接收包含一地址的請求,并將其與清單中的多個記錄進行比較。當清單中的多個記錄之一與該地址匹配時,或當對清單中的多個記錄之一是否與該地址匹配遇到模糊性時,可以允許訪問該地址。當清單中的多個記錄無一與該地址匹配時,可以拒絕訪問該地址。此外,當該應(yīng)用程序被更新、卸載,或重新安裝時,可以拒絕任何對清單中的多個記錄的任一個進行改變的請求。
文檔編號G06F7/04GK102216936SQ200980134285
公開日2011年10月12日 申請日期2009年6月25日 優(yōu)先權(quán)日2008年6月27日
發(fā)明者A·哈萬, M·G·萊昂斯, R·J·拉米基 申請人:微軟公司