日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何用Chrome读懂网站监测Cookie

發布時間:2024/8/23 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何用Chrome读懂网站监测Cookie 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者 | 朱順意

責編 | 李雪敬

出品?| CSDN云計算(ID:CSDNcloud)

網站監測工具用于標識用戶的 Cookie 分為第1方 Cookie 和第3方?Cookie,這兩者本質上沒有什么區別,只是身份不同。Cookie 有 Domain?屬性,當 Cookie?的 Domain?與當前訪問的域名不同時,這個 Cookie?為第3方?Cookie,反之為第1方?Cookie。

由于 Domain 的不同,第1方 Cookie 記錄的是用戶在指定站點的行為,第3方 Cookie 記錄的是用戶在不同站點的行為。網站監測工具為你的站點創建了第1方 Cookie,這個 Cookie 屬于你的站點,僅能用于記錄你站點的用戶行為,同時網站監測工具也創建了第3方 Cookie(屬于它自己的Cookie),這個 Cookie 用于記錄所有部署了監測代碼站點的用戶行為。

以 Chrome 為工具,我們來看看 Cookie 是怎么樣的。

查看Cookie

步驟:打開 Chrome > 訪問 www.zhihu.com > 按下 F12 打開 DevTools > 切換到 Application 面板 > 打開左側 Cookies > 選擇 www.zhihu.com。

可以看到,Cookie 有各種屬性:

? Name:Cookie 名稱。

? Value:Cookie 值。

? Domain:Cookie 域名,代表能讀寫這個 Cookie 的域。假設在 DevTools 這里 Domain 為“.zhihu.com”(最前面帶點),則所有以“zhihu.com”結尾的域名都能讀寫這個 Cookie。假設 Domain 為“zhihu.com”(最前面不帶點),此時 Cookie 僅為當前域所用。如果創建 Cookie 時不聲明 Domain,則 Domain 的最前面不帶點。如果創建 Cookie 時聲明 Domain,則無論聲明時有沒有帶點,在 DevTools 都會自動帶點,所聲明的域及其所有子域都能讀寫這個 Cookie。

? Path:Cookie 的有效訪問路徑,代表基于 Domain 下能讀寫這個 Cookie 的頁面路徑。假設 Domain 為 “.zhihu.com”,Path 為 “/”,則 zhihu.com 根目錄下所有頁面路徑都能讀寫這個 Cookie,如果 Path 為 “/question”,則 Cookie 僅在 question 頁面路徑下能被讀寫。

? Expires/Max-Age:Cookie 的過期時間,采用協調世界時(UTC),與中國標準時間相差8小時。時間格式為 ”yyyy-mm-ddThh:mm:ss.sssZ”,T是分隔日期和時分秒的符號,”.sss” 代表毫秒,Z 表示 UTC 零時區。如果創建 Cookie 時默認不填,則此值為 Session,即關閉瀏覽器自動清除 Cookie。

? Size:Cookie 的大小。

? Httponly:是否允許客戶端讀寫Cookie,常見客戶端方法有 document.cookie。

? Secure:是否只能通過 Https 協議讀寫 Cookie。

? SameSite:跟第3方 Cookie 的讀寫限制有關,我們后面會講到。

? Priority:Cookie 的優先級,有 Low/Medium/High 這3種值,當 Cookie 超出瀏覽器存儲上限時,優先級低的 Cookie 將被清除。

第1方Cookie

網站監測工具標識用戶常用第1方Cookie,即Cookie的Domain為當前訪問站點的頂級域名。以Google Analytics為例(以下簡稱GA),下面這個藍底色的就是GA標識用戶的Cookie,它的Domain為”.zhihu.com”,所以它為第1方Cookie。

GA 標識用戶的 Cookie,Domain 為 ”.zhihu.com”,意味著這個 Cookie 在 zhihu.com的所有子域名下,都能被讀寫。因此,zhihu.com、www.zhihu.com、daily.zhihu.com、static.daily.zhihu.com 在用同一套監測代碼的時候,標識用戶所用的 Cookie 是一樣的。

GA 標識用戶的 Cookie 名稱為 “_ga”,它的值是這樣構成的:

? 版本號:GA1 為版本相關信息,所有被 GA 監測的站點幾乎都一樣。

