自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JWT應該保存在哪里?你找到了嗎?

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

[[428158]]

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

Cookie

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

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

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

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

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

localStorage

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

sessionStorage

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

總結

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

結論

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

本文轉(zhuǎn)載自微信公眾號「碼農(nóng)小胖哥」,可以通過以下二維碼關注。轉(zhuǎn)載本文請聯(lián)系碼農(nóng)小胖哥公眾號。

 

責任編輯:武曉燕 來源: 碼農(nóng)小胖哥
相關推薦

2022-07-11 08:48:52

業(yè)務轉(zhuǎn)型CIO

2014-01-07 13:54:40

Hadoop日志

2020-10-20 07:49:00

JWT(JSON We

2015-05-26 09:35:29

運維運維危機云計算應用

2019-02-18 09:45:53

CIO預算BI

2023-10-31 08:36:16

LodashJavaScript

2012-03-24 20:31:59

移動游戲

2020-04-14 08:46:47

Java對象編譯器

2011-06-28 09:16:11

切克簽到

2021-09-03 06:46:34

MyBatis緩存后端

2022-10-13 08:43:24

大數(shù)據(jù)語法SQL

2025-01-14 08:32:55

JWT令牌.NET

2021-10-25 08:48:21

客戶體驗CIOIT領導者

2018-10-25 15:04:22

編程程序員陷阱

2012-08-09 12:21:04

打印機

2021-12-26 18:30:56

嵌入式ARM鏈接

2018-07-24 08:21:35

長生生物疫苗國內(nèi)

2021-07-29 18:46:52

可視化類型圖形化

2017-10-24 12:32:03

小程序APPbug

2022-08-19 09:34:46

管理能力
點贊
收藏

51CTO技術棧公眾號