iT邦幫忙

0

Day7 Local Storage,IndexedDB,Cache

  • 分享至 

  • xImage
  •  

Ch02 Stateful Tracking 典型與意料之外的儲存位置/Day7 Local Storage,IndexedDB,Cache

Local Storage
cookie儲存空間太小(4KB)成為致命傷>取代者為Storage

  • Storage:
    1.同樣是key-value pair,但可儲存更多資料
    2.不會夾帶在HTTP request中傳給伺服器
    3.分為Local Storage長期儲存和
    Session Storage網頁關閉時會自動儲存
    4.只能透過JavaScript操作
    5.無法達成cross-site tracking,因為JavaScript無法讀到別的origin的Local Storage內容

IndexedDB
1.同樣是key-value pair,比Storage有更大的儲存空間、支援非同步操作、可以儲存二進位資料而非純字串
2.支援Transaction

Cache快取

  • 為了減少重複請求的流量並加速操作,會把這些檔案儲存下來,下次遇到可以直接使用之前存好的東西

  • 正如他有儲存資料於瀏覽器內的技術,被用在Web tracking

  • Cache用於Web tracking的方法
    1.Document Cache:直接把identifier存在cache裡,網站管理員在網頁中插入一段script。
    伺服器隨機生成identifier放在response body>Cache-Control: max-age=31536000(指定保留一年)>瀏覽器看到Cache-Control再將cache存取>使用者再次造訪>瀏覽器直接回應cache中的資料
    https://ithelp.ithome.com.tw/upload/images/20241015/20170075zOdWOObUsP.png
    2.HTTP 301 Permanent Redirection Cache:將identifier儲存於redirection的資訊中,這往往更難發現。網站管理員在網頁中插入一段script。
    伺服器隨機生成identifier>回傳301 Moved Permanently使用者再次造訪>瀏覽器把redirection的紀錄cache>JavaScript得到identifier>使用者再次造訪>瀏覽器看到請求後發現之前cache已經永久重新導向到http://example.com/tracking/>瀏覽器須直接向其發出請求>JavaScript讀到後得出identifier

    301是永久重新導向,cache不會過期
    3.ETag
    如何知道cache是否過期>使用ETag(Entity Tag)辨識
    伺服器回傳時夾帶一個ETag>存進cache並註明ETag>下次使用時請求夾帶的ETag If-None_Match: "123">伺服器檢視是否為最新版本>回傳304 Not Modified則可直接拿cache來使用/如果不是則回傳心得ETag更新cache
    ETag的設定便是cookie的特徵,若把identifier放在ETag中,則可以達到Web tracking
    伺服器自動生成新的identifier ETag: "<identifier>">瀏覽器把資料ㄘㄨ資料存進cache並註明ETag是<identifier>>使用者存取資料時,瀏覽器糗球中夾帶ETag If-None-Match:"<identifier>"
    ETag雖然沒有像cookie持久,但可以促使瀏覽器把cache清空

    三種有關cache的Web tracking方法都可以cross-site tracking

    防禦手段:

    • cache partitioning
      1.讓每個origin有自己的cache
      2.瀏覽器判斷發現cache屬於不同的orgin,只能重新請求資源增加流量
      3.可有效避免cross-site tracking
    • cache verfication
      1.在使用被cache的資源前,先檢查cache是否可能被用於web tracking,當重複請求時資料裡的identifier的內容未改變,則不太可能被用於web tracking
      2.有效避免same-site tracking:請求新的資源被儲存下來>標記為「尚未驗證」>當瀏覽器重新請求相同資源時要重新請求,兩次請求後內容一樣則標記為「已驗證」

資料來源、選用書籍:<Web Tracking的資安攻擊與防禦策略>鐵人賽專用書


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言