GitHub App權杖變長:檢查40字元假設

Tech
瀏覽 2

如果只有新權杖失敗,先檢查字串經過的路徑,再考慮權限。簽發成功不代表資料庫或代理保留了完整值。

GitHub於2026年10月2日宣布App installation token的stateless移轉完成。預設ghs_APPID_JWT保留ghs_前綴,但從40字元增至約520字元;這不是所有個人權杖的統一規則。

說明簽發、儲存、傳輸與遮蔽的示意圖,不是GitHub截圖或效能測量。
說明簽發、儲存、傳輸與遮蔽的示意圖,不是GitHub截圖或效能測量。

區分格式和存取權限

權限、儲存庫範圍、一小時有效期以及簽發REST API不變。擴大權限不能解決截斷問題,簽發與使用應分開調查。

暫時的X-GitHub-Stateless-S2S-Token標頭將在2026年11月30日停用。驗證兩種格式後於期限前移除,並記錄負責人。

完整保留字串

將權杖視為不透明字串,檢查40字元驗證、過小資料庫欄位、秘密儲存限制,以及長Authorization標頭的拒絕或截斷。

先用合成值測試,只記錄長度與結果。不要將約520設為新的固定上限,應檢查整條路徑的文件限制。

也檢查錯誤日誌

舊格式遮蔽規則可能留下長權杖的部分內容。用合成值檢查拒絕、重試與例外路徑,而非只看成功請求。

GitHub安全文件涵蓋最小權限、遮蔽與日誌審查。本文建議儲存與日誌負責人共同檢查;驗證成功本身不足以證明安全。

小範圍驗證並記錄期限

實務問題是系統能否端到端保留字串。這是從官方通知導出的檢查問題,不是宣稱社群已有共識。

先在非正式環境完成合成測試、最小權限真實呼叫與日誌審查,再擴大範圍。這是本文建議,記錄失敗邊界、負責人及標頭移除期限。

官方來源