1. 最近幾年沒有jwt相關的漏洞,( https://www.cvedetails.com/product/35664/Jwt-Project-JWT.html?vendor_id=16053 ),有沒有漏洞主要看如何應用jwt
2. 已經有許多公司導入jwt取代登入機制,運用方式有
2.1. 寫cookie 但是會將cookie安全性提升httpOnly secure https 限定domain存取、時效性 的方式加強安全性(https://devco.re/blog/2014/06/11/setcookie-httponly-security-issues-of-http-headers-3/)
2.2. local storage 我沒有使用過,不過資料量比較大的時候,存放local storage是一種作法(可以避免日後app開發時儲存的問題)
2.3. oauth 有一種實現方式中的是使用jwt,access token / refresh token 配合上面兩種儲存的方式進行,增加安全性
但是參考 https://anil-pace.medium.com/json-web-tokens-vs-oauth-2-0-85dd0b32057d (這篇的說法是說不要存在local storage)
http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions/ (這篇是說不要用jwt取代session)
建議web使用refresh token & cookie存放,app存放在local storage,加上驗證client IP來防止cookie被盜時,偽裝client發請求或是繞過。
Pass the cookie
https://www.ithome.com.tw/news/142230
(Pass the cookie手法是指,攻擊者利用竊取來的連線cookie來驗證、登入到Web應用或服務。由於連線已經過驗證,使攻擊者可繞過某些MFA協定。) https://embracethered.com/blog/posts/passthecookie/
jwt decode
Jwt的encoded是可以解開的,詳見下圖,可以在https://jwt.io/ 驗證

參考 https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/724248/
https://devco.re/blog/2014/03/10/security-issues-of-http-headers-1/
https://devco.re/blog/2014/04/08/security-issues-of-http-headers-2-content-security-policy/
https://devco.re/blog/2014/06/11/setcookie-httponly-security-issues-of-http-headers-3/
留言