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