<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JWT 應(yīng)該保存在哪里?

          共 1056字,需瀏覽 3分鐘

           ·

          2021-10-29 21:09


          最近幾年的項目我都用JWT作為身份驗證令牌。我一直有一個疑問:服務(wù)端發(fā)放給瀏覽器的JWT到底應(yīng)該存儲在哪里?這里只討論瀏覽器的場景,在這個場景里有三種選擇。

          Cookie

          服務(wù)端可以將JWT令牌通過Cookie發(fā)給瀏覽器,瀏覽器在請求服務(wù)端接口時會自動在Cookie頭中帶上JWT令牌,服務(wù)端對Cookie頭中的JWT令牌進行檢驗即可實現(xiàn)身份驗證。但它容易受到CSRF攻擊的影響。

          解決的方法是通過設(shè)置Cookie的SameSite屬性為Strict??缯緯r不會發(fā)送 Cookie。換言之,只有當前網(wǎng)頁的 URL 與請求目標一致,才會帶上 Cookie。

          Cookie除了易受CSRF攻擊還有XSS攻擊。黑客可以通過JS腳本讀取Cookie中的信息。為了防止這一點,可以設(shè)置Cookie的屬性為HttpOnly。

          response.setHeader("Set-Cookie",?"jwt=jwt_value;Path=/;Domain=domainvalue;Max-Age=seconds;HttpOnly");

          ?

          你可以通過設(shè)置Max-Age來設(shè)置其生存時間。

          localStorage

          localStorage也可以存儲JWT令牌,這種方法不易受到 CSRF 的影響。但是和Cookie不同的是它不會自動在請求中攜帶令牌,需要通過代碼來實現(xiàn)。不過這樣會受到XSS攻擊。另外如果用戶不主動清除JWT令牌,它將永遠存儲到localStorage。

          sessionStorage

          sessionStorage大部分特性類似localStorage,不過它的生命周期不同于localStorage,它是會話級存儲。關(guān)閉頁面或瀏覽器后會被清除。

          總結(jié)

          您可能會注意到所有 3 種方法都有相同的缺點——“易受 XSS 攻擊”。請?zhí)貏e注意 XSS的防護,并始終遵循XSS保護的最佳實踐。

          結(jié)論

          三種形式都容易收到XSS攻擊,因此如果對安全性要求很高,要特別針對性的配置。在三種方式之中,Cookie 提供了一堆安全選項,例如SameSite、HttpOnly等。因此最好使用 Cookie。


          推薦關(guān)注本文作者:碼農(nóng)小胖哥
          分享高質(zhì)量編程知識,探討IT人生
          技術(shù)干貨,實戰(zhàn)技巧,面試技巧,前沿資訊一個都不能少
          瀏覽 39
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  97人妻精品一区二区三区香蕉 | 青娱乐国产在线 | 干屄网| 白峰美羽无码在线观看 | 亚洲电影在线观看 |