欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Cookie 的 SameSite 屬性小結

 更新時間:2021年10月22日 11:36:35   作者:阮一峰  
Chrome 51 開始,瀏覽器的 Cookie 新增加了一個SameSite屬性,用來防止 CSRF 攻擊和用戶追蹤,下面在通過本文給大家詳細介紹下SameSite 屬性的相關知識,感興趣的朋友一起看看吧

一、CSRF 攻擊是什么?

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

舉例來說,用戶登陸了銀行網(wǎng)站your-bank.com,銀行服務器發(fā)來了一個 Cookie。

Set-Cookie:id=a3fWa;

用戶后來又訪問了惡意網(wǎng)站malicious.com,上面有一個表單。

<form action="your-bank.com/transfer" method="POST">
  ...
</form>

用戶一旦被誘騙發(fā)送這個表單,銀行網(wǎng)站就會收到帶有正確 Cookie 的請求。為了防止這種攻擊,表單一般都帶有一個隨機 token,告訴服務器這是真實請求。

<form action="your-bank.com/transfer" method="POST">
  <input type="hidden" name="token" value="dad3weg34">
  ...
</form>

這種第三方網(wǎng)站引導發(fā)出的 Cookie,就稱為第三方 Cookie。它除了用于 CSRF 攻擊,還可以用于用戶追蹤。

比如,F(xiàn)acebook 在第三方網(wǎng)站插入一張看不見的圖片。

<img src="facebook.com" style="visibility:hidden;">

瀏覽器加載上面代碼時,就會向 Facebook 發(fā)出帶有 Cookie 的請求,從而 Facebook 就會知道你是誰,訪問了什么網(wǎng)站。

二、SameSite 屬性

Cookie 的SameSite屬性用來限制第三方 Cookie,從而減少安全風險。

它可以設置三個值。

  • Strict
  • Lax
  • None

2.1 Strict

Strict最為嚴格,完全禁止第三方 Cookie,跨站點時,任何情況下都不會發(fā)送 Cookie。換言之,只有當前網(wǎng)頁的 URL 與請求目標一致,才會帶上 Cookie。

Set-Cookie: CookieName=CookieValue; SameSite=Strict;

這個規(guī)則過于嚴格,可能造成非常不好的用戶體驗。比如,當前網(wǎng)頁有一個 GitHub 鏈接,用戶點擊跳轉(zhuǎn)就不會帶有 GitHub 的 Cookie,跳轉(zhuǎn)過去總是未登陸狀態(tài)。

2.2 Lax

Lax規(guī)則稍稍放寬,大多數(shù)情況也是不發(fā)送第三方 Cookie,但是導航到目標網(wǎng)址的 Get 請求除外。

Set-Cookie: CookieName=CookieValue; SameSite=Lax;

導航到目標網(wǎng)址的 GET 請求,只包括三種情況:鏈接,預加載請求,GET 表單。詳見下表。

請求類型 示例 正常情況 Lax
鏈接 <a href="..." rel="external nofollow" rel="external nofollow" ></a> 發(fā)送 Cookie 發(fā)送 Cookie
預加載 <link rel="prerender" href="..." rel="external nofollow" rel="external nofollow" /> 發(fā)送 Cookie 發(fā)送 Cookie
GET 表單 <form method="GET" action="..."> 發(fā)送 Cookie 發(fā)送 Cookie
POST 表單 <form method="POST" action="..."> 發(fā)送 Cookie 不發(fā)送
iframe <iframe src="..."></iframe> 發(fā)送 Cookie 不發(fā)送
AJAX $.get("...") 發(fā)送 Cookie 不發(fā)送
Image <img src="..."> 發(fā)送 Cookie 不發(fā)送

設置了StrictLax以后,基本就杜絕了 CSRF 攻擊。當然,前提是用戶瀏覽器支持 SameSite 屬性。

2.3 None

