Spring Security與jwt

Spring Security整合案例:

https://segmentfault.com/a/1190000018786116

https://www.jianshu.com/p/6307c89fe3fa

SpringBoot整合:

https://www.jianshu.com/p/9f5b09b3739a

JWT的問題與解決方案:

https://www.cnblogs.com/idoljames/p/11693762.html

 

JWT前端存儲方案:

csrf 攻擊無法獲取第三方的 cookie,而是直接使用 cookie進行查詢的時候會自動攜帶 cookie。xss攻擊通過代碼注入可以獲取 cookie。需要設置轉義。

方式一、客戶端使用 cookie直接認證,需要設置 cookie爲 httpOnly,可以防止 xss攻擊。但是無法防止 csrf攻擊。需要設置僞隨機數 X-XSRF-TOKEN。(推薦!不 需要處理 xss,並且xsrf 隨機數有完善的應用機制)

方式二、 客戶端使用 auth授權頭認證,token存儲在 cookie中,需要防止xss攻擊。可以防止 csrf攻擊,因爲 csrf只能在請求中攜帶 cookie,而這裏必須從 cookie中拿出相應的值並放到 authorization 頭中。實際上cookie不能跨站(同源政策)被取出,因此可以避免 csrf 攻擊。(適用於 ajax請求或者 api請求,可以方便的設置 auth頭)

方式三、可以將token存儲在 localstorage裏面,需要防止xss攻擊。實現方式可以在一個統一的地方複寫請求頭,讓每次請求都在header中帶上這個token, 當token失效的時候,後端肯定會返回401,這個時候在你可以在前端代碼中操作返回登陸頁面,清除localstorage中的token。(適用於 ajax請求或者 api請求,可以方便的存入 localstorage)

設置 HTTPS,可以防止提交時的用戶名或者密碼被攔截或讀取。

 

JS原生創建/獲取cookie

https://www.jianshu.com/p/b497ff6100ec

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