fail-closed 與 best-effort fail-open
Fail-closed / Fail-open Design
安全關鍵步驟失敗時從嚴擋下(fail-closed);非關鍵副作用失敗時不拖垮主回應(fail-open)的設計原則。
去識別化這種安全關鍵步驟採 fail-closed:一旦失敗就整個請求回 error,絕不在未遮罩文本上繼續判定,隱私不留破口。
稽核寫入、用量計數、鑑權這些 best-effort 副作用則相反,採 fail-open:就算寫失敗也不會把一個成功的查核回應(200)變成錯誤(500)。判斷標準很簡單,看這一步失敗會不會讓使用者拿到錯的答案;會,就從嚴,不會,就別擋路。
重點
- 安全關鍵 → fail-closed(從嚴)
- 非關鍵副作用 → fail-open(不拖垮主回應)
- 永不把 200 變 500