Chrome 計劃將Lax變?yōu)槟J設置。這時,網(wǎng)站可以選擇顯式關閉SameSite屬性,將其設為None。不過,前提是必須同時設置Secure屬性(Cookie 只能通過 HTTPS 協(xié)議發(fā)送),否則無效。

下面的設置無效。

Set-Cookie: widget_session=abc123; SameSite=None

下面的設置有效。

Set-Cookie: widget_session=abc123; SameSite=None; Secure

三、參考鏈接

到此這篇關于Cookie 的 SameSite 屬性的文章就介紹到這了,更多相關Cookie SameSite 屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 算法系列15天速成 第十二天 樹操作【中】

    算法系列15天速成 第十二天 樹操作【中】

    先前說了樹的基本操作,我們采用的是二叉鏈表來保存樹形結構,當然二叉有二叉的困擾之處,比如我想找到當前結點的“前驅(qū)”和“后繼”,那么我們就必須要遍歷一下樹,然后才能定位到該“節(jié)點”的“前驅(qū)”和“后繼”,每次定位都是O(n),這不是我們想看到的,那么有什么辦法來解決呢
    2013-11-11
  • vscode?debug設置參數(shù)與環(huán)境變量圖文詳解

    vscode?debug設置參數(shù)與環(huán)境變量圖文詳解

    這篇文章主要給大家介紹了關于vscode?debug設置參數(shù)與環(huán)境變量的相關資料,文中通過圖文以及代碼示例介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 徹底卸載VSCode的方法步驟(附圖文)

    徹底卸載VSCode的方法步驟(附圖文)

    VSCode卸載后重新安裝,會發(fā)現(xiàn)好像把之前的設置和配置也復原,這樣就達不到重裝的目的,問題就在于卸載時沒有卸載干凈,下面這篇文章主要給大家介紹了關于徹底卸載VSCode的方法步驟,需要的朋友可以參考下
    2023-04-04
  • 十分鐘內(nèi)學會 避免用戶刷新導致重復POST提交

    十分鐘內(nèi)學會 避免用戶刷新導致重復POST提交

    在Web應用中,采用POST提交信息是非常常見的,然而如果目標頁面打開得太慢,用戶就可能會刷新頁面,這時候之前已經(jīng)提交過的信息就會被重復提交。
    2009-08-08
  • linux系統(tǒng)使用vscode進行qt開發(fā)的過程分享

    linux系統(tǒng)使用vscode進行qt開發(fā)的過程分享

    最近在Linux上搞Qt,搞的一頭霧水,小編把整個過程記錄下,分享需要的朋友,如果大家對linux系統(tǒng)使用vscode進行qt開發(fā)相關知識感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • MAC系統(tǒng)IDEA顏值插件MaterialThemeUI

    MAC系統(tǒng)IDEA顏值插件MaterialThemeUI

    俗話說,工欲善其事必先利其器。工具的顏值也很重要,好的主題讓人賞心悅目,有碼代碼的欲望。今天推薦一個IDEA顏值類插件:Material Theme UI
    2021-09-09
  • Azkaban報錯-azkaban.executor.ExecutorManagerException: No active executors found

    Azkaban報錯-azkaban.executor.ExecutorManagerException: No acti

    這篇文章主要介紹了Azkaban報錯-azkaban.executor.ExecutorManagerException: No active executors found,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2020-05-05
  • POST與GET方法的區(qū)別簡要分析

    POST與GET方法的區(qū)別簡要分析

    原理介紹:理論上說,GET是從服務器上請求數(shù)據(jù),POST是發(fā)送數(shù)據(jù)到服務器。事實上,GET方法是把數(shù)據(jù)參數(shù)隊列(query string)加到一個URL上,值和表單是一一對應的。
    2008-10-10
  • 教你JVM怎么使用native memory

    教你JVM怎么使用native memory

    這篇文章主要為大家介紹了JVM怎么使用native memory原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Git下載、安裝與環(huán)境配置的詳細教程

    Git下載、安裝與環(huán)境配置的詳細教程

    這篇文章主要介紹了Git下載、安裝與環(huán)境配置,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11

最新評論