? Domain長度:2為 “_ga” 這個 Cookie 的 Domain 長度,”.zhihu.com” 長度為2。當被監測的站點為 ”xxx.com.cn” 時,Domain 長度為3。當被監測的站點使用多級域名例如 ”www1.www2.xxx.com” 時,在 GA 的這個 Cookie,Domain 依然為頂級域名 ”.xxx.com”,長度依然為2。

? 唯一的隨機數:GA 生成的隨機數字,具有唯一性。

? 首次訪問的時間戳:用戶首次訪問站點,GA 獲得的時間戳,你可以打開 Chrome DevTools 的 Console 面板,用 new Date 把它轉換成中國標準時間。這個時間再加上2年,等于這個 Cookie 的 Expires/Max-Age 的中國標準時間,也就是說 GA 標識用戶的 Cookie 有效期為2年,2年之后 Cookie 被清除。

從GA的JS代碼,也能看出這個值的構成:

那么,這個第1方 Cookie 屬于被監測的站點,但又是由 GA 創建,這是怎么一回事?

GA 的 JS 代碼包含創建 Cookie 的方法,這段 JS 被嵌入到網站,相當于網站自己創建了 Cookie,因此這個過程不存在跨域的問題。目前市面上的網站監測工具都是用這樣的方法來創建第1方 Cookie 的。換言之,GA 這段 JS 也能夠讀寫這個站點的所有第1方 Cookie(已設置 Httponly 的除外)。

第3方Cookie

網站監測代碼在發起請求時,能創建 Domain 不同于當前站點的 Cookie,也就是第3方 Cookie,它一般用于追蹤用戶在不同站點的訪問行為。

以百度統計為例,只要你的站點部署了百度統計代碼,就能看到這個名為 ” HMACCOUNT_BFESS” 的第3方 Cookie,它看起來就是這樣的字符串:

這時右鍵選中 Cookie,選擇 ”Show Requests With This Cookie”:

打開了 Network,點擊第1個請求,拉到 Request Headers 會發現有2個 Set-Cookie,說明這個第3方 Cookie 這是由服務器端設置的:

第1個的末尾標記了黃色符號,代表這個 Cookie 沒有創建成功,因為創建時沒有設置 SameSite 和 Secure。第2個 Cookie,也就是 ”HMACCOUNT_BFESS”,因為同時滿足 SameSite=None 和 Secure=Ture 這兩個條件,Cookie 能被創建。

SameSite 屬性是什么?這是一個限制第3方 Cookie 創建、讀寫的屬性。從 Chrome v80 開始,對第3方 Cookie 的限制就嚴格了許多。現在想要創建第3方 Cookie,需要滿足以下條件:

①通過 Https 協議

②設置 SameSite 為 None

③設置 Secure 為 True

當一個 Cookie 作為第3方 Cookie 時,它能不能被讀寫,由 SameSite 決定。當然這個讀寫,還是必須先取決于 Cookie 的 Domain,否則就成跨域了。SameSite 有以下3種值:

①Strict

假如 Cookie 的 SameSite為Strict,則當它作為第3方 Cookie 時會被完全禁止讀取,盡管你可能在 DevTools 的 Application 面板還能看到這個 Cookie。

②Lax

假如 Cookie 的 SameSite 為 Lax,那么當請求為以下類型,才能讀寫這個第3方 Cookie:

Lax也是Chrome的默認設置。

③None

想要關閉 SameSite 屬性,可以設置第3方 Cookie 的 SameSite 屬性為 None,要想讀取 Cookie 同時還必須設置 Secure 為 True。這也是為什么我們看到百度統計的 Cookie 設置了 SameSite=None 和 Secure 屬性。

第1方 Cookie 和第3方 Cookie 在網站監測都很重要,如今 Chrome 對第3方 Cookie 的限制越來越強,為網站監測工具讀寫第3方 Cookie 增加了一定難度。如何在合理追蹤用戶行為的同時保護用戶隱私,這是一個值得全行業探討的主題。

更多閱讀推薦

  • 下一代 IDE:Eclipse Che 究竟有什么奧秘?

  • 竊隱私、放高利貸,輸入法的騷操作真不少!

  • 進入編譯器后,一個函數經歷了什么?

  • 程序員離職后收到原公司 2400 元,被告違反競業協議賠 18 萬

  • 5年5億美金,華為昇騰如何爭奪AI開發者?

總結

以上是生活随笔為你收集整理的如何用Chrome读懂网站监测Cookie的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。