雲端平台會攔截認證標頭的地雷

登入成功但所有 API 都驗證失敗?先懷疑代管平台攔截了 Authorization 標頭,改用自訂欄位傳身分證明。

分享
雲端平台會攔截認證標頭的地雷
定義:某些雲端網站代管服務(如 Azure Static Web Apps)會把 HTTP 請求裡的 Authorization 標頭(夾帶「我是誰」證明的欄位)攔截下來自己用,後端根本收不到——造成「登入成功但所有 API 都驗證失敗」的詭異現象。

當時的症狀 vs 真正的原因

症狀:使用者明明登入成功,打 API(前端向後端要資料的呼叫)卻一直說「驗證失敗」,錯誤訊息還誤導人(顯示 invalid algorithm,看起來像加密方式錯了)。

真正的原因:代管平台把 Authorization 標頭保留給自己的認證機制用,攔下來不轉交,後端收到的請求裡根本沒有身分證明。

解法(AI 當時怎麼解)

另外開一個自訂欄位 X-Auth-Token 來傳身分證明,避開平台保留的欄位。

症狀對照(快速對號入座)

登入成功但所有 API 都 401/驗證失敗 → 先懷疑平台攔標頭,不是密碼錯,也不是加密演算法問題。

驗收時該檢查什麼

驗收任何登入功能時:登入後實際打一支需要身分的 API 看有沒有資料回來,不能只看「登入成功」畫面。

相關條目

Read more

當軟體小白開始遇到資安問題

當軟體小白開始遇到資安問題

前端的權限處理好了,那後端呢? 花了快一天的時間,才弄清楚我到底在修什麼issue,這個資安問題分成兩部分。 第一個是前端寫好的權限,但使用者可以透過網頁開發者工具(F12)去修改自己的身分,把自己從一般使用者改成主管,來獲得操作權限。 要解決這個問題有三個步驟要設定: 1. 資料行安全性設定檔,加成員( powerplatform > 環境 > XXXX > 設定>資料行安全性設定 > 使用者) 2. 啟用資料行安全性( Power Apps > 資料表 > 使用者 > 資料行 > 點擊欲修改的顯示名稱 > 進階選項) 3. 回到資料行安全性設定檔,編輯資料行權限(讀取、更新、建立) 如此一來,有更新、建立權限的人員,才能去修改該資料行的值。 確保了後端的使用者權限不會被亂改後,

By yuchang23