合成示範案例 · 此頁使用自建合成工具與資料,包含程式說明與已保存的受控執行結果;瀏覽此頁不會掃描或傳送你的網站資料。
字幕工具 · API 權限檢查
工作紀錄有沒有確認使用者身分?
假設字幕工具會處理使用者上傳的私人影片。這個案例示範如何從一段證據理解影響、交辦修正,再確認安全版本的預期行為。
合成風險版本
可能讀到其他人的處理結果
若 API 只按網址中的 jobId 查詢,猜到或取得其他人的 ID 後,可能讀到影片處理狀態或字幕結果。
合成程式證據JavaScript · 範例片段
// GET /api/jobs/:jobId
const job = await db.jobs.findById(req.params.jobId)
return res.json(job)可以交給開發 AI 的修正任務
任務包含風險、修正目標和驗收方式,不包含任何真實使用者資料或秘密。
請檢查字幕工具的工作紀錄讀取 API。
問題:使用者可能只需更換 jobId,就讀取其他人的影片處理狀態或字幕結果。
修正目標:每次讀取都必須確認工作紀錄屬於目前登入的使用者;不存在或不屬於本人時回傳相同結果。
驗收方式:用兩個測試帳號建立工作紀錄,帳號 A 不得讀取帳號 B 的紀錄;本人仍可正常讀取。
限制:不要記錄影片內容、字幕文字或憑證;不要放寬其他 API 權限。同案例複驗
切換到預先準備的修正版,查看這個單一案例的預期結果。
合成檢查:此版本沒有擁有者比對;本案例應列為待修正。
這是預設 fixture 的互動展示,不是 Aegis 掃描器執行結果,也不代表任何真實網站安全或已完成正式複驗。
實際執行的雙會員隔離案例
以下是建置時由 Aegis 引擎實際請求自建測試站所保存的結果。切換只讀取這三份結果,不會在你的瀏覽器啟動掃描或修正網站。
雙向讀取重現跨會員資料存取,需修正。
受控請求證據
來源為自建測試站的 HTTP 觀察,不是 AI 推測,也不是公開網站掃描。
| 測試情境 | HTTP 狀態 | 回傳紀錄擁有者 |
|---|---|---|
| 未登入讀取 | 401 | — |
| 會員 A 讀取自己的紀錄 | 200 | member-a |
| 會員 B 讀取自己的紀錄 | 200 | member-b |
| 會員 A 讀取會員 B 的紀錄 | 200 | member-b |
| 會員 B 讀取會員 A 的紀錄 | 200 | member-a |
| 讀取不存在的紀錄 | 404 | — |
只保留合成識別碼與狀態;不提供密碼、登入 token 或私人內容。
受控案例允許會員讀取其他人的工作紀錄
在此受控案例中,會員只要取得另一筆工作 ID,就能讀取其他會員的合成處理資料。
交給開發 AI 的修正任務
請在工作紀錄讀取 API 以伺服器登入身分檢查紀錄擁有者,不信任前端傳入的 owner。本人仍可讀取;其他會員與不存在紀錄回傳一致的 404,未登入回傳 401。以兩個合成帳號雙向複驗,保留正常功能,不記錄 token 或真實內容。
此案例尚未提供任意網站的登入檢查;不涵蓋 session 生命週期、寫入操作、付款或其他 API。