
OWASP Top 10:弱點、風險以及如何修復
2025 OWASP Top 10 風險類別的完整指南,包括各類別的預防步驟、常見錯誤,以及 SentinelOne 如何對應每一項。

什麼是 OWASP Top 10?
某位開發人員在週五下午推送程式碼。到了週一,攻擊者已操縱 API 參數、存取客戶記錄,並透過失效的存取控制弱點將其外洩,而原本只需簡單的授權檢查就能阻止這一切。這正是 OWASP Top 10 致力於預防的弱點類型。
OWASP Foundation 將 OWASP Top 10 定義為「一份面向開發人員與 Web 應用程式安全的標準認知文件。它代表了對 Web 應用程式最關鍵安全風險的廣泛共識。」該清單已歷經多個版本,而 2025 年的導言引入了結構性變更,反映出應用程式安全版圖如何轉變。
NIST 與 MITRE CWE Content Team 在其自身框架中正式引用 OWASP Top 10 類別。若您負責執行安全計畫、建置應用程式,或管理弱點回應,OWASP Top 10 就是利害關係人期望您處理的基準。以下說明目前版本涵蓋的內容,以及各類別如何適用於您的環境。
.jpg?width=2560&quality=90&format=auto)
2025 OWASP Top 10 類別
2025 年版本根據真實世界資料重新調整了優先順序。以下是目前排名中的全部十個類別,以及對您的安全計畫重要的變更。
A01:失效的存取控制
仍然是排名第一的類別,3.73% 的受測應用程式顯示至少存在一項相關弱點。失效的 存取控制 會讓使用者執行超出其預期權限的操作,無論是透過修改 URL 參數來檢視其他使用者的記錄、藉由操縱 JWT 權杖提升權限,或完全繞過功能層級限制。這涵蓋 不安全的直接物件參考(IDOR)、缺少存取控制,以及 CORS 設定錯誤。先前作為獨立類別的 SSRF 現已整併至此。
A02:安全性設定錯誤
從 2021 年的第 5 名上升,反映出現代應用程式行為有多大程度取決於設定而非程式碼。此類別涵蓋未變更的預設認證、不必要而暴露的服務、洩漏堆疊追蹤的詳細錯誤訊息,以及缺少安全標頭。雲端環境與容器化部署放大了風險,因為每個新服務、API 閘道或 Kubernetes 叢集都會引入其自身的設定面。
A03:軟體供應鏈失敗
這是 2025 年版本中最顯著的結構性變更。此類別先前的範圍是「具弱點且過時的元件」,如今則涵蓋軟體相依性、建置系統與散布基礎架構的整個生態系。攻擊者愈來愈常鎖定 CI/CD 管線、開發人員工具、容器登錄庫,以及廣泛使用的開源套件,而非直接攻擊應用程式程式碼。儘管在資料中的出現次數較少,此類別在 2025 資料集中卻具有最高的平均 利用 與影響分數。
A04:密碼學失敗
從「Sensitive Data Exposure」重新命名,以聚焦於根本原因而非症狀。此類別涵蓋以明文傳輸的資料、已淘汰的雜湊函式(MD5、SHA1)、將密碼用作加密金鑰,以及隨機性不足。當加密保護失效時,攻擊者可能會攔截傳輸中的憑證、解密儲存的資料,或偽造驗證權杖。此次重新命名反映了 OWASP 更廣泛地轉向處理資料為何會外洩,而不是在事後列舉外洩事件。
A05:注入
當應用程式在未適當驗證或逸出處理的情況下,將不受信任的輸入傳遞給直譯器時,就會發生注入,讓攻擊者得以執行非預期的命令。 SQL 注入、 跨網站指令碼(XSS)、OS 命令注入,以及 LDAP 注入 都屬於此類別。雖然注入在 2025 年排名中從第 3 名降至第 5 名,但它仍具有最高的相關 CVE 數量之一,且在忽視輸入處理時,依然是資料外洩的主要原因之一。
A06:不安全的設計
此類別處理的是架構與設計層級的缺陷,而非實作錯誤。薄弱的密碼重設流程、業務工作流程中缺少授權步驟,或敏感端點缺乏速率限制,皆屬於設計決策,而再多的安全編碼也無法修補根本上不安全的設計。OWASP 引入此類別,是為了強調威脅建模、安全設計模式,以及程式碼撰寫前的安全活動。它在 2025 年從第 4 名降至第 6 名,顯示業界在這方面正逐步改善。
A07:識別與驗證失敗
此類別涵蓋讓攻擊者得以入侵使用者身分的弱點:憑證填充、針對弱密碼的暴力破解攻擊、缺少 多重要素驗證(MFA),以及工作階段管理弱點,例如可預測的工作階段權杖或不當的失效處理。OWASP 的分析指出,標準化驗證框架使用量的增加,正對發生率帶來正面影響,儘管遭竊認證仍是外洩事件中最常見的初始存取向量之一。
A08:軟體或資料完整性失敗
此類別針對對軟體更新、CI/CD 管線與資料序列化的信任假設。當應用程式在未驗證簽章的情況下自動更新、從未驗證的來源擷取相依性,或在未驗證的情況下還原序列化不受信任的資料時,攻擊者便可注入 惡意程式碼,並以完整的應用程式權限執行。此類別也涵蓋 CI/CD 管線完整性,在該情況下,遭入侵的建置步驟可能會在未被偵測的情況下,將惡意成品交付至正式環境。
A09:安全記錄與警示失敗
從「Security Logging and Monitoring Failures」重新命名是刻意為之:「Alerting」取代了「Monitoring」,因為根據 OWASP 的 2025 年導言,「只有良好的記錄而沒有警示,對識別安全事件的價值極低」。若沒有與記錄來源綁定的可行動警示,外洩事件就會在證據靜置於儲存空間時悄然發生而不被察覺。此類別也涵蓋記錄細節不足、敏感操作缺少 稽核軌跡,以及未能擷取驗證或存取控制事件的記錄。
A10:異常條件處理不當
2025 版本新增,此類別說明當應用程式遇到非預期輸入、資源不足、逾時或內部故障時會發生什麼情況。例外處理不當可能會透過過於詳細的堆疊追蹤洩露敏感資料、透過失敗即開放邏輯繞過安全控制,或造成阻斷服務狀況。OWASP 將先前分散於「程式碼品質」問題中的 24 個 CWE 整併至此類別,反映出業界日益認知到:脆弱且在故障時無法安全處理的系統,是一種獨特且可被利用的風險類別。
下表摘要說明各類別,以及 2025 年版本中的變動。
| # | 類別 | 2025 年有哪些變更 |
| A01 | 存取控制失效 | 現在納入 SSRF,先前為獨立類別 |
| A02 | 安全性設定錯誤 | 從 2021 年的第 5 名上升 |
| A03 | 軟體供應鏈失效 | 從「有弱點且過時的元件」擴展為涵蓋完整的相依性生態系 |
| A04 | 密碼學失效 | 從第 2 名下降;重點仍放在根本原因的加密問題 |
| A05 | 注入 | 從第 3 名降至第 5 名;仍是測試最多的類別之一 |
| A06 | 不安全的設計 | 從第 4 名降至第 6 名;業界對威脅建模的採用正在改善 |
| A07 | 驗證失效 | 排名不變;名稱從「識別與驗證失效」略作更新 |
| A08 | 軟體或資料完整性失效 | 排名不變 |
| A09 | 安全記錄與警示失效 | 已重新命名;以「警示」取代「監控」以反映營運需求 |
| A10 | 例外狀況處理不當 | 新類別;取代 先前的 SSRF 項目 |
這些類別定義了基準。在了解如何修正每一項之前,先理解為何這些特定風險具有組織層級的重要性會有所幫助。
為何 OWASP Top 10 很重要
弱點發現與遭到利用之間的差距持續縮小,而 Web 應用程式仍是主要的入侵入口。對您的組織而言,OWASP Top 10 之所以重要有三個原因。
- 風險優先排序。 您無法同時修正所有問題。Top 10 為您提供以資料為依據的起點,依可利用性與影響程度排序,而不僅僅是理論上的嚴重性。
- 法規對齊。 NIST CSF 維護與 OWASP Top 10 各版本對應的交叉對照映射。當稽核人員或監管機構詢問您的應用程式安全計畫時,OWASP Top 10 就是共同語言。
- 財務現實。存取控制、設定錯誤與注入方面的安全失效,可能演變為代價高昂的事件。OWASP Top 10 可協助您的團隊聚焦於最可能造成營運與業務影響的弱點類別。
理解這些風險為何重要是第一步。下一步則是了解如何在程式碼與設定層級處理每一項風險。
如何預防 OWASP Top 10 弱點
每個 OWASP Top 10 類別都有您的團隊可直接實作的特定預防步驟。
- A01: 存取控制失效。在所有端點上強制採用預設拒絕。對每個請求在伺服器端驗證權限,並整合為單一存取控制常式,在整個程式碼庫中一致套用。停用目錄清單功能,並確保 CORS 原則將來源限制為受信任的網域。
- A02: 安全性設定錯誤。移除預設認證、停用未使用的服務與功能,並在各環境中自動化設定稽核。保持安全標頭為最新狀態,並確保錯誤訊息回傳一般性回應,而非堆疊追蹤。
- A03: 軟體供應鏈失敗。將相依性固定至特定版本,並使用加密簽章或校驗和驗證完整性。維護一份軟體物料清單 (SBOM),稽核 CI/CD 外掛程式與開發人員工具,並監控弱點資料庫中已揭露的相依性樹缺陷。
- A04: 密碼學失敗。 使用目前的加密標準(TLS 1.2+、AES-256),並淘汰如 MD5 和 SHA1 等已棄用演算法。使用具調適性的雜湊函數(例如 bcrypt 或 Argon2)來儲存密碼。依敏感度對資料進行分類,以便對正確的資產套用適當層級的保護。
- A05: 注入。 對所有資料庫作業使用參數化查詢。驗證並清理所有使用者輸入,並針對特定呈現情境(HTML、JavaScript、SQL)逸出輸出內容。套用內容安全政策以降低 XSS 影響。
- A06: 不安全的設計。 在撰寫程式碼前進行威脅建模,建立與功能測試並行的濫用案例測試,並套用來自 OWASP 的安全設計模式 Proactive Controls。與在正式環境中修復相比,在架構階段修正設計缺陷的成本更低。
- A07: 驗證失敗。強制執行 MFA、實作具最大嘗試次數限制的登入節流,並使用標準化的驗證框架。在登出與密碼變更時正確使工作階段失效。
- A08: 軟體或資料完整性失敗。 對所有建置成品、容器映像與軟體更新進行加密簽署。驗證反序列化輸入,並將 CI/CD 管線寫入權限僅限於授權角色。
- A09: 安全性記錄與警示失敗。 為驗證失敗、存取控制違規與權限提升嘗試設定可採取行動的警示閾值。測試警示是否會在真實條件下觸發,而不只是確認日誌已被擷取。
- A10: 例外狀況處理不當。 定義安全的失敗模式,在發生錯誤時採取預設拒絕並封閉失敗。對使用者回傳通用錯誤訊息,同時在內部記錄詳細診斷資訊。明確處理 null 值、資源耗盡與非預期的輸入類型。
依類別的預防措施可處理技術修補。當要將這些修補擴展到整個組織時,實作挑戰便會浮現。
OWASP Top 10 實作中的挑戰與常見錯誤
在具有數百個應用程式、數十個開發團隊以及持續部署週期的正式環境中落實 OWASP Top 10,正是實作開始失效之處。以下是造成最大損害的模式。
- 將 Top 10 視為通過/失敗檢查清單。 OWASP 明確將 Top 10 描述為 認知指南,而非安全計畫。對於驗證層級測試,OWASP 建議使用 ASVS。僅就供應鏈涵蓋範圍而言,Top 10 被描述為僅「偶爾」足夠。
- 零散的存取控制實作。 Proactive Controls專案警告,不應讓多個存取控制實作分散在整個程式碼庫中。即使其他實作都正確,只要有一個有缺陷的實作仍可被利用。
- 預設允許的組態。 若未在 REST API 與 webhook 全面強制執行預設拒絕,則任何未處理的端點都會被隱含地視為可存取。這同樣適用於雲端服務、Kubernetes RBAC 與 API 閘道。
- 大規模授權。 驗證正在改善,但存取控制並非如此。業界正在解決「你是誰?」的問題,卻仍在努力處理跨 API 與微服務的「你應該被允許做什麼?」。
- 只有記錄,沒有警示。 您可能已將數 TB 的日誌資料擷取到您的SIEM,但若沒有人設定可採取行動的警示閾值,事件就會在證據靜置於儲存空間時悄然發生而不被察覺。
- 完全依賴列舉式掃描。 列舉式工具只能找到您已知要尋找的內容。邏輯缺陷、新型錯誤組態與架構弱點需要行為分析,而不只是簽章比對。
當安全計畫將 OWASP Top 10 視為一次性稽核,而非持續性的營運實務時,這些模式就會持續存在。
OWASP Top 10 最佳實務
除了各類別的修補之外,這些計畫層級的實務可協助您在整個組織中落實 OWASP Top 10。
- 建立集中式安全控制程式庫。每個 計畫指引,定義可共用、可重複使用的驗證、授權、輸入驗證與密碼學程式庫。當每個團隊都自行建立實作時,不一致性就會造成可被利用的缺口。
- 將 Proactive Controls 對應到您的開發工作流程。這些 Proactive Controls為以風險為重點的 Top 10 提供面向開發人員的補充。C1 (Access Control) 對應到 A01,C3 (Input Validation) 對應到 A05,C5 (Secure Defaults) 對應到 A02。請為您的開發人員提供可實作的具體控制措施,而不是要避免的風險。
- 使用 OWASP ASVS 作為您的驗證基準。 以結構化的 ASVS 要求取代臨時性的滲透測試,並將其對應到每個 Top 10 類別。ASVS 以 CSV 和 JSON 格式提供可測試的準則,以利程式化整合。
- 與 NIST SSDF 整合以符合監管要求。 NIST SP 800-218明確引用 OWASP ASVS、OWASP SAMM 與 OWASP SCVS 作為互補框架,並符合 Executive Order 14028 的要求。
這些實務建立了程式化的基礎。測試可驗證您的預防控制是否如預期運作。
如何針對 OWASP Top 10 進行測試
沒有任何單一工具能涵蓋全部十個類別。有效的 OWASP Top 10 測試會結合靜態分析、動態測試與組成分析,以涵蓋程式碼層級、執行階段與相依性風險。
- 靜態應用程式安全測試 (SAST)會在部署前掃描原始碼中的注入模式、密碼學弱點與驗證缺陷。SAST 能在開發週期早期發現問題,此時修復成本最低。
- 動態應用程式安全測試 (DAST)透過模擬針對即時端點的真實攻擊流量,測試執行中應用程式的存取控制缺口、錯誤設定與錯誤處理失敗。OWASP ZAP 是由 OWASP 社群維護、廣泛使用的開源 DAST 工具。
- 軟體組成分析 (SCA)透過根據已發布的弱點資料庫追蹤您的相依性樹,識別第三方程式庫、框架與容器映像中的已知弱點。
- 滲透測試可驗證您的特定環境,找出自動化工具遺漏的邏輯缺陷與架構弱點。將滲透測試發現對應到 ASVS 要求以進行結構化驗證。
下表將每種測試方法對應到其最直接涵蓋的 OWASP Top 10 類別。
方法 | 涵蓋類別 | 最佳使用時機 |
SAST | A04, A05, A07 | 在開發期間,程式碼合併之前 |
| DAST | A01, A02, A10 | 針對預備環境或正式環境中的執行中應用程式 |
| SCA | A03, A08 | 在建置期間以及每次相依性更新時 |
| 滲透測試 | 全部 10 個類別 | 定期驗證,在重大版本發行後 |
結合這些方法可讓您涵蓋全部十個 OWASP Top 10 類別。自主式工具可縮小您發現問題與回應速度之間的執行落差。
重點整理
OWASP Top 10 是業界針對 Web 應用程式安全風險的標準認知框架,於 2025 年更新,擴大了供應鏈涵蓋範圍,並新增對警示與記錄並重的強調。Broken Access Control 仍然是首要類別。每個類別都有具體且可實作的預防步驟,從預設拒絕的存取控制到密碼學成品驗證。
有效的實作需要集中式安全控制、跨 SAST、DAST 與 SCA 的分層測試,以及可縮小利用速度與回應速度差距的自主式調查。
常見問題
OWASP Top 10 是由 OWASP Foundation 發布的標準認知文件,用於識別 Web 應用程式最關鍵的安全風險。
此清單根據真實世界的弱點資料與社群調查,提供以共識為基礎的排名,供開發人員、安全團隊與稽核人員作為應用程式安全計畫的基準。目前版本於 2025 年發布。
OWASP Top 10 並未遵循固定的發布時程。當有足夠的新弱點資料與社群意見足以支持修訂排名時,才會發布更新版本。
先前版本分別於 2013、2017、2021 與 2025 年發布。每次更新反映的都是實際攻擊利用模式的變化、應用程式架構的改變,以及新的資料蒐集方法,而不僅僅是理論風險預測。
Top 10 是一份認知文件,旨在突顯 Web 應用程式最關鍵的風險類別。ASVS(Application Security Verification Standard)則提供三個保證等級下結構化且可測試的驗證要求,因此適用於安全測試與程式碼審查。
OWASP 本身也建議在設計審查與安全評估中使用 ASVS,將 Top 10 定位為入門點,並將 ASVS 作為驗證框架。
Web 應用程式 Top 10 涵蓋與 API 相關的類別,尤其是 Broken Access Control (A01) 與 Injection (A05)。然而,OWASP 另有維護一份專門的 API 安全 Top 10,其中包含專屬於 API 授權、速率限制與物件層級存取控制的類別。
數個主要的 API 風險都與授權失敗直接相關,這與 A01 相呼應。對於大量暴露 API 的組織而言,應同時處理這兩份清單,以確保涵蓋範圍足夠。
2025 年的方法論擴大了分析資料集,並引入更廣泛的資料貢獻週期,同時結合 OWASP 的社群調查元件,以納入前瞻性風險。
加權公式持續在可利用性與技術影響之間取得平衡,同時反映更廣泛的弱點語料庫。推動多項排名變動的是這項方法論擴展,而不只是威脅模式的轉變,其中包括 Security Misconfiguration 排名上升,以及新增 Mishandling of Exceptional Conditions 類別。
不行。OWASP 明確指出,Top 10 是一種認知與入門級訓練工具。僅以供應鏈安全而言,Top 10 被描述為只有在「偶爾」情況下才算足夠。
完整計畫應納入 OWASP ASVS 作為驗證、OWASP SAMM 作為成熟度評估、NIST SSDF 作為 SDLC 整合,以及持續性的執行階段防護,以涵蓋 Top 10 原本就不是為了解決的風險。



