Cookie SameSite 屬性
SameSite是Cookie最新增加屬性,用於限制第三方Cookie。
可以有效的遏制CSRF攻擊,關於此攻擊具體參閱CSRF 攻擊與防禦一章節。
一.第三方Cookie:
首先我們要了解一下什麼是第三方Cookie。
(1).存在網站A、B和C。
(2).A中的URL可能是指向本站,也可能是指向B或者C。
(3).指向本站A的是第一方請求,指向B或者C的是第三方請求。
簡單程式碼示例如下:
[HTML] 純文字檢視 複製程式碼<a href="a.com/page.html">第一方請求</a> <a href="b.com/page.html">第三方請求</a> <a href="c.com/page.html">第三方請求</a>
在A站分別向自身、B和C站傳送了請求,這就是第一方與第三方請求。
明白了第三方請求,那麼也就很容易理解什麼是第三方Cookie。
第一方請求和第三方請求都會附帶上各自的Cookie,第三方請求附帶的Cookie稱之為第三方Cookie。
CSRF攻擊就是利用第三方Cookie完成的,Cookie的SameSite屬性就是用來限制第三方Cookie,達到安全預期。
二.SameSite屬性:
前面進行了一下知識鋪墊,下面進入正題,開始分析一下SameSite屬性。
首先從其名稱入手,SameSite由如下兩個單詞合成:
(1).same:翻譯成漢語具有"相同"的意思。
(2).site:翻譯成漢語具有"站點"的意思。
合起來就是"相同站點"的意思,顧名思義,是用來對第三方站點Cookie進行限制
語法結構:
[JavaScript] 純文字檢視 複製程式碼SameSite=Strict|Lax|None
屬性值解析:
1.Strict:
禁用任何第三方請求Cookie。
確實達到了最安全的程度,但是很多時候會影響使用者體驗。
下面舉個影響使用者體驗的例子:
(1).現在已經登入了螞蟻部落賬號正在瀏覽內容。
(2).百度搜尋特效下載進入螞蟻部落,這時候卻發現,自己處於未登入狀態。
2.Lax:
比Strict要寬鬆很多,下面做一下總結:
(1).對於第三方非同步請求,則禁止第三方Cookie。
(2).對於第三方同步且是GET請求,則不禁止第三方Cookie。
通過<script>、<link>、<img>和<iframe>發起的是非同步請求,如果是第三方請求,那麼禁止Cookie。
通過點選連結或者提交表單(必須是GET)發起的請求是同步請求,即便是第三方請求,也不會禁止Cookie。
3.None:
這個就不用多介紹了,對於第三方請求的Cookie不做任何限制,於是可能被鑽空子。
相關文章
- Cookie 的 SameSite 屬性Cookie
- [譯] 理解 Cookie 的 SameSite 屬性Cookie
- Cookie expires 屬性Cookie
- Cookie HttpOnly 屬性CookieHTTP
- Cookie Secure 屬性Cookie
- Cookie path 屬性Cookie
- Cookie domain 屬性CookieAI
- SpringBoot的Cookie sameSite之坑Spring BootCookie
- samesite-cookie詳解(譯文)Cookie
- Cookie設定HttpOnly屬性CookieHTTP
- Cookie max-age 屬性Cookie
- 什麼是 cookie 的 httponly 屬性CookieHTTP
- Cook Cookie, 我把 SameSite 給你燉爛了Cookie
- 騰訊三面:Cookie的SameSite瞭解吧,那SameParty呢?Cookie
- 網路安全知識點中,Cookie有哪些安全屬性?Cookie
- 求助,怎麼修改 response 響應中的 Cookie 的屬性值Cookie
- HTTPS會話裡的敏感Cookie沒有設定Secure屬性HTTP會話Cookie
- CMake 屬性之全域性屬性
- defer 屬性和 async 屬性
- CSS 屬性篇(七):Display屬性CSS
- CMake 屬性之目錄屬性
- CMake 屬性之目標屬性
- Python - 物件導向程式設計 - 公共屬性、保護屬性、私有屬性Python物件程式設計
- CSS字型屬性和文字屬性詳解CSS
- Python 類的屬性與例項屬性Python
- python物件屬性管理(2):property管理屬性Python物件
- 根據屬性字串獲取屬性值字串
- CAD屬性編輯操作——物件屬性教程物件
- cssRules 屬性CSS
- previousElementSibling 屬性
- translucent屬性
- parentRule 屬性
- parentStyleSheet屬性
- cssText 屬性CSS
- Property屬性
- 私有屬性
- background屬性
- allowfullscreen 屬性