本發(fā)明涉及計算機
技術領域:
,尤其涉及一種在瀏覽器中加載網(wǎng)頁的方法和裝置。
背景技術:
:互聯(lián)網(wǎng)發(fā)展日益壯大,已經(jīng)逐步滲透入人們的日常生活和工作中,人們已經(jīng)習慣于通過計算機、手機、平板電腦、pda(personaldigitalassistant,個人數(shù)字助理)等電子終端設備來瀏覽網(wǎng)頁,獲取所需信息。當用戶通過電子終端設備中的瀏覽器瀏覽網(wǎng)頁時,web服務器(網(wǎng)站服務器、或網(wǎng)絡服務器)會獲取一些與用戶端瀏覽器相關的參數(shù),這些參數(shù)組合在一起,其唯一性概率很高,類似指紋;因此,通常我們把這些參數(shù)的組合叫做瀏覽器指紋。進而,web服務器所獲取的用戶端瀏覽器指紋的信息,可能被用于對用戶端進行身份識別、跟蹤等,導致對用戶隱私的侵犯?,F(xiàn)有瀏覽器對于用戶隱私的防護,主要通過清除一些瀏覽器的使用記錄,例如清除賬戶口令記錄的方式,在一定程度上實現(xiàn)對用戶隱私的保護,但這無法解決web服務器因獲取瀏覽器指紋的信息所帶來的用戶隱私被侵犯的隱患。技術實現(xiàn)要素:本發(fā)明實施例提供一種在瀏覽器中加載網(wǎng)頁的方法和裝置,用以解決web服務器因獲取瀏覽器指紋的信息所帶來的用戶隱私被侵犯的隱患。為了解決這一問題,第一方面,本發(fā)明實施例提供了一種在瀏覽器中加載網(wǎng)頁的方法,包括:在收到用戶加載網(wǎng)頁的請求消息后,隨機生成第一http頭消息;向web服務器發(fā)送http請求消息,所述http請求消息包含第一 http頭消息;接收web服務器發(fā)送的http響應消息,所述http響應消息中包含網(wǎng)頁數(shù)據(jù);加載網(wǎng)頁數(shù)據(jù)。第二方面,本發(fā)明實施例提供了一種在瀏覽器中加載網(wǎng)頁的裝置,包括:生成模塊,用于在收到用戶加載網(wǎng)頁的請求消息后,隨機生成第一http頭消息;發(fā)送模塊,用于向web服務器發(fā)送http請求消息,所述http請求消息包含所述第一http頭消息;接收模塊,用于接收所述web服務器發(fā)送的http響應消息,所述http響應消息中包含網(wǎng)頁數(shù)據(jù);加載模塊,用于加載所述網(wǎng)頁數(shù)據(jù)。本發(fā)明實施例提供的在瀏覽器中加載網(wǎng)頁的方法和裝置,由于發(fā)送給服務器的http請求消息中的頭消息是隨機生成的,頭消息中所包括的header參數(shù)信息并不是用戶端瀏覽器真實的參數(shù)信息,因此,即使web服務器獲取了這些header參數(shù)信息,也無法根據(jù)這些隨機生成的header參數(shù)信息準確地確定真實的用戶端,從而增加了網(wǎng)站通過瀏覽器指紋識別用戶端身份的難度,進而可以保護用戶隱私,也即能夠解決web服務器因獲取瀏覽器指紋的信息所帶來的用戶隱私被侵犯的隱患。第三方面,本發(fā)明實施例提供了一種在瀏覽器中加載網(wǎng)頁的方法,包括:在收到用戶加載網(wǎng)頁的請求消息后,向web服務器發(fā)送http請求消息;接收所述web服務器發(fā)送的http響應消息,所述http響應消息中包含網(wǎng)頁數(shù)據(jù);加載所述網(wǎng)頁數(shù)據(jù),包括:執(zhí)行所述網(wǎng)頁數(shù)據(jù)中的腳本,所述腳本包含用于向web服務器返回至少一種瀏覽器參數(shù)的代碼;當執(zhí)行所述腳本中向web服務器返回一種瀏覽器參數(shù)的代碼時,調(diào)用獲取該種瀏覽器參數(shù)的接口,以隨機生成該種瀏覽器參數(shù)的信息,并將隨 機生成的該種瀏覽器參數(shù)的信息發(fā)送至web服務器。第四方面,本發(fā)明實施例提供了一種在瀏覽器中加載網(wǎng)頁的裝置,包括:發(fā)送模塊,用于在收到用戶加載網(wǎng)頁的請求消息后,向web服務器發(fā)送http請求消息;接收模塊,用于接收所述web服務器發(fā)送的http響應消息,所述http響應消息中包含網(wǎng)頁數(shù)據(jù);加載模塊,用于加載所述網(wǎng)頁數(shù)據(jù),包括:執(zhí)行所述網(wǎng)頁數(shù)據(jù)中的腳本,所述腳本包含用于向web服務器返回至少一種瀏覽器參數(shù)的代碼;調(diào)用模塊,用于當加載模塊執(zhí)行所述腳本中向web服務器返回一種瀏覽器參數(shù)的代碼時,調(diào)用獲取該種瀏覽器參數(shù)的接口,以隨機生成該種瀏覽器參數(shù)的信息;所述發(fā)送模塊還用于將隨機生成的該種瀏覽器參數(shù)的信息發(fā)送至web服務器。本發(fā)明實施例提供的在瀏覽器中加載網(wǎng)頁的方法和裝置,由于發(fā)送給web服務器的瀏覽器參數(shù)的信息不是其真實的參數(shù)信息,而是隨機變化的,因此,若該瀏覽器參數(shù)屬于瀏覽器指紋,則服務器獲取到的是一個隨機變化的、不真實的“瀏覽器指紋”,進而不良網(wǎng)站無法根據(jù)這些不真實的瀏覽器指紋確定用戶端,從而增加了網(wǎng)站通過瀏覽器指紋識別用戶端身份的難度,進而可以保護用戶隱私,也即能夠解決web服務器因獲取瀏覽器指紋的信息所帶來的用戶隱私被侵犯的隱患。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例提供的通過使用瀏覽器訪問網(wǎng)頁的過程示意圖;圖2為本發(fā)明實施例提供的一種在瀏覽器中加載網(wǎng)頁的方法流程圖之 一;圖3為本發(fā)明實施例提供的一種在瀏覽器中加載網(wǎng)頁的方法流程圖之二;圖4為本發(fā)明實施例提供的一種在瀏覽器中加載網(wǎng)頁的方法流程圖之三;圖5為本發(fā)明實施例提供的一種在瀏覽器中加載網(wǎng)頁的裝置框圖;圖6為本發(fā)明實施例提供的另一種在瀏覽器中加載網(wǎng)頁的裝置框圖。具體實施方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。為了便于清楚描述本發(fā)明實施例的技術方案,在本發(fā)明的實施例中,采用了“第一”、“第二”等字樣對功能和作用基本相同的相同項或相似項進行區(qū)分,本領域技術人員可以理解“第一”、“第二”等字樣并不對數(shù)量和執(zhí)行次序進行限定。參考圖1,用戶使用瀏覽器訪問網(wǎng)頁的過程是:用戶對瀏覽器發(fā)出加載網(wǎng)頁的請求,此后,瀏覽器向web服務器發(fā)送http(超文本傳輸協(xié)議,hypertexttransferprotocol)請求消息,web服務器在找到相應的網(wǎng)頁數(shù)據(jù)后,向瀏覽器返回攜帶這些網(wǎng)頁數(shù)據(jù)的http響應消息,以便瀏覽器加載網(wǎng)頁。當然,本領域人員應該理解,該瀏覽器可安裝在電子終端設備中,這些電子終端設備可以是計算機、手機、平板電腦、pda(personaldigitalassistant,個人數(shù)字助理)等終端設備。在上述用戶使用瀏覽器訪問網(wǎng)頁的過程中,web服務器會獲取到用戶端瀏覽器對應的瀏覽器指紋,進而導致用戶隱私可能被侵犯的風險。該瀏覽器指紋由一些參數(shù)組合而成,這些參數(shù)大致可分為兩類:第一類參數(shù)是header參數(shù),故名思議為包含在http頭消息(http請求消息包括 http頭消息和消息體)中的參數(shù),如user-agent(ua,用戶代理)、httpaccept(可接受的數(shù)據(jù)形式)、cookies等;第二類參數(shù)是在瀏覽器加載網(wǎng)頁數(shù)據(jù)時發(fā)送給web服務器的,該網(wǎng)頁數(shù)據(jù)是web服務器按照http請求消息返回給用戶端瀏覽器的,有時web服務器返回的網(wǎng)頁數(shù)據(jù)中往往會包含一些不良的腳本,當瀏覽器執(zhí)行這些不良腳本時,就會將不良腳本所要獲取的一些瀏覽器參數(shù)發(fā)送給web服務器。web服務器根據(jù)所接收到的上述參數(shù)(瀏覽器指紋),有很高的概率能夠確定到具體的用戶端瀏覽器,有時這個概率可以高達99%以上。因此,瀏覽器指紋可能被用于對用戶端進行身份識別、跟蹤等目的,而導致對用戶隱私的侵犯?,F(xiàn)有技術中已公開的瀏覽器指紋可以包括以下參數(shù),如表1所示:表1參數(shù)名熵plugins(插件)15.4fonts(字體)13.9user-agent(用戶代理)10.0httpaccept(可接受的數(shù)據(jù)形式)6.09screenresolution(屏幕分辨率)4.83timezone(時區(qū))3.04supercookies(超級cookies)2.12cookiesenabled(開啟cookies功能)0.353其中,plugins表示瀏覽器安裝的插件參數(shù),屬于上述的第二類參數(shù)。fonts表示瀏覽器所在操作系統(tǒng)安裝的字體參數(shù),屬于上述的第二類參數(shù)。user-agent表示瀏覽器的基本信息,是瀏覽器header參數(shù)中的一種,與瀏覽器的種類和操作系統(tǒng)的種類有關,屬于上述的第一類參數(shù)。httpaccept表示瀏覽器可以接受的數(shù)據(jù)形式,是瀏覽器header參數(shù)中的一種,屬于上述的第一類參數(shù)。screenresolution表示瀏覽器所在終端設備的顯示器分辨率參數(shù),屬 于上述的第二類參數(shù)。timezone表示瀏覽器所在的時區(qū),屬于上述的第二類參數(shù)。但時區(qū)數(shù)據(jù)不應被更改和阻止獲取,而且其熵值較小,因此本發(fā)明可以不考慮該參數(shù)。supercookies、cookiesenabled都是cookies參數(shù),是瀏覽器header參數(shù)中的一部分,屬于上述的第一類參數(shù),但是這些參數(shù)是現(xiàn)有多數(shù)瀏覽器可以選擇關閉的,即瀏覽器可以提供關閉其中的cookies功能,那么http請求中的http頭消息中就不會包含cookies參數(shù)。表1中的熵值表示其對應的參數(shù)對生成唯一性瀏覽器指紋的貢獻大小,熵值越大的參數(shù),其對生成唯一性瀏覽器指紋的貢獻越大。上述表1中列出的參數(shù),上述第一類參數(shù)包括于http頭消息中,瀏覽器向web服務器發(fā)送http請求信息時,web服務器就會獲得這部分參數(shù)信息;上述第二類參數(shù)是在瀏覽器執(zhí)行網(wǎng)頁數(shù)據(jù)中的腳本時發(fā)送給web服務器的。web服務器獲得這些參數(shù)后,這些參數(shù)組合生成瀏覽器指紋。需要說明的是,并不是說web服務器獲得上述所有參數(shù)的組合才能生成瀏覽器指紋,可以是只獲得其中一部分參數(shù)生成瀏覽器指紋,只不過這種情況下生成的瀏覽器指紋的唯一性概率較低。web服務器獲得的上述參數(shù)的熵值的總和越大,所生成的瀏覽器指紋的唯一性概率越高。當然,對生成唯一性瀏覽器指紋有貢獻的參數(shù)并不僅限于上述的這些參數(shù),還有一些參數(shù)也對生成唯一性瀏覽器指紋有貢獻,如針對瀏覽器所在操作系統(tǒng)時鐘偏差、tcp協(xié)議棧特性、javascript引擎特性等參數(shù)。由于這些參數(shù)牽扯操作系統(tǒng)的某些功能,本發(fā)明實施例可以不考慮。本發(fā)明實施例提供的方案,可以使用戶端瀏覽器發(fā)送給服務器的上述參數(shù)不是其真實的參數(shù)信息,且所發(fā)送的這些參數(shù)信息是隨機變化的,因此,服務器獲取到的是一個隨機變化的、不真實的“瀏覽器指紋”,能夠解決web服務器因獲取瀏覽器指紋的信息所帶來的用戶隱私被侵犯的隱患。為了更加清楚的介紹上述過程,本發(fā)明提供了多個實施例。實施例一本發(fā)明實施例提供了一種在瀏覽器中加載網(wǎng)頁的方法,該方法的執(zhí)行 主語可以是瀏覽器,也可以是安裝該瀏覽器的電子終端設備,也可以是上述電子終端設備中的硬件模塊,例如cpu(處理器),在此不加限定。如圖2所示,該方法包括以下步驟:步驟s101、在收到用戶加載網(wǎng)頁的請求消息后,隨機生成第一http頭消息。其中,用戶加載網(wǎng)頁的請求,可以是用戶在瀏覽器的地址欄中輸入所要訪問的網(wǎng)頁的網(wǎng)址,并按回車鍵,也可以是用戶在瀏覽器頁面中點擊某一超鏈接,在此不做限定。http,即超文本傳輸協(xié)議,是互聯(lián)網(wǎng)上應用最為廣泛的一種網(wǎng)絡協(xié)議,用戶端和服務器之間的請求和響應都遵守該網(wǎng)絡協(xié)議。http頭消息,是指該頭消息也是遵守http協(xié)議的。通常,http頭消息中所包含的參數(shù)稱為header參數(shù),這里header參數(shù)是一類參數(shù)的總稱,這類參數(shù)通常包括user-agent(ua)、httpaccept、cookies等參數(shù),進一步的還可以包括accept-language、accept-encoding以及connection等參數(shù)。示例的,http頭消息的形式如下:host:hosturi\r\nuser-agent:string\r\naccept:string\r\naccept-language:string\r\naccept-encoding:gzip,deflate\r\nconnection:keep-alive\r\n……現(xiàn)有技術中,http頭消息中所包含的各參數(shù)的參數(shù)值均是用戶端瀏覽器的真實參數(shù)值。本發(fā)明實施例提供的方案中是隨機生成第一http頭消息,意味著該第一http頭消息中所包含的參數(shù)值是隨機賦予的,并不一定是用戶端瀏覽器對應的真實的參數(shù)值。示例的,可以按照http協(xié)議的規(guī)定,隨機生成該第一http頭消息。又示例的,可以預先設置一header參數(shù)數(shù)據(jù)庫,這個header參數(shù)數(shù)據(jù)庫可存儲一張或若干張header參數(shù)表單,該表單所包括的字段可以是部分header參數(shù),也可以是全部header 參數(shù),在此,不對表單所包含的字段數(shù)目進行限定,只要求表單中的字段屬于header參數(shù)即可。該表單可以包括若干條記錄,每一條記錄對應一組header參數(shù)的參數(shù)值,表單記錄可以盡可能多,可以包括現(xiàn)有已知的各種瀏覽器和操作系統(tǒng)對應的header參數(shù)值。瀏覽器隨機生成第一http頭消息時,通過調(diào)用瀏覽器參數(shù)數(shù)據(jù)庫中的任意一張header參數(shù)表單,隨機選取表單中的一條記錄來生成第一http頭消息。其中,第一http頭消息中所包括的header參數(shù)信息,可以是全部從表單記錄中隨機獲得,也可以是部分從表單記錄中隨機獲得,部分通過現(xiàn)有技術中的獲取方式獲得。本實施例中優(yōu)選的第一http頭消息中可屬于瀏覽器指紋的至少一個header參數(shù)是隨機得到的。步驟s102、向web服務器發(fā)送http請求消息,http請求消息包含第一http頭消息。在步驟s101之后,瀏覽器會將http請求消息發(fā)送給相應的web服務器。http請求消息通常包括:請求行(requestline)、頭消息(messageheaders)和消息體(entitybody)。其中,請求行的信息代表請求方法、協(xié)議和協(xié)議的版本;頭消息的作用是通知服務器有關于用戶端的功能和標識消息體;消息體用于攜帶與請求相關聯(lián)的數(shù)據(jù)。本實施例中,向web服務器發(fā)送的http請求消息中的頭消息是步驟s101中隨機生成的第一http頭消息。步驟s103、接收web服務器發(fā)送的http響應消息,http響應消息中包含網(wǎng)頁數(shù)據(jù)。web服務器在接收http請求消息后,會返回給瀏覽器一個http響應消息,該http響應消息與http請求消息相似,通常包括3個部分,分別是:狀態(tài)行、響應頭(responseheader)、響應正文。其中,狀態(tài)行包括協(xié)議版本、數(shù)字形式的狀態(tài)代碼、及相應的狀態(tài)描述等信息;響應頭包含許多有用的信息,例如服務器類型、日期時間、內(nèi)容類型和長度等;響應正文就是服務器返回的html頁面,即網(wǎng)頁數(shù)據(jù)。步驟s104、加載網(wǎng)頁數(shù)據(jù)。瀏覽器通過對web服務器返回的響應消息中的網(wǎng)頁數(shù)據(jù)進行一系列處理工作,將網(wǎng)頁輸出到電子終端設備的顯示器顯示給用戶。該一系列處 理工作包括:分析網(wǎng)頁內(nèi)容、執(zhí)行網(wǎng)頁數(shù)據(jù)中的腳本(代碼段)、計算排版等。本發(fā)明實施例提供的在瀏覽器中加載網(wǎng)頁的方法,由于發(fā)送給服務器的http請求消息中的頭消息是隨機生成的,頭消息中所包括的header參數(shù)信息并不是用戶端瀏覽器真實的參數(shù)信息,因此,即使網(wǎng)站端的服務器獲取了這些header參數(shù)信息,也無法根據(jù)這些隨機生成的header參數(shù)信息確定真實的用戶端,從而增加了網(wǎng)站通過瀏覽器指紋識別用戶端身份的難度,進而可以保護用戶隱私。優(yōu)選的,步驟s101可以包括:從預設公共參數(shù)數(shù)據(jù)庫中,隨機選取http頭消息的公共參數(shù);公共參數(shù)數(shù)據(jù)庫中預先保存有多種瀏覽器的http頭消息的公共參數(shù);根據(jù)隨機選取的公共參數(shù),以及需添加的http頭消息的私有參數(shù),生成第一http頭消息。其中,公共參數(shù)數(shù)據(jù)庫是預先設置好的,公共參數(shù)數(shù)據(jù)庫可以是瀏覽器的一部分,存儲于用戶端的電子終端設備中,具體可以是存儲于電子終端設備的硬盤、內(nèi)存中,也可以是存儲于電子終端設備的flash存儲器中。http頭消息的公共參數(shù)是指,header參數(shù)中的一類參數(shù),這類參數(shù)是http頭消息中的必選參數(shù),也就是說,即使在用戶端不同、用戶端所使用的瀏覽器不同、及所瀏覽的網(wǎng)頁不同等情況下,瀏覽器每次發(fā)送的http頭消息中都會包括這類header參數(shù)。一般來說,這類header參數(shù)包括user-agent和httpaccept,進一步的,還可以包括accept-language、accept-encoding以及connection等。這些公共參數(shù)的值一般與瀏覽器的類型和版本號、以及操作系統(tǒng)類型和版本號有關,在瀏覽器和操作系統(tǒng)不同的情況下,http請求中所包含的這些公共參數(shù)的參數(shù)值是不同的。但是,在瀏覽器和操作系統(tǒng)相同的情況下,不同的http請求中所包含的這些公共參數(shù)的參數(shù)值是相同的。http頭消息的私有參數(shù)是,http頭消息中所包括的另一類header參數(shù),這類參數(shù)是http頭消息中的可選參數(shù)(即除了必選參數(shù)之外的參數(shù))。這一類header參數(shù)并不一定在瀏覽器每次發(fā)送的http頭消息中都會包含,即每次發(fā)送的http請求消息的頭消息中有時會包括這類參數(shù),有時不包括,如cookies參數(shù)。對于私有參數(shù),即使是在瀏覽 器和操作系統(tǒng)相同的情況下,不同的http請求中所包含的這些私有參數(shù)的參數(shù)值一般也是不同的。在本實施例中具體的,可以從預設公共參數(shù)數(shù)據(jù)庫中,隨機選取一種瀏覽器的公共參數(shù)作為第一http頭消息的公共參數(shù)。當然,還可以從預設公共參數(shù)數(shù)據(jù)庫中,從n(n大于等于2)種瀏覽器的公共參數(shù)中各選取一部分,以組合得到第一http頭消息的公共參數(shù)。示例的,多種瀏覽器的http頭消息的公共參數(shù)可以以表單的形式預先保存于公共參數(shù)數(shù)據(jù)庫中,各公共參數(shù)作為表單的字段,表單中包括多條記錄,每條記錄對應一組公共參數(shù)的參數(shù)值,每條記錄都不重復,其由瀏覽器和操作系統(tǒng)共同決定。當然也可不以表單形式存儲,在此不加限定。生成第一http頭消息時,示例的,可以是從該數(shù)據(jù)庫所存的表單中隨機選取一條記錄,將該記錄中的各參數(shù)字段的參數(shù)值作為第一http頭消息的公共參數(shù)的參數(shù)值。之后,根據(jù)隨機選取的公共參數(shù)值,以及需添加的http頭消息的私有參數(shù),生成第一http頭消息。其中,需添加的http頭消息的私有參數(shù),是指在現(xiàn)有技術中此次請求網(wǎng)頁數(shù)據(jù)過程中發(fā)送http請求時所包括的私有參數(shù),如cookies參數(shù),第一http頭消息中的私有參數(shù)的參數(shù)值可以按照現(xiàn)有技術的方法得到。由于http頭消息所包括的header參數(shù)中,對于公共參數(shù),其包括于每次的http請求中,且在瀏覽器和操作系統(tǒng)一定的情況下,每次http請求中該類參數(shù)的參數(shù)值都是相同的,因此,網(wǎng)站端服務器在獲取到該類參數(shù)的參數(shù)值后,就會將用戶的身份確定在使用對應的操作系統(tǒng)和瀏覽器的一類用戶中,從而可以確定一個較小的用戶范圍,因此,該類參數(shù)對于確定瀏覽器指紋有較大的貢獻。對于私有參數(shù),在每次的http請求中,其有可能存在,也有可能不存在,而且,即使存在,其參數(shù)值也具有很大的隨機性,對于使用固定瀏覽器和操作系統(tǒng)的某一用戶端來說,其不同的http請求中的該類參數(shù)的參數(shù)值基本不同,對于不同用戶來說,各自的每次的http請求中的該類參數(shù)的參數(shù)值也基本不同,因此,該類參數(shù)的參數(shù)值本身就具有很大的隨機性,對于確定瀏覽器指紋的貢獻較小。因此,針對上述情況,本申請中通過預設公共參數(shù)數(shù)據(jù)庫,將現(xiàn)有已 知的多種瀏覽器的http頭消息的公共參數(shù)存儲于公共參數(shù)數(shù)據(jù)庫中,用于形成第一http頭消息中的公共參數(shù)。對于私有參數(shù),由于其對于確定瀏覽器指紋的貢獻較小,且其參數(shù)值具有很大的隨機性,因此,本申請實施例沒有像公共參數(shù)那樣去預設私有參數(shù)數(shù)據(jù)庫,而是按照現(xiàn)有技術中的方式去獲取第一http頭消息中的該類參數(shù)。這樣做,既增加了網(wǎng)站端服務器對用戶身份識別的難度,也減少了預設數(shù)據(jù)庫的工作量,同時,還減少了存儲數(shù)據(jù)庫對終端電子設備的硬盤、內(nèi)存,或flash存儲器等的占用。實施例二本發(fā)明實施例提供了另一種在瀏覽器中加載網(wǎng)頁的方法,如圖3所示,本發(fā)明提供的實施例二是在實施例一的基礎上,且當實施例一中步驟s104中所述的加載網(wǎng)頁數(shù)據(jù)包括執(zhí)行網(wǎng)頁數(shù)據(jù)中的腳本,且該腳本包括用于向web服務器返回至少一種瀏覽器參數(shù)的代碼時,本發(fā)明實施例二所述的方法還包括步驟s105:當執(zhí)行所述腳本中向web服務器返回一種瀏覽器參數(shù)的代碼時,調(diào)用獲取該種瀏覽器參數(shù)的接口,以隨機生成該種瀏覽器參數(shù)的信息,并將隨機生成的該種瀏覽器參數(shù)的信息發(fā)送至web服務器。其中,網(wǎng)頁數(shù)據(jù)中的腳本是web服務器根據(jù)http請求信息返回給瀏覽器的,當然,如果用戶端訪問的是一些不良的網(wǎng)站,那么網(wǎng)站端的web服務器返回的網(wǎng)頁數(shù)據(jù)中除了包括http請求信息中所要求的數(shù)據(jù)外,還包括一些不良代碼的腳本。當瀏覽器執(zhí)行網(wǎng)頁數(shù)據(jù)中的腳本時,就會執(zhí)行到這些不良代碼,這些不良代碼通常會調(diào)用瀏覽器中的某些javascript接口,通過這些javascript接口會獲取到相應的瀏覽器參數(shù)信息,然后,瀏覽器會按照不良代碼將所獲得到的瀏覽器參數(shù)信息發(fā)送至web服務器。需要說明的是,具體調(diào)用瀏覽器的哪種javascript接口,與所要獲取的瀏覽器參數(shù)信息的類型有關。例如,不良代碼用于向web服務返回瀏覽器所安裝的插件信息,就會調(diào)用瀏覽器中的“獲得安裝在瀏覽器上的所有插件信息”的javascript接口,從而獲得瀏覽器所安裝的插件信息。又例如,該不良代碼用于向web服務器返回兩種瀏覽器參數(shù)信息,假設分別為a和b,那么該不良代碼就會分別調(diào)用瀏覽器中的“獲得a”、“獲得b” 的javascript接口,通過這兩個瀏覽器接口就會獲取到相應的瀏覽器參數(shù)a信息、瀏覽器參數(shù)b信息,即執(zhí)行兩次步驟s105。本發(fā)明實施例提供的方法,可以通過修改上述的javascript接口,使得上述的javascript接口獲得的瀏覽器參數(shù)信息并不是真實的瀏覽器參數(shù)信息,而是隨機生成的瀏覽器參數(shù)信息,進而將隨機生成的瀏覽器參數(shù)信息發(fā)送給web服務器。由于web服務器獲得的是隨機生成的、不真實的瀏覽器參數(shù)信息,因此,web服務器無法根據(jù)上述瀏覽器參數(shù)信息來對用戶端進行身份識別、跟蹤。需要說明的是,本實施例可以是當網(wǎng)頁數(shù)據(jù)中的腳本用于向web服務器返回屬于瀏覽器指紋的瀏覽器參數(shù)時,執(zhí)行步驟s105。本發(fā)明實施例二提供的方法,使得web服務器獲得的header參數(shù)信息以及屬于第二類參數(shù)的瀏覽器參數(shù)信息都是隨機生成的,并不是用戶端瀏覽器的真實參數(shù)信息,因此這些參數(shù)組合形成的瀏覽器指紋也是隨機的,不具有唯一性,而且,由于形成瀏覽器指紋的參數(shù)中,隨機生成的的參數(shù)較多,所以該瀏覽器指紋的隨機性也較高,因此,進一步增加了網(wǎng)站通過瀏覽器指紋識別用戶端身份的難度,進而可以更好地保護用戶隱私。其中,調(diào)用獲取該種瀏覽器參數(shù)的接口,隨機生成需獲取的每種瀏覽器參數(shù)的信息,可以有多種方式,在此不做限定。若不良腳本中需要獲取瀏覽器參數(shù)a的信息,那么可以修改“獲取瀏覽器參數(shù)a”的接口,該“獲取瀏覽器參數(shù)a”的接口可以從預先建立的一數(shù)據(jù)庫中,隨機選取一個或多個瀏覽器參數(shù)a的信息;其中,該數(shù)據(jù)庫可以是僅針對瀏覽器參數(shù)a而設置的,其可以包含盡可能多的關于瀏覽器參數(shù)a的信息。示例的,可以采用實施例一中的表單來實現(xiàn),不再詳細描述。優(yōu)選的,所述調(diào)用獲取該種瀏覽器參數(shù)的接口,以隨機生成該種瀏覽器參數(shù)的信息包括:調(diào)用獲取該種瀏覽器參數(shù)的接口,以便從瀏覽器參數(shù)數(shù)據(jù)庫中,隨機選取該種瀏覽器參數(shù)的一部分信息,其中,每一所述瀏覽器參數(shù)數(shù)據(jù)庫中存儲有一種瀏覽器參數(shù)的信息??梢允窃谟脩舳说碾娮咏K端設備中保存有若干個瀏覽器參數(shù)數(shù)據(jù)庫,每一個瀏覽器參數(shù)數(shù)據(jù)庫中存儲有一種瀏覽器參數(shù)的信息。該瀏覽器參數(shù)數(shù)據(jù)庫可以作為瀏覽器的一部分。具體的,可以修改瀏覽器中的各個javascript接口(每個接口用于返回瀏覽器參數(shù),尤其是用于返回屬于瀏覽器指紋的瀏覽器參數(shù))的代碼,經(jīng)修改后的每個javascript接口可以用來隨機獲取一種瀏覽器參數(shù)的信息。由于這些javascript接口被修改,當瀏覽器執(zhí)行網(wǎng)頁數(shù)據(jù)腳本中所包括的不良代碼時,若該不良代碼要求返回多種瀏覽器參數(shù)信息,那么該不良代碼就會分別調(diào)用每種瀏覽器參數(shù)所對應的瀏覽器javascript接口,這時,這些javascript接口就會分別從其對應的瀏覽器參數(shù)數(shù)據(jù)庫中隨機選擇其中一部分瀏覽器參數(shù)信息,作為需獲取的該種瀏覽器參數(shù)的信息。例如,不良代碼要求獲取兩種瀏覽器參數(shù)信息,分別為瀏覽器a參數(shù)信息、瀏覽器b參數(shù)信息,那么當瀏覽器執(zhí)行該不良代碼時,就會調(diào)用“獲取瀏覽器a參數(shù)信息”和“獲取瀏覽器b參數(shù)信息”兩個javascript接口,由于這兩個接口已經(jīng)按照某種方式進行了修改,當調(diào)用這兩個接口時,其中的“獲取瀏覽器a參數(shù)信息”接口就會從瀏覽器參數(shù)數(shù)據(jù)庫a中得到瀏覽器a參數(shù)信息,然后從瀏覽器a參數(shù)信息中隨機選取一部分,將選取的這部分瀏覽器a參數(shù)信息作為需獲取的瀏覽器a參數(shù)信息;同時,“獲取瀏覽器b參數(shù)信息”接口就會從瀏覽器參數(shù)數(shù)據(jù)庫b中得到瀏覽器b參數(shù)信息,然后從瀏覽器b參數(shù)信息中隨機選取一部分,將選取的這部分瀏覽器b參數(shù)信息作為需獲取的瀏覽器b參數(shù)信息。其中,需獲取的瀏覽器a參數(shù)信息和需獲取的瀏覽器b參數(shù)信息即為隨機生成的需獲取的瀏覽器參數(shù)的信息。需要說明的是上述只是舉例說明,具體獲取的瀏覽器參數(shù)的種類數(shù)目在此不做限定。其中,按照某種方式修改瀏覽器的javascript接口,示例的,可以按照下面所述方式:假設修改的是“獲取瀏覽器插件參數(shù)信息”接口對應的代碼,在修改前,該接口對應的代碼如下:其中,將infos均分為2部分,只是作為示例,可以根據(jù)實際需要進行設定的,示例的,可以不均分而只是返回小于插件總數(shù)的一部分,此處并不做限定。優(yōu)選的,瀏覽器參數(shù)包括:瀏覽器安裝的插件、瀏覽器所在操作系統(tǒng)安裝的字體中的至少一種。需要說明的是上述的瀏覽器參數(shù)是指本申請實施例中會隨機生成的瀏覽器參數(shù)。瀏覽器參數(shù)可以有多種,其中,瀏覽器安裝的插件、瀏覽器所在操作系統(tǒng)安裝的字體這兩種瀏覽器參數(shù)只是所有瀏覽器參數(shù)中的一部分。由于各種瀏覽器參數(shù)中,這兩種瀏覽器參數(shù)對于生成唯一性瀏覽器指紋的貢獻較大,因此,本申請實施例中優(yōu)選的隨機生成這兩種瀏覽器參數(shù),當然也可以是只隨機生成其中一種,進而可以實現(xiàn)進一步的增加網(wǎng)站通過瀏覽器指紋識別用戶端身份的難度,更好地保護用戶隱私。本申請實施例并不只限定于這兩種瀏覽器參數(shù),本領域技術人員可以根據(jù)實際需要,應用本申請實施例提供的方法隨機生成其他的瀏覽器參數(shù),如瀏覽器分辨率參數(shù),這都屬于本申請保護的范圍。示例的,可以僅修改瀏覽器中獲取某一種瀏覽器參數(shù)(屬于瀏覽器指紋,例如瀏覽器安裝的插件)的javascript接口,此時,在步驟s105中,若腳本中的不良代碼要獲取幾種瀏覽器參數(shù),其中包括“瀏覽器安裝的插件”參數(shù),則對于“瀏覽器安裝的插件”參數(shù),按照本實施例提供的方法 隨機獲取;而對于其他瀏覽器參數(shù),都按照現(xiàn)有技術中的方法進行生成。又示例的,可以僅修改瀏覽器中獲取多種瀏覽器參數(shù)(屬于瀏覽器指紋,例如瀏覽器安裝的插件和字體)的javascript接口,相應的,在步驟s105中,可以按照本實施例提供的方法隨機獲取插件和字體的信息,若此步驟中還需獲取其他瀏覽器參數(shù),則按照現(xiàn)有技術中的方法進行生成即可。實施例三本發(fā)明實施例提供了另一種在瀏覽器中加載網(wǎng)頁的方法,該方法的執(zhí)行主語可以是瀏覽器,也可以是安裝該瀏覽器的電子終端設備,也可以是上述電子終端設備中的硬件模塊,例如cpu(處理器),在此不加限定。如圖4所示,該方法包括以下步驟:s201、在收到用戶加載網(wǎng)頁的請求消息后,向web服務器發(fā)送http請求消息。具體可以參考實施例一中的步驟s101、步驟s102,也可以參考現(xiàn)有技術。s202、接收web服務器發(fā)送的http響應消息,http響應消息中包含網(wǎng)頁數(shù)據(jù)。具體可以參考實施例一中的步驟s103。s203、加載所述網(wǎng)頁數(shù)據(jù),包括:執(zhí)行所述網(wǎng)頁數(shù)據(jù)中的腳本,所述腳本包含用于向web服務器返回至少一種瀏覽器參數(shù)的代碼。具體可以參考實施例一中的步驟s104。s204、當執(zhí)行所述腳本中向web服務器返回一種瀏覽器參數(shù)的代碼時,調(diào)用獲取該種瀏覽器參數(shù)的接口,以隨機生成該種瀏覽器參數(shù)的信息,并將隨機生成的該種瀏覽器參數(shù)的信息發(fā)送至web服務器。具體可以參考實施例一中的步驟s105。優(yōu)選的,所述調(diào)用獲取該種瀏覽器參數(shù)的接口,以隨機生成該種瀏覽器參數(shù)的信息包括:調(diào)用獲取該種瀏覽器參數(shù)的接口,以便從瀏覽器參數(shù)數(shù)據(jù)庫中,隨機選取該種瀏覽器參數(shù)的一部分信息,其中,每一所述瀏覽器參數(shù)數(shù)據(jù)庫中存儲有一種瀏覽器參數(shù)的信息。本發(fā)明實施例三提供的方法與實施例一、實施例二提供的方法的區(qū)別 在于:實施例一提供的方法中是隨機生成第一http頭消息,即第一http頭消息中的header參數(shù)(屬于第一類參數(shù)的瀏覽器參數(shù))是隨機生成的。實施例二提供的方法中是既隨機生成第一http頭消息,同時,也隨機生成屬于第二類參數(shù)的瀏覽器參數(shù)。實施例三提供的方法是隨機生成屬于第二類參數(shù)的瀏覽器參數(shù)。本實施例三中,http請求消息可以是按照現(xiàn)有技術方案生成的,實施例三中只可以對瀏覽器參數(shù)的獲取方式進行了修改,其具體實現(xiàn)方式與實施例二中所述的隨機生成瀏覽器參數(shù)的方法相同,此處不再贅述,具體可以參考實施例二。上述的三個實施例分別提供了三種方法,三種方法均可以實現(xiàn)增加網(wǎng)站通過瀏覽器指紋識別用戶端身份的難度,進而達到保護用戶隱私的目的。其中,實施例二提供的方法可以較大強度的保護用戶隱私,實施例一和實施例三次之。在實際應用中,用戶可以根據(jù)實際需要,選擇其中一種在瀏覽器中加載網(wǎng)頁的方法應用到電子終端設備中,使得網(wǎng)站無法對用戶端進行身份識別和跟蹤。上述提供的任一種方法還可以和現(xiàn)有技術中瀏覽器已具有的“禁用瀏覽器cookies功能”和/或“禁用瀏覽器javascript功能”一起發(fā)揮作用,用戶在實際使用中可以選擇本申請所述的三種方法中的其中一種來加載網(wǎng)頁,同時開啟“禁用瀏覽器cookies功能”和/或“禁用瀏覽器javascript功能”,從而達到更大強度的防御效果?,F(xiàn)有技術中為了達到防御效果,在瀏覽器中可以選擇“禁用瀏覽器插件功能”、“禁用瀏覽器javascript功能”等,這樣可以起到一定的保護用戶隱私的作用。但是,禁用這些功能會導致無法正常加載網(wǎng)頁數(shù)據(jù),使網(wǎng)頁數(shù)據(jù)中包含的一些內(nèi)容無法顯示?;诖?,若選擇本發(fā)明三個實施例提供的方法,不僅可以達到保護用戶隱私的效果,還可以實現(xiàn)網(wǎng)頁的正常顯示。另外,在實際應用過程中,用戶對隱私保護的強度需求不同,基于用戶不同的需求,可以制定不同強度的防御策略。這時,可以在瀏覽器設置選項 內(nèi)添加一個切換開關,該切換開關可以供用戶選擇不同防御強度,默認可以為中等強度。示例的,瀏覽器提供4中不同強度的防御策略,參考下表2。表2當然,這里僅是作為一個示例,使得用戶可以通過切換開關選擇一個防御強度,隨后瀏覽器可以執(zhí)行該防御強度對應的實現(xiàn)方式,以滿足用戶需求。實施例四本發(fā)明實施例還提供了一種在瀏覽器中加載網(wǎng)頁的裝置,用于執(zhí)行實施例一中所述的方法,該裝置可以是瀏覽器,也可以是安裝該瀏覽器的電子終端設備,也可以是上述電子終端設備中的硬件模塊,例如cpu(處理器),如圖5所示,該裝置包括:生成模塊11,用于在收到用戶加載網(wǎng)頁的請求消息后,隨機生成第一http頭消息;發(fā)送模塊12,用于向web服務器發(fā)送http請求消息,所述http請求消息包含所述第一http頭消息;接收模塊13,用于接收所述web服務器發(fā)送的http響應消息,所述http響應消息中包含網(wǎng)頁數(shù)據(jù);加載模塊14,用于加載所述網(wǎng)頁數(shù)據(jù)??蛇x的,所述生成模塊11具體用于:從預設公共參數(shù)數(shù)據(jù)庫中,隨機選取http頭消息的公共參數(shù);所述公共參數(shù)數(shù)據(jù)庫中預先保存有多種瀏覽器的http頭消息的公共參數(shù);根據(jù)隨機選取的公共參數(shù),以及需添加的http頭消息的私有參數(shù),生成第一http頭消息??蛇x的,所述加載模塊14用于執(zhí)行所述網(wǎng)頁數(shù)據(jù)中的腳本,所述腳本包括:用于向web服務器返回至少一種瀏覽器參數(shù)的代碼;所述裝置還包括:調(diào)用模塊15,用于當所述加載模塊14執(zhí)行所述腳本中向web服務器返回一種瀏覽器參數(shù)的代碼時,調(diào)用獲取該種瀏覽器參數(shù)的接口,以隨機生成該種瀏覽器參數(shù)的信息;所述發(fā)送模塊12還用于將隨機生成的該種瀏覽器參數(shù)的信息發(fā)送至web服務器??蛇x的,所述調(diào)用模塊15具體用于:調(diào)用獲取該種瀏覽器參數(shù)的接口,以便從瀏覽器參數(shù)數(shù)據(jù)庫中,隨機選取該種瀏覽器參數(shù)的一部分信息,其中,每一所述瀏覽器參數(shù)數(shù)據(jù)庫中存儲有一種瀏覽器參數(shù)的信息。優(yōu)選的,所述瀏覽器參數(shù)包括:瀏覽器安裝的插件、瀏覽器所在操作系統(tǒng)安裝的字體中的至少一種。本發(fā)明實施例四提供的在瀏覽器中加載網(wǎng)頁的裝置,由于發(fā)送給服務器的http請求消息中的頭消息是由生成模塊11隨機生成的,頭消息中所包括的header參數(shù)信息并不是用戶端瀏覽器真實的參數(shù)信息,因此,即使網(wǎng)站端的服務器獲取了這些header參數(shù)信息,也無法根據(jù)這些隨機生成的header參數(shù)信息確定用戶端,從而增加了網(wǎng)站通過瀏覽器指紋識別用戶端身份的難度,進而可以保護用戶隱私。實施例五本發(fā)明實施例還提供了一種在瀏覽器中加載網(wǎng)頁的裝置,如圖6所示,該裝置包括:發(fā)送模塊21,用于在收到用戶加載網(wǎng)頁的請求消息后,向web服務器發(fā)送http請求消息;接收模塊22,用于接收所述web服務器發(fā)送的http響應消息,所述http響應消息中包含網(wǎng)頁數(shù)據(jù);加載模塊23,用于加載所述網(wǎng)頁數(shù)據(jù),包括:執(zhí)行所述網(wǎng)頁數(shù)據(jù)中的腳本,所述腳本包含用于向web服務器返回至少一種瀏覽器參數(shù)的代碼;調(diào)用模塊24,用于當加載模塊23執(zhí)行所述腳本中向web服務器返回一種瀏覽器參數(shù)的代碼時,調(diào)用獲取該種瀏覽器參數(shù)的接口,以隨機生成該種瀏覽器參數(shù)的信息;所述發(fā)送模塊21還用于將隨機生成的該種瀏覽器參數(shù)的信息發(fā)送至web服務器??蛇x的,所述調(diào)用模塊24具體用于:調(diào)用獲取該種瀏覽器參數(shù)的接口,以便從瀏覽器參數(shù)數(shù)據(jù)庫中,隨機選取該種瀏覽器參數(shù)的一部分信息,其中,每一所述瀏覽器參數(shù)數(shù)據(jù)庫中存儲有一種瀏覽器參數(shù)的信息。本發(fā)明實施例五提供的在瀏覽器中加載網(wǎng)頁的裝置,由于發(fā)送給服務器的瀏覽器參數(shù)信息是由調(diào)用模塊24隨機生成的,因此,即使網(wǎng)站端的服務器獲取了這些瀏覽器參數(shù)信息,也無法根據(jù)這些隨機生成的參數(shù)信息確定用戶端,從而增加了網(wǎng)站通過瀏覽器指紋識別用戶端身份的難度,進而可以保護用戶隱私。需要說明的是,本發(fā)明實施例中的生成模塊、發(fā)送模塊、接收模塊、加載模塊和調(diào)用模塊,可以為單獨設立的處理器,也可以集成在智能終端的某一個處理器中實現(xiàn),此外,也可以以程序代碼的形式存儲于智能終端的存儲器中,由智能終端的某一個處理器調(diào)用并執(zhí)行以上各模塊的功能。這里所述的處理器可以是一個中央處理器(英文全稱:centralprocessingunit,英文簡稱:cpu),或者是特定集成電路(英文全稱:applicationspecificintegratedcircuit,英文簡稱:asic),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的模塊及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和模塊的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng)、設備和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的設備(裝置)實施例僅僅是示意性的,例如,所述單元(模塊)的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元(模塊)或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,設備或單元(模塊)的間接耦合或通信連接,可以是電性,機械或其它的形式。所述作為分離部件說明的單元(模塊)可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一個處理單元中,也可以是各個單獨物理單元存在,也可以兩個或兩個以上單元集成在一個單元中。所述功能如果以軟件功能單元(模塊)的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(英文簡稱:rom,英文全稱:read-onlymemory)、隨機存取存儲器(英文簡稱:ram,英文全稱:randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本
技術領域:
的技術人員在本發(fā)明揭露的技術范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應所述以權利要求的保護范圍為準。當前第1頁12