jwt面試

1、jwt和security的區別

  • jwt ( json web token)優點:

​ 無狀態,json格式簡單,不需要在服務端存儲

  • 缺點

​ 一旦創建無法銷燬或者修改狀態,沒有辦法做權限 控制

  • security優點:

​ 和spring無縫結合,可以對用戶狀態坐控制,可以做權限控制

  • 缺點

​ 用起來比較複雜,權限控制需要一連串過濾連,消耗服務器內存空間

2、如何銷燬jwt

生成token時,有效期設置短一些

可以和redis結合使用,退出時銷燬redis的token。判斷redis的token即可

還可以添加黑名單功能,對其進行攔截

3、如果token有效期過短,如何保持會話

token要到期時,在重新生成一份token

4、如何防止cookie被篡改

可以設置cokkie的狀態爲httponly

可以在請求中添加防盜鏈

可以把token存放在請求頭中或者local storage中,由於無狀態的token過長,很容易達到4kb

由於容易被篡改,payload中不要放用戶重要信息,如密碼

5、如果用戶禁用cookie怎麼辦

普通用戶一般不知道cookie,也不會禁用,如何禁用我們對其友好提示,讓其開啓

6、如何防止token異地登陸

token是沒辦法做異地的判斷的,這時我們可以採取傳統的session方式

7、你們怎麼做權限控制的

我們有一套權限控制服務,保存用戶的角色和路徑信息、當用戶發起請求的時候,通過網關的的全局pre過濾器攔截所有請求,獲取請求信息,解析jwt參數,根據參數獲取用戶,根據用戶明去查詢數據庫的用戶是否存在,以及當前用戶有無訪問此地址的權限,沒有即攔截

8、你們微服務地址對外暴漏了怎麼辦

首先因爲用戶訪問的時候走的是我們nginx的代理,微服務對外暴漏的可能性很低,即使暴漏了,我們每個微服務也有一套的鑑權校驗策略;首先有一張表存每個微服務的id,密鑰;服務器啓動的時候使用id和密鑰去授權中心生成jwt令牌,去訪問其他的時候訪問攜帶令牌

9、如何防止token被篡改

jwt使用了header和payload參數來校驗是否被篡改,header存放算法類型和類型是jwt方式的參數,payload是存放用戶自定義的參數,還有簽名結合來確認token是否被篡改

參考:https://blog.csdn.net/MINGJU2020/article/details/103039418

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章