01 / 授權安全
Access Token 是提交給資源伺服器的通行證
Access Token 中文常譯為存取權杖。客戶端呼叫受保護 API 時帶上它,資源伺服器據此判斷允許哪些操作。
它通常包含或對應使用者、有效期、權限範圍與簽發者等資訊,但具體格式可以是不可讀隨機字串,也可以是帶簽章結構。
能解碼某種權杖不代表已驗證真偽。伺服器仍須檢查簽章或查詢狀態、簽發者、接收者、期限與授權範圍。
存取權杖一般設為較短有效期,目的是限制外洩後可被濫用的時間,但短效不能取代安全傳輸與儲存。
它不是使用者密碼,也不應要求使用者複製給客服、陌生人或第三方網站。
02 / 授權安全
Refresh Token 只用來取得新授權
Refresh Token 中文常譯為更新權杖。當存取權杖過期時,客戶端可把更新權杖交給授權伺服器,換取新的存取權杖。
更新權杖通常不應傳給一般資源 API,因為它的用途是更新授權,而非直接讀取帳戶資料。
由於有效期可能較長、可持續換取新權杖,外洩風險往往更高,應放在更受保護的位置並限制使用環境。
有些系統每次更新都輪換 Refresh Token,使舊值失效;若舊值再次出現,可作為重播或外洩警號。
並非每個登入流程都使用更新權杖。是否發放、有效多久及能否撤銷,取決於授權設計與客戶端類型。
03 / 授權安全
存放位置與傳送路徑決定風險
權杖不應放入網址查詢字串,因為網址可能進入瀏覽紀錄、伺服器日誌、分析工具或轉介資訊。
瀏覽器應考慮安全 Cookie、記憶體保存及跨站請求防護等取捨;不能把 Local Storage 當成對所有架構都安全的固定答案。
行動或桌面應用可使用作業系統提供的安全儲存。無論平台,都要避免把權杖寫入除錯日誌、截圖或錯誤報告。
伺服器之間傳送必須使用加密連線,並限制權杖的 audience 與 scope,讓一個服務取得的權杖不能任意用於另一服務。
前端程式碼中的公開識別碼不等於秘密;但任何能代表使用者授權的權杖都應按敏感資料處理。
04 / 授權安全
外洩後不能只等待自然過期
若懷疑 Access Token 外洩,應撤銷工作階段、縮小權限或令相關權杖失效,並檢查異常 API 活動。
若 Refresh Token 外洩,攻擊者可能反覆取得新授權,因此更要終止整條權杖家族、要求重新登入並調查來源。
使用者收到陌生登入或授權通知時,應自行開啟官方入口更改憑證、登出陌生裝置及啟用多因素驗證,不點擊不明訊息連結。
權杖機制做得完善,只能說明帳戶授權的一部分;它不能證明線上內容公平、服務合法或交易值得信任。
本文僅供知識分享,請理性看待;本站不接受投注、不提供註冊或博彩平台連結。數位安全之外,仍應設定清楚時間與支出界線。