亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關(guān)注微信公眾號

“黑客”入門學習之“Cookie技術(shù)詳解”
2019-01-06   今日頭條

"重放攻擊"大家應(yīng)該聽說過吧?重放攻擊時黑客常用的攻擊方式之一,攻擊者發(fā)送一個目的主機已接收過的包,來達到欺騙系統(tǒng)的目的,主要用于身份認證過程,破壞認證的正確性。這種攻擊會不斷惡意或欺詐性地重復(fù)一個有效的數(shù)據(jù)傳輸,重放攻擊可以由發(fā)起者,也可以由攔截并重發(fā)該數(shù)據(jù)的敵方進行。攻擊者利用網(wǎng)絡(luò)監(jiān)聽或者其他方式盜取認證憑據(jù),之后再把它重新發(fā)給認證服務(wù)器。

重放攻擊監(jiān)聽http數(shù)據(jù)傳輸?shù)慕孬@的敏感數(shù)據(jù)大多數(shù)就是存放在Cookie中的數(shù)據(jù)。在web安全中的通過其他方式(非網(wǎng)絡(luò)監(jiān)聽)盜取Cookie與提交Cookie也是一種重放攻擊。所以可以看出"Cookie"這個“東東”好像很不安全。

那么今天就以本篇文章詳細給大家介紹一下Cookie是什么?Cookie基本原理與實現(xiàn)?Cookie到底存在哪些安全隱患,我們該如何防御,有沒有其他技術(shù)替代方案?

一、Cookie是什么?

官方定義:Cookie,有時也用其復(fù)數(shù)形式Cookies,指某些網(wǎng)站為了辨別用戶身份、進行session跟蹤而儲存在用戶本地終端上的數(shù)據(jù)(通常經(jīng)過加密)。

通俗理解:Cookie就是服務(wù)器端為了保存某些數(shù)據(jù),或?qū)崿F(xiàn)某些必要的功能,當用戶訪問服務(wù)器時,從服務(wù)器回傳到客戶端的一個或多個數(shù)據(jù),這些數(shù)據(jù)因設(shè)置的保存時間不同,故保存在瀏覽器內(nèi)存中或?qū)懭胗脩鬚C的硬盤當中,當下次用戶再次訪問服務(wù)器端時,則帶著這些文件去與服務(wù)器端進行聯(lián)系,這些數(shù)據(jù)或?qū)懭胗脖P當中的數(shù)據(jù)文件就是Cookie。

詳細簡介:

眾所周知,Web協(xié)議(也就是HTTP)是一個無狀態(tài)的協(xié)議(HTTP1.0)。一個Web應(yīng)用由很多個Web頁面組成,每個頁面都有唯一的URL來定義。用戶在瀏覽器的地址欄輸入頁面的URL,瀏覽器就會向Web Server去發(fā)送請求。如下圖,瀏覽器向Web服務(wù)器發(fā)送了兩個請求,申請了兩個頁面。這兩個頁面的請求是分別使用了兩個單獨的HTTP連接。所謂無狀態(tài)的協(xié)議也就是表現(xiàn)在這里,瀏覽器和Web服務(wù)器會在第一個請求完成以后關(guān)閉連接通道,在第二個請求的時候重新建立連接。Web服務(wù)器并不區(qū)分哪個請求來自哪個客戶端,對所有的請求都一視同仁,都是單獨的連接。這樣的方式大大區(qū)別于傳統(tǒng)的(Client/Server)C/S結(jié)構(gòu),在那樣的應(yīng)用中,客戶端和服務(wù)器端會建立一個長時間的專用的連接通道。正是因為有了無狀態(tài)的特性,每個連接資源能夠很快被其他客戶端所重用,一臺Web服務(wù)器才能夠同時服務(wù)于成千上萬的客戶端。

