谷歌瀏覽器 setCookie失敗的原因分析(samesite)


這篇文章就跟大家聊聊最近項目遇見的小問題,cookie的SameSite

以前,沒了解過cookie中所有的屬性,最近也是遇到問題了才找資料復習一下

    關於cookie的SameSite屬性,我們其實可以看阮一峰老師的這篇:Cookie 的 SameSite 屬性

大致在這里就概況下

1,SameSite 是谷歌瀏覽器針對 cookie 新增的一個屬性,主要作用就是為了防止 CSRF 攻擊和用戶追蹤

那么關於CSRF攻擊是什么,不懂得同學可以看上面那篇阮一峰老師的教程,里面有詳細的說明,我們也一句話概括吧,下面:

Cookie 往往用來存儲用戶的身份信息,惡意網站可以設法偽造帶有正確 Cookie 的 HTTP 請求,這就是 CSRF 攻擊。

2,那么SameSite 屬性到底是怎么實現了防止CSRF攻擊和用戶追蹤呢?

cookie的sameSite屬性就是用來限制第三方網站拿到你的cookie,從而達到減少風險的效果。

比如我們常用的 swagger ,本地測試時,調用login接口,然后查詢其他接口會帶上cookie,

但是如果我們谷歌瀏覽器打開了SameSite開關,然后我們在本地調用測試環境的接口時,會發現其他接口拿不到login的setCookie,從而導致登錄無效

只有我們關閉瀏覽器的sameSite開關,我們才可以獲得不同域名的setCookie

 

關於SameSite的詳細屬性以及說明,請參考阮一峰老師的教程

Cookie 的 SameSite 屬性

 

那么我們怎么關閉谷歌的SameSite設置呢?

 

1,首先,我們在谷歌輸入 chrome://flags

谷歌配置頁面

2,然后我們輸入框輸入 :SameSite by default cookies、Cookies without SameSite must be secure

3,設置上面這兩項設置成 Disable

然后重啟谷歌就可以關閉這個設置了

 

當然,如果你不想設置谷歌你也可以通過設置cookie實現訪問

關於cookie的設置

報文里面set-cookie,添加SameSite=None; Secure=true

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM