前情提要:跟我一起複習資安睡前故事
2025年版 第 10 名:異常狀態處理不當今天也比較早就收看 Gemini 的資安故事集,本次《OWASP Top 10》要說的是「不安全的設計」,屬於先天不良,解法常常得是砍掉重練。
第 6 名:不安全的設計
這條的核心在於:「流程本身的邏輯是腦殘的」。不是程式寫錯,是這套規則從一開始就沒把「人性」考慮進去。試想一下:餐廳老闆為了省事,決定讓客人「自己填寫帳單」……
1. 腦殘的信任設計
- 老闆的想法: 「結帳都要排隊太慢了!為了優化體驗,我們把菜單設計成填空題。客人吃完自己寫吃了多少錢,直接投錢就走,這樣最快!」
- 印刷廠(工程師): 「好喔,我把菜單印好了,上面留了空白格給客人填金額。」
- 運作結果: 印刷沒錯、筆有水、投幣箱也沒壞。系統運作完美。
2. 奧客(駭客)來臨時
- 奧客點了最貴的 「澳洲和牛龍蝦全餐(市價 $5,000)」。
- 吃飽後,他在帳單上寫:「品項:陽春麵,金額:$50」。
- 然後投了 50 元,大搖大擺走出去。
- 店員(系統): 依照設計規則,看到帳單寫 50 元,收到 50 元,判定交易成功。
3. 為什麼這叫「不安全的設計」?
- 當老闆抓狂時,不能怪店員(程式碼),因為店員是嚴格遵守「以客人寫的金額為準」這條規則。
- 這就是 Insecure Design:你設計了一個「完全信任使用者」的機制,卻忘了在中間加一道「廚房出餐核對(驗證機制)」的關卡。
總結
這條漏洞就像是:
餐廳舉辦「買一送一」活動,卻忘了規定「贈品券不能拿來換下一張贈品券」。
結果駭客只買了一杯可樂,就換到了這輩子喝不完的免費飲料。
規則沒訂好,被玩死剛好。
(這次的 Gemini 好兇,是我讓它改太多次了嗎?🥲)















