JWT 會洩漏什麼——為什麼不要把生產環境的 token 貼上網
JSON Web Token 看起來像亂碼,但它嚴格由三段組成:header、payload、signature。搞清楚每一段的職責是一種安全技能。
簽章防竄改——不防閱讀
header 和 payload 就是普通 Base64URL:任何拿到 token 的人都能毫不費力地讀出 user id、email、角色與到期時間。簽章只證明 payload 沒有被沒有金鑰的人改過。
經典坑:alg=none
如果伺服器接受 algorithm 設為 none 的 token,簽章就會被完全跳過——這是一類著名的接管漏洞。伺服器必須固定自己期望的演算法。
永遠不要把生產 token 貼到隨便什麼網站
會話 token 是持有者憑證:誰拿著它,誰就能在到期前冒充你。把有效 token 貼到不明解碼器,等於把會話交給那個網站。要檢查 token,請用瀏覽器本地解碼的工具——例如我們的 JWT 解碼器,token 永遠不離開你的瀏覽器——而且最好一開始就用測試 token。
快速清單
- 先看 exp 再信任 token
- 確認演算法是伺服器期望的那個
- 把每個 token 當成可讀的,永遠不是秘密
安全檢查一個 token:本地解碼——header 與 payload 即時呈現,不送出任何資料。