最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Cookie 的 SameSite 屬性小結(jié)

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

一、CSRF 攻擊是什么?

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

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

Set-Cookie:id=a3fWa;

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

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

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

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

這種第三方網(wǎng)站引導(dǎo)發(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,從而減少安全風險。

它可以設(shè)置三個值。

  • 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,但是導(dǎo)航到目標網(wǎng)址的 Get 請求除外。

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

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

請求類型 示例 正常情況 Lax
鏈接 <a href="..." rel="external nofollow" rel="external nofollow" ></a> 發(fā)送 Cookie 發(fā)送 Cookie
預(yù)加載 <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ā)送

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

2.3 None

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

下面的設(shè)置無效。

Set-Cookie: widget_session=abc123; SameSite=None

下面的設(shè)置有效。

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

三、參考鏈接

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

相關(guān)文章

  • git與svn的區(qū)別及優(yōu)缺點說明

    git與svn的區(qū)別及優(yōu)缺點說明

    Git和SVN都是版本控制系統(tǒng),用于代碼管理,SVN是集中式的,需要聯(lián)網(wǎng)并且中央服務(wù)器存在單點故障的風險,Git是分布式的,每個終端都是一個完整的倉庫,不依賴中央服務(wù)器,提高了工作的靈活性和安全性,SVN易于管理權(quán)限,但必須聯(lián)網(wǎng)工作且更新提交可能面臨沖突
    2024-10-10
  • Git報錯error:pathspec‘XXX‘did not match any file(s) known to git問題及解決過程

    Git報錯error:pathspec‘XXX‘did not match any&nbs

    這篇文章主要介紹了Git報錯error:pathspec‘XXX‘did not match any file(s) known to git問題及解決過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • gVim, gVim Easy, gVim Read-only 的簡單區(qū)別

    gVim, gVim Easy, gVim Read-only 的簡單區(qū)別

    今天打算好好學習一下python,買了一本書看了介紹無語了,gVim, gVim Diff, gVim Easy, gVim Read-only 的簡單區(qū)別,需要的朋友可以參考下
    2016-01-01
  • 算法系列15天速成 第五天 五大經(jīng)典查找【中】

    算法系列15天速成 第五天 五大經(jīng)典查找【中】

    大家可否知道,其實查找中有一種O(1)的查找,即所謂的秒殺
    2013-11-11
  • 使用MASA?Blazor開發(fā)查詢表格頁

    使用MASA?Blazor開發(fā)查詢表格頁

    MASA?Blazor?是一個基于?Material?Design?設(shè)計語言的?Blazor?組件庫,dotNET開發(fā)者只需或者甚至不需要懂得?javascript?就能開發(fā)一個企業(yè)級中后臺系統(tǒng),這篇文章主要介紹了使用MASA?Blazor開發(fā)一個標準的查詢表格頁,需要的朋友可以參考下
    2022-04-04
  • 解決idea打開窗口/tab過多導(dǎo)致隱藏的問題

    解決idea打開窗口/tab過多導(dǎo)致隱藏的問題

    這篇文章主要介紹了解決idea打開窗口/tab過多導(dǎo)致隱藏的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 301重定向代碼合集(iis,asp,php,asp.net,apache)

    301重定向代碼合集(iis,asp,php,asp.net,apache)

    腳本之家將SEO工作中所需要的301轉(zhuǎn)向代碼進行了整理,收藏并分享,以備查閱。
    2011-02-02
  • Windows系統(tǒng)下安裝GIt及GIT基本認識和配置

    Windows系統(tǒng)下安裝GIt及GIT基本認識和配置

    這篇文章主要介紹了Windows系統(tǒng)下安裝GIt及GIT基本認識和配置,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • nacos?2.1.0集群多節(jié)點部署最新詳細教程

    nacos?2.1.0集群多節(jié)點部署最新詳細教程

    這篇文章主要介紹了全網(wǎng)最新的nacos?2.1.0集群多節(jié)點部署教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • 詳解git合并沖突解決方法

    詳解git合并沖突解決方法

    這篇文章主要介紹了詳解git合并沖突解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07

最新評論

梧州市| 来安县| 防城港市| 阳春市| 二连浩特市| 收藏| 隆回县| 兴业县| 通城县| 政和县| 卢龙县| 白河县| 靖边县| 兴业县| 滁州市| 萨嘎县| 甘洛县| 奉贤区| 弥勒县| 松滋市| 观塘区| 苍梧县| 台中市| 团风县| 武山县| 丹阳市| 北流市| 米林县| 乾安县| 张家界市| 通辽市| 上高县| 观塘区| 探索| 五常市| 惠来县| 天柱县| 平顺县| 康保县| 二连浩特市| 宁安市|