但是我們通常的應(yīng)用是有狀態(tài)的。先不用提不同應(yīng)用之間的SSO,在同一個應(yīng)用中也需要保存用戶的登錄身份信息。例如用戶在訪問頁面1的時候進行了登錄,但是剛才也提到,客戶端的每個請求都是單獨的連接,當客戶再次訪問頁面2的時候,如何才能告訴Web服務(wù)器,客戶剛才已經(jīng)登錄過了呢?瀏覽器和服務(wù)器之間有約定:通過使用cookie技術(shù)來維護應(yīng)用的狀態(tài)。Cookie是可以被Web服務(wù)器設(shè)置的字符串,并且可以保存在瀏覽器中。如下圖所示,當瀏覽器訪問了頁面1時,web服務(wù)器設(shè)置了一個cookie,并將這個cookie和頁面1一起返回給瀏覽器,瀏覽器接到cookie之后,就會保存起來,在它訪問頁面2的時候會把這個cookie也帶上,Web服務(wù)器接到請求時也能讀出cookie的值,根據(jù)cookie值的內(nèi)容就可以判斷和恢復(fù)一些用戶的信息狀態(tài)。

Cookie文件記錄了用戶的有關(guān)信息,如身份識別號碼ID、密碼、瀏覽過的網(wǎng)頁、停留的時間、用戶在Web站點購物的方式或用戶訪問該站點的次數(shù)等,當用戶再次鏈接Web服務(wù)器時,瀏覽器讀取Cookie信息并傳遞給Web站點。

Cookie文件信息片斷以"名/值"對(name-vaiuepairs)的形式儲存,一個"名/值"對僅僅是一條命名的數(shù)據(jù)。例如,訪問 www.goto.com網(wǎng)站,則該站點可能會在客戶端電腦上產(chǎn)生一個包含以下內(nèi)容的Cookie文件:UserIDA9A3BECE0563982Dwww.goto.com/。goto.com在電腦上存入了一個單一的"名/值"對,其中的"名"是UserID,"值"是A9A3BECE0563982D。

Cookie文件的存放位置與操作系統(tǒng)和瀏覽器密切相關(guān),這些文件在Windows機器里叫做Cookie文件,在Macintosh機器里叫做MagicCookie文件。對Windows和IE瀏覽器而言,Cookies文件的存放位置為:

Cookies

Cookie的主要功能是實現(xiàn)用戶個人信息的記錄,它最根本的用途是幫助Web站點保存有關(guān)訪問者的信息。更概括地說,Cookie是一種保持Web應(yīng)用程序連續(xù)性(即執(zhí)行狀態(tài)管理)的方法。

HTTP協(xié)議是一種無狀態(tài)、無連接的協(xié)議,不能在服務(wù)器上保持一次會話的連續(xù)狀態(tài)信息。隨著WWW的不斷發(fā)展,HTTP的無狀態(tài)性不能滿足某些應(yīng)用的需求,給Web服務(wù)器和客戶端的操作帶來種種不便。在此背景下,提出HTTP的狀態(tài)管理機制———Cookie機制,它是對HTTP協(xié)議的一種補充,以保持服務(wù)器和客戶端的連續(xù)狀態(tài)。

二、Cookie技術(shù)的原理

以實例闡述技術(shù)原理:

假設(shè)一個用戶在進行網(wǎng)上購物

  • 假定用戶第一次訪問這個購物網(wǎng)站,用戶瀏覽器這邊有一個Cookie文件,里面只有一行信息beay:8734,但是沒有任何與這個購物信息有關(guān)的信息
  • 用戶開始使用常規(guī)的http請求消息來訪問,服務(wù)器收到訪問以后,發(fā)現(xiàn)這是一個新用戶,于是為這個用戶創(chuàng)建一個ID為1678,并把這個信息存儲在后端的數(shù)據(jù)庫中
  • 服務(wù)器收到請求后向瀏覽器發(fā)回響應(yīng)消息,但是在響應(yīng)消息里面多了一行信息,就是Set-cookie: 1678,客戶瀏覽器收到響應(yīng)信息后,把新增的Cookie信息添加到自己的Cookie文件中,意思是:我在這個網(wǎng)站中的ID是1678
  • 當用戶第二次再訪問這個網(wǎng)站的時候,請求信息中就會帶上自己的Cookie信息,服務(wù)器收到以后,通過Cookie信息發(fā)現(xiàn)是之前訪問過的用戶,于是做出Cookie-specific action,將http響應(yīng)信息發(fā)回用戶瀏覽器
  • 一周以后再次訪問,依然會重復(fù)4的步驟

三、常見的Cookie 種類

1. Session cookie

也稱為內(nèi)存cookie或者瞬時cookie,只存在用戶瀏覽站點時的內(nèi)存中。當用戶關(guān)閉瀏覽器時,瀏覽器通常會刪除session cookies。不像其他cookies,session cookies沒有分配過期時間,作為session cookie瀏覽器會自己管理它。

2. 持久性cookie

不像session cookie在瀏覽器關(guān)閉時就會過期那樣,持久性cookie是到一個特定日期過期或者過來一段時間過期。這就意味著,在cookie的整個生命周期(創(chuàng)建cookie時可以指定其生命周期),每次用戶訪問cookie所屬站點時,或者每次用戶在其他站點訪問cookie所屬站點的資源(例如廣告)時,cookie所攜帶的信息都會被發(fā)送到服務(wù)端。

由于這個原因,持久性cookie有時被稱為追蹤cookie,因為廣告系統(tǒng)可以利用它記錄用戶在一段時間內(nèi)的網(wǎng)頁瀏覽習慣信息。當然,使用它也有一些"正當"理由,例如保持用戶的登錄狀態(tài),避免每次訪問的再次登錄。

如果過期時間到了,或者用戶手動刪除了,這種cookie會被重置。

3. 安全cookie

安全cookie只能通過安全連接傳輸(例如,https)。不能通過非安全連接傳輸(例如,http)。這樣就不太可能被竊取。在cookie中設(shè)置一個Secure標志就可以創(chuàng)建安全cookie。

4. HttpOnly cookie

HttpOnly cookie不能通過客戶端api獲取到。這種限制減少了通過(XSS)竊取cookie的風險。然而這種cookie也會受到跨站追蹤和跨站請求偽造攻擊。在cookie中添加HttpOnly可以創(chuàng)建這種cookie。

5. SameSite cookie

chrome51版本引入的一種新類型cookie,只有請求和站點是同源的,才會發(fā)送cookie到服務(wù)器。這種限制可以緩解攻擊,例如跨站請求偽造攻擊。在cookie中設(shè)置SameSite標識可以創(chuàng)建這種類型的cookie。

6. 第三方cookie

正常情況下,cookie的域?qū)傩院蜑g覽器地址欄里顯示的域是相同的。這種cookie稱為第一方cookie。然而第三方cookie不屬于瀏覽器地址欄顯示的域中。這種cookie通常出現(xiàn)在web頁面有外部站點內(nèi)容時的情況中,例如廣告系統(tǒng)。這就提供了一個潛在的能力來追蹤用戶的瀏覽歷史,廣告系統(tǒng)通常會利用這個來給每個用戶推薦相關(guān)的廣告信息。

例如,假設(shè)用戶訪問了www.example.com,這個站點包含ad.foxytracking.com的廣告,當這個廣告加載時,會設(shè)置一個屬于廣告所在域(ad.foxytracking.com)的cookie。然后用戶訪問另一個站點,www.foo.com,這個站點也包含來自ad.foxytracking.com的廣告,這個廣告也會設(shè)置一個屬于ad.foxytracking.com域的cookie。最終,所有這些cookie會發(fā)送給廣告主,當用戶加載他們的廣告或者訪問他們的網(wǎng)站時。然后廣告主就可以利用這些cookie統(tǒng)計出用戶的瀏覽記錄,當然瀏覽記錄里面的站點必須要包含廣告主的廣告。也就是廣告主可以利用這些cookie知道你訪問了那些包含他們廣告的站點。

7. Supercookie

supercookie是來自于頂級域名(例如.com)或者有公共后綴(例如.co.uk)的cookie。普通cookie是來自于一個特定域名,例如example.com。

supercookie是一個潛在的安全威脅,所以經(jīng)常被瀏覽器默認禁止的。如果瀏覽器不禁止,控制惡意站點的攻擊者可以設(shè)置一個supercookie,干擾或者冒充合法的用戶向其他共享頂級域名或者公共后綴的站點的請求。例如,來自.com的supercookie可以惡意影響example.com的請求,即便這個cookie并不是來自于example.com。可以用來偽造登錄或者修改用戶信息。

幫助降低supercookie帶來的風險。公共后綴是一個跨廠商的倡議,目標是為了提供一個準確的最新的域名后綴列表。舊版本瀏覽器可能沒有一份最新的列表,會容易受到來自某些域的supercookie的威脅。

"supercookie"的術(shù)語有時會被用來描述某些不通過HTTP cookie的追蹤技術(shù)。兩個這樣的"supercookie"機制在2011年的微軟站點被發(fā)現(xiàn)了:機器標識碼cookie和ETag cookie,由于媒體的關(guān)注,微軟禁止了這樣的cookie。

8. Zombie cookie

zombie cookie是指被刪除后可以自動再創(chuàng)建的cookie。通過把cookie內(nèi)容存儲在多個地方實現(xiàn),例如flash的,H5的,其他客戶端甚至服務(wù)端位置。當缺失的cookie被檢測到,就會利用存儲在這些位置的數(shù)據(jù)重新創(chuàng)建cookie。

四、Cookie的安全性隱患

Cookie的目的是為用戶帶來方便,為網(wǎng)站帶來增值,一般情況下不會造成嚴重的安全威脅。Cookie文件不能作為代碼執(zhí)行,也不會傳送病毒,它為用戶所專有并只能由創(chuàng)建它的服務(wù)器來讀取。另外,瀏覽器一般只允許存放300個Cookie,每個站點最多存放20個Cookie,每個Cookie的大小限制為4KB,因此,Cookie不會塞滿硬盤,更不會被用作"拒絕服務(wù)"攻擊手段。

但是,Cookie作為用戶身份的替代,其安全性有時決定了整個系統(tǒng)的安全性,Cookie的安全性問題不容忽視。

1. Cookie欺騙

Cookie記錄了用戶的帳戶ID、密碼之類的信息,通常使用MD5方法加密后在網(wǎng)上傳遞。經(jīng)過加密處理后的信息即使被網(wǎng)絡(luò)上一些別有用心的人截獲也看不懂。然而,現(xiàn)在存在的問題是,截獲Cookie的人不需要知道這些字符串的含義,只要把別人的Cookie向服務(wù)器提交,并且能夠通過驗證,就可以冒充受害人的身份登陸網(wǎng)站,這種行為叫做Cookie欺騙。

非法用戶通過Cookie欺騙獲得相應(yīng)的加密密鑰,從而訪問合法用戶的所有個性化信息,包括用戶的E-mail甚至帳戶信息,對個人信息造成嚴重危害。

2. Cookie截獲

Cookie以純文本的形式在瀏覽器和服務(wù)器之間傳送,很容易被他人非法截獲和利用。任何可以截獲Web通信的人都可以讀取Cookie。

Cookie被非法用戶截獲后,然后在其有效期內(nèi)重放,則此非法用戶將享有合法用戶的權(quán)益。例如,對于在線閱讀,非法用戶可以不支付費用即可享受在線閱讀電子雜志。

Cookie截獲的手段有以下一些:

(1) 用編程手段截獲Cookie。

下面分析其手法,該方法分兩步完成:

步驟一:定位需要收集Cookie的網(wǎng)站,對其進行分析并構(gòu)造URL。 首先打開要收集Cookie的網(wǎng)站,這里假設(shè)是http://www.XXX.net,登陸網(wǎng)站輸入用戶名"<Al>"(不含引號),對數(shù)據(jù)進行分析抓包,得到如下代碼:

將其中"<Al>"更換為:

"<script>alert(document.cookie)</script> "再試,如果執(zhí)行成功,就開始構(gòu)造URL:

其中http://www.cbifamily.org/cbi.php是用戶能夠控制的某臺主機上的一個腳本。需要注意的是"%2b"為符號"+"的URL編碼,因為"+"將被作為空格處理。該URL即可在論壇中發(fā)布,誘使別人點擊。

步驟二:編制收集Cookie的PHP腳本,并將其放到用戶可以控制的網(wǎng)站上,當不知情者點擊了構(gòu)造的URL后可以執(zhí)行該PHP代碼。該腳本的具體內(nèi)容如下:

將這段代碼放到網(wǎng)絡(luò)里,則能夠收集所有人的Cookie。如果一個論壇允許HTML代碼或者允許使用Flash標簽,就可以利用這些技術(shù)收集Cookie的代碼放到論壇里,然后給帖子取一個吸引人的主題,寫上有趣的內(nèi)容,很快就可收集到大量的Cookie。在論壇上,有許多人的密碼就是被這種方法盜走的。

(2) 利用Flash的代碼隱患截獲Cookie。

Flash中有一個getURL()函數(shù)。Flash可以利用這個函數(shù)自動打開指定的網(wǎng)頁,它可能把用戶引向一個包含惡意代碼的網(wǎng)站。例如,當用戶在電腦上欣賞Flash動畫時,動畫幀里的代碼可能已經(jīng)悄悄地連上網(wǎng),并打開了一個極小的包含有特殊代碼的頁面,這個頁面可以收集Cookie、也可以做一些其他有害的事情。網(wǎng)站無法禁止Flash的這種作為,因為這是Flash文件的內(nèi)部功能。

(3) Cookie泄漏網(wǎng)絡(luò)隱私

Cookie導致網(wǎng)絡(luò)隱私泄密的主要原因是:商業(yè)利益驅(qū)動。隨著電子商務(wù)的興起和互聯(lián)網(wǎng)上巨大商機的出現(xiàn),一些網(wǎng)站和機構(gòu)濫用Cookie,未經(jīng)訪問者的許可,利用搜索引擎技術(shù)、數(shù)據(jù)挖掘技術(shù)甚至是網(wǎng)絡(luò)欺騙技術(shù)搜集他人的個人資料,達到構(gòu)建用戶數(shù)據(jù)庫、發(fā)送廣告等營利目的,造成用戶個人隱私的泄漏。"Cookie信息傳遞的開放性。Cookie文件具有特殊的傳遞流程 和文本特性,在服務(wù)器和客戶端之間傳送未經(jīng)安全加密的Cook-ie文件,易導致個人信息的泄密。

五、防范Cookie泄密的安全措施

面對Cookie的安全問題,如何才能安全地應(yīng)用Cookie呢?

1. 加強安全防范意識

Cookie相對來說是無害的,但它能用于跟蹤用戶,使用Cookie必須意識到其固有的安全弱點。

保存在Cookie中的內(nèi)容,完全有可能是用戶的私人數(shù)據(jù)。例如,網(wǎng)站為了方便用戶,利用Cookie來保存會員的注冊信息:電子郵件地址、網(wǎng)站的用戶名、用戶密碼、信用卡號碼等,以便用戶以后登錄該網(wǎng)站時不用重新輸入這些數(shù)據(jù)。如果有人盜取了這樣的Cookie文件,他就可以冒充登錄網(wǎng)站,這將對用戶的個人信息安全構(gòu)成不可預(yù)測的威脅。

因此,只在Cookie中保存一些不重要的數(shù)據(jù),如用戶首選項或其它對應(yīng)用程序沒有重大影響的信息。如果確實需要在Cook-ie中保存某些敏感信息,就要對其加密,以防被他人盜用。可以對Cookie的屬性進行設(shè)置, 使其只能在使用安全套接字層(SSL)的連接上傳輸。SSL并不能防止保存在用戶計算機上的Cookie被他人讀取或操作,但能防止Cookie在傳輸途中被他人截獲。

2. 配置安全的瀏覽器

IE和Netscape瀏覽器的工具欄里,都有禁止Cookie的設(shè)置選項,都可以設(shè)置當某個站點要在用戶的計算機上創(chuàng)建Cookie時,是否給出提示。這樣用戶就可以選擇允許或拒絕創(chuàng)建Cook-ie。需要注意的是,某些網(wǎng)站的應(yīng)用必須使用Cookie,簡單地禁止可能導致無法正常瀏覽此類網(wǎng)站。

使用IE6會更安全。最新的IE6提供了多種隱私保護功能,包括:查看網(wǎng)站的P3P隱私策略,以了解該網(wǎng)站如何使用個人可識別信息;通過Cookie隱私設(shè)置決定是否允許將網(wǎng)站的Cookie保存在計算機上;在訪問不符合隱私設(shè)置條件的站點時發(fā)出隱私警報。用戶可以有選擇性地設(shè)置Cookie。

3. 安裝Cookie管理工具

(1) CookieCrusher

LimitSoftware公司的Crusher適用于Netscape用戶,其功能有:管理計算機上已有的Cookie、設(shè)置禁止或允許創(chuàng)建Cookie的網(wǎng)站列表、在創(chuàng)建新Cookie與修改已經(jīng)存在的Cookie時發(fā)出警告、禁止第三方網(wǎng)站Cookie、實時控制接受或拒絕來自站點的Cookie、記錄Cookie活動日志、編輯Cookie等,并且在網(wǎng)上瀏覽時,程序獨創(chuàng)的分析功能可以自動確定網(wǎng)站要求創(chuàng)建的Cookie的目的,如:判斷網(wǎng)站是把Cookie用于存儲用戶輸入的資料還是準備利用Cookie跟蹤用戶的瀏覽習慣等。

(2) CookiePaI

除了瀏覽器能使用Cookie, 其它的互聯(lián)網(wǎng)軟件也可能使用,如郵件程序等。為了維護網(wǎng)絡(luò)隱私的安全,同時又能保證一些互聯(lián)網(wǎng)軟件正確地使用Cookie文件,可以安裝Kooka-burraSoftware公司的支持多種軟件的Cookie管理工具CookiePaI。它專門用于Cookie管理,支持用戶查看、刪除、編輯已經(jīng)存在的Cookie,自動地實時控制是否接受Cookie,根據(jù)過期時間過濾Cookie,它還能夠記錄Cookie的活動,編輯拒絕或允許Cookie的網(wǎng)站列表。

4. 刪除內(nèi)存中的Cookies

Cookie的信息并不都是以文件形式存放在硬盤中,還有部分信息保存在內(nèi)存里。這類Cookie通常是用戶在訪問某些特殊網(wǎng)站時,由系統(tǒng)自動在內(nèi)存中生成的。一旦訪問者離開該網(wǎng)站,系統(tǒng)又自動將Cookie從內(nèi)存中刪除。對此,需要借助注冊表編輯器來修改系統(tǒng)設(shè)置,運行Regedit,找到如下鍵值:

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCur-rentversionInternetSettingsCacheSpeciaIPathsCookies,這是Cookies在內(nèi)存中的鍵值,把這個鍵值刪除。右鍵單擊"Cook-ies",再單擊快捷菜單中的"刪除"命令確認刪除。

5. 使用AAS技術(shù)

2002年,美國IngrianNetworks公司發(fā)表了可以使Web站點 免受"CookiePoisoning(Cookie篡改)"攻擊的平臺"ActiveAppIi-cationSecurity(AAS)"。AAS平臺能對Cookie內(nèi)部的重要信息進行加密處理,并附上電子簽名。Web服務(wù)器每次和客戶端進行通信時,將利用電子簽名對Cookie的內(nèi)容進行確認。如果惡意用戶刪除了電子簽名或者更改了信息內(nèi)容,將會使電子簽名和Cookie的內(nèi)容無法再匹配。這時,AAS便會阻止這條Cookie并拒絕向Web站點返回信息。另外,該平臺還對Cookie內(nèi)容進行了3DES加密,解密需要口令,通過這種方法安全地保存Cookie。WWW服務(wù)器和客戶端之間的通信還全部利用了SSL連接方式,以確保通信路由的安全。通過綜合運用電子簽名、加密、SSL連接等技術(shù)組成強效的安全方案,可以排除通信路由及數(shù)據(jù)存儲兩方面存在的脆弱性,杜絕對Cookie的篡改。

六、Cookie的替代方案

有些可以使用cookie實現(xiàn)的方案也可以使用其他機制實現(xiàn)。

1. JSON Web Tokens

(JWT)是一個自包含的信息包,可以用來存儲用戶標識以及認證信息。可以被用來代替session cookie。和cookie自動附加到每個HTTP請求的方式不一樣,JWTs必須被web應(yīng)用明確指定附加到那個HTTP請求上。

2. HTTP 認證

HTTP包含基本認證以及摘要認證協(xié)議,利用這些協(xié)議只有在提供了正確的用戶名和密碼后才能訪問到web頁面。如果服務(wù)端需要類似的認證信息來確保web頁面的訪問權(quán)限,那么瀏覽器每次頁面請求的時候都要發(fā)送這些認證信息。這些認證信息也可以用來追蹤用戶。

3. IP 地址

有些用戶可能會被基于訪問頁面的電腦IP地址追蹤過,服務(wù)端知道當前正在運行瀏覽器的電腦的IP地址,理論上可以對這個IP地址關(guān)聯(lián)一個用戶session。

然后IP地址通常不是一個可靠的追蹤session或者標識用戶的方法。許多電腦設(shè)計的時候就是為了讓一個單獨用戶使用的,例如辦公PC,家庭PC會在網(wǎng)絡(luò)地址轉(zhuǎn)換協(xié)議下共享一個公共的IP地址。而且某些系統(tǒng),例如設(shè)計的時候就是為了保持匿名性的,利用IP地址追蹤用戶顯然是不合適的,也是不可能的。

4. URL 查詢字符串

一個更精確的技術(shù)是基于URL中嵌入信息。URL中的查詢字符串部分通常就是為了實現(xiàn)這個目的的,當然也可以使用其他部分。Java Servlet和PHP session機制都是使用這種機制,如果cookie被禁止了。這種方法由服務(wù)端在web頁面的所有鏈接中追加包含一個獨立session標識的查詢字符串組成。當用戶點擊了其中了一個鏈接,瀏覽器把查詢字符串傳給服務(wù)端,允許服務(wù)端識別用戶維持狀態(tài)。這些類型的查詢字符串非常像cookie,都包含任意的信息供服務(wù)端選擇,都會隨請求返回給服務(wù)端。然而其中還是有點不同的。由于查詢字符串是URL中的一部分,如果URL后面被重復(fù)發(fā)送了,那么上面附加的相同信息將會被發(fā)送到服務(wù)端,這樣可能會產(chǎn)生混亂。例如,如果用戶的偏好信息被放在了查詢字符串中,用戶把這個url通過郵件發(fā)給了另一個用戶,那么這些偏好信息就會變成另一個用戶的。而且如果相同用戶從不同的源多次訪問相同的頁面,這樣不能確保每次使用相同的查詢字符串。例如,如果一個用戶第一次通過一個頁面的內(nèi)部站點訪問了一個頁面,然后第二次又通過外部的搜索引擎訪問到這個頁面,這樣查詢字符串可能會不同。如果在這種情況下使用cookie,cookie可以是相同的。

使用查詢字符串其他缺點就是安全問題。在查詢字符串中存儲標識session的數(shù)據(jù)可以導致session固定攻擊,referer日志攻擊以及其他安全漏洞。把session標識轉(zhuǎn)成HTTP cookie更安全。

5. 隱藏的表單字段

另一種回話跟蹤是使用隱藏域的web表單。這個技術(shù)很像使用url查詢字符串去保存信息,也有一些優(yōu)點和缺點。事實上,如果通過HTTP的GET方法處理表單,那么這種技術(shù)就和使用URL查詢字符串類似,因為GET方法會把表單字段作為查詢字符串追加到URL后面。但是大部分表單都是通過HTTP的POST方法處理,這樣表單信息包括隱藏的字段都會在HTTP請求體中發(fā)送,這樣既不是URL中的一部分,也不是cookie的一部分。

從追蹤的角度來看這種方式有兩種好處。第一,把追蹤信息放在HTTP請求體中而不是URL中意味著它不會被普通用戶察覺。第二,當用戶復(fù)制URL的時候不會復(fù)制到session信息。

6. "window.name" DOM 屬性

所有的現(xiàn)代瀏覽器都可以通過js使用DOM屬性window.name存儲一個相當大的數(shù)據(jù)(2-23M)。這個數(shù)據(jù)可以用來代替session cookie也是可以跨域的。這個技術(shù)可以和JSON對象一起使用來存儲客戶端上的復(fù)雜session變量集合。

不足就是美國單獨的窗口或者tab頁剛開始打開的時候會有一個空的window.name屬性。而且,這個屬性可以用來追蹤不同站點的訪問者。

在某些方面,這種方法可能比cookie更加方便,因為它的內(nèi)容不會像cookie那樣在每次請求的時候自動的發(fā)送給服務(wù)端,所以它不易收到網(wǎng)絡(luò)cookie嗅探攻擊。然而如果不采用特殊的方法保護數(shù)據(jù),它很容易受到其他攻擊,因為數(shù)據(jù)可以被在同一個窗口或者tab中打開的其他站點獲取到。

7. 廣告主標識碼

蘋果使用了追蹤技術(shù)稱為"廣告主標識碼"(IDFA)。這種技術(shù)會給每個購買蘋果產(chǎn)品的用戶分配一個唯一標識。這個唯一標識會被蘋果網(wǎng)絡(luò)廣告系統(tǒng)使用,來確定用戶正在查看或者回復(fù)的廣告。

8. ETag

因為瀏覽器會緩存ETags,然后在后續(xù)的請求相同資源時返回,追蹤服務(wù)器可以簡單的復(fù)制從瀏覽器接受的任意ETag來確保ETag長久留存(就像持久化cookie一樣)。增加緩存頭也可以加強ETag數(shù)據(jù)的保存。

在某些瀏覽器中可以通過清理緩存來清楚ETag數(shù)據(jù)。

9. web 存儲

一些web瀏覽器支持持久化機制,允許頁面本地存儲信息以后使用。

HTML5標準(絕大多數(shù)現(xiàn)代瀏覽器在某種程度上都支持)包含了一個Javascript API叫做:local storage和session storage。local storage的行為和持久化cookie類似,而session storage的行為和session cookie的行為類似,也就是session storage是綁定在一個單獨的tab或者窗口的生命周期中的(也就是頁面session),而session cookie是針對整個瀏覽器的。

IE支持在瀏覽器歷史中持久化信息,在瀏覽器的收藏夾中,以一個XML格式存儲,或者直接在頁面中存儲到硬盤。

一些web瀏覽器插件也包含持久化機制。例如Flash有Local shared object,Silverlight有 Isolated storage。

10. 瀏覽器緩存

瀏覽器緩存也可以用來存儲信息,利用這些信息也可以用來追蹤用戶。這項技術(shù)利用的真相是當瀏覽器判斷出來緩存的已經(jīng)是最新資源時可以利用緩存而不是重新從站點下載。

例如,一個站點托管了一個js文件,這個js文件可以給用戶指定一個唯一標識(例如,var userId = 3243242)。只要用戶訪問之后,每次用戶再訪問這個頁面時,這個文件都會從緩存中獲取而不是從服務(wù)端獲取。所以它的內(nèi)容永遠不會變。
信息安全我來講你來聽

熱詞搜索:黑客 Cookie

上一篇:企業(yè)安全體系建設(shè)之路之Web安全篇
下一篇:解密NFV:互操作性和API之間不得不說的關(guān)系

分享到: 收藏