💡 今日學習目標:認識 OWASP 與 Top 10 榜單的由來與方法論,看懂 2025 最新版的三大變動,並理解排名變化背後透露的攻防趨勢。
談到 Web 資訊安全,有一個組織與一份榜單是全球工程師都繞不開的:OWASP 與 OWASP Top 10。
而現在最新的版本,是 OWASP Top 10:2025,這已經是這份榜單的第 8 版。
如果你手邊的教學文章、公司內訓教材,或是你自己過去做的筆記還停在 2021 版,那今天這篇正好可以幫你一次校正。因為這四年之間,榜單變動的幅度比很多人想像的大。

看完整張表,可以歸納出三個關鍵變動。
A03:2025 - Software Supply Chain Failures(軟體供應鏈失效)
這是由 2021 年的 A06「有漏洞與過期的元件」大幅擴充而來。範圍不再只是「你用的套件有沒有更新」,而是延伸到整個生態系:你的依賴套件、你的建置系統、你的發布基礎設施,任何一環被動手腳都算。
這裡有兩個數字特別值得停一下。
第一,這個類別在實測資料中的出現次數是十個類別裡最少的,但它的平均發生率卻是十類最高的 5.19%。這兩件事不矛盾:它很少被測,可是只要有測,中獎的比例就特別高。
第二,從 CVE 統計出來的平均可利用性(exploit)與衝擊(impact)分數,它也是十類裡最高的。
合起來就是一句話:它不常出現在報告上,但一旦出現,既好打、又打得重。
A10:2025 - Mishandling of Exceptional Conditions(異常狀況處理不當)
全新類別,涵蓋 24 個 CWE,聚焦在錯誤處理不當、邏輯錯誤,以及一個特別致命的模式:Fail Open(失效時預設放行)。
也就是說:當你的驗證服務逾時、當你的權限檢查拋出例外,系統是擋下來,還是放行?這個問題在 2025 年正式進入了十大風險。
2021 年才首度進榜的 A10 - SSRF,在 2025 年的榜單上找不到了。但它不是被判定為「不再重要」。OWASP 官方的說法是:
SSRF 已被併入 A01 權限控制失效。
這個歸類其實非常合理。SSRF 的本質是什麼?是伺服器去存取了它本來不該存取的資源。從這個角度看,它從頭到尾就是一種權限控制失效,只是失控的主體不是使用者,而是伺服器自己。
把三個下降的類別放在一起看,趨勢就很明顯了:
而往上衝的是 Security Misconfiguration(安全設定缺陷),一口氣從第 5 升到第 2。
OWASP 對此的解讀很直接:軟體行為中「由組態決定」的比例正在持續增加。當越來越多的邏輯搬進 YAML、環境變數、雲端主控台與 IaC 腳本,出錯的地方自然也就跟著搬過去了。
至於 Insecure Design 的下滑,官方反而給了一個正面的解釋:這個類別 2021 年才首度設立,而這幾年業界在威脅建模與安全設計上有了明顯進步,這也正是我們 Day 22 到 Day 23 要親手練習的東西。
很多人以為 Top 10 是「哪個漏洞最多就排第一」。其實不是。
OWASP 自己的描述是:data-informed, but not blindly data-driven(以資料為依據,但不盲目被資料驅動)。實際做法是:
為什麼要留兩個名額給問卷?OWASP 的理由很值得一讀:
檢視貢獻資料,本質上是在看過去。資安研究者發現新弱點、開發出新的測試方法,要再經過數週到數年才會被整合進工具與流程。等到我們有能力大規模穩定地測出某個弱點時,可能已經過了好幾年。
所以那兩個「非資料驅動」的名額,是留給還來不及被工具測出來、但社群已經感受到威脅的東西。
2025 年靠這兩個名額進榜的,是 A09 記錄與告警失效和 A10 異常狀況處理不當。
OWASP 對 A09 的說法很直接:這個類別在資料上永遠會被低估(沒記錄下來的事,本來就不會出現在統計裡),所以它再一次由社群問卷投票推上來。而 A10 是全新類別,根本還沒有累積資料可言。
📌 那 A03 軟體供應鏈是怎麼進榜的?靠資料。 它的平均發生率是十類最高,不需要問卷幫忙。
但有意思的是,它同時也是社群問卷的第一名,整整 50% 的受訪者把它排在第一位。這是難得一次「資料」與「人的直覺」完全同意的情況,也剛好說明了它為什麼值得你認真看待。
你可能在很多文章上看過這句話:
「A01 權限控制失效影響了 94% 的受測系統!」
這是把數據讀錯了。 OWASP 2021 的原文是:94% 的應用程式被測試過某種形式的權限控制失效。94% 講的是測試涵蓋率,不是中獎率。
真正的發生率(incidence rate)是多少?2021 年是 3.81%,2025 年是 3.74%。
3.74% 聽起來遠不如 94% 嚇人,但它依然是十大類別裡出現最頻繁的問題之一。資安不需要靠誇大來說服人,這也呼應 Day 12 講過的:引用數字之前,先確認它到底在講什麼。
Day 16 到 Day 21,我們會挑出其中最貼近日常開發、也最容易親手驗證的幾項,做攻防實戰:
| 天數 | 2025 排名 | 主題 |
|---|---|---|
| Day 16 | A01 | 權限控制失效:IDOR 越權存取攻防 |
| Day 17 | A04 | 加密機制失效:敏感資料保護與密碼雜湊 |
| Day 18 | A05 | 注入攻擊:SQLi 防衛與參數化查詢 |
| Day 19 | A02 | 安全設定缺陷:HTTP 安全標頭實戰 |
| Day 20 | A07 | 認證失效:Session 與 JWT 防禦 |
| Day 21 | A01 | SSRF:伺服器被當成跳板的攻防 |
📌 兩個補充說明:
① 新進榜的 A10(異常狀況處理不當) 我們不會單獨開一天,但它的核心 「失效時該不該放行」 ,會在 Day 22 談 Fail-Safe 安全設計時完整處理。
② A03 軟體供應鏈 這一項需要的工具鏈(SCA、SBOM)比較獨立,我們會在 Day 29 談 DevSecOps 時一併帶到。
💬 明日預告:【Day 16】【動手做】OWASP A01 權限控制失效:IDOR 越權存取攻防實戰
明天我們將正式進入第一個 OWASP 實戰,親手拆解並封鎖這個蟬聯冠軍的漏洞!