網頁安全性驗證

含有內容、ISSUE、解決方式、後記

|| 專案內容

使用者於LINE官方帳號點擊會員卡連結(API),系統會進行LINE LOGIN 得知特定身份後,將UID置於連結,並導頁至會員卡網頁;而前端人員拿取UID打API取得會員卡資料。

|| 專案ISSUE

有位使用者複製LOGIN後的連結(含有UID資訊),接著使用其他裝置點擊其連結,發現仍可以看到會員卡,故認為其有安全性的憂慮,且有違反歐洲的某的法規,因此要求改善。

|| 解決方式

  1. LINE LOGIN將Line 一次性的參數置入連結
  2. 前端人員取得連結參數, 打API再次驗證連結參數正確性
  3. 驗證成功後, Response Headers 多一個key
  4. 打API取會員卡資料時,Request Headers 多增加ㄧkey參數
  5. 若步驟2失敗時, 再走一次步驟1

|| 後記

若之後其他使用者再複製此連結時,因為一次性參數原則,會再要求依據登入帳號密碼,執行LINE LOGIN驗證,也加強了安全性。

但這樣的一次性參數的安全性修正也苦了測試人員及開發人員,在手機端,因為是已登入APP狀態,所以不會要求輸入帳號密碼,也不會影響體驗 ; 但如果在網頁端,相關人員就要一直輸入帳號密碼或點擊確認輸入按鈕,嗚嗚嗚!