Skip to main content
網路安全

OWASP Top 10:弱點、風險以及如何修復

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

作者 SentinelOne
Reviewer: Jeremy Goldstein
OWASP Top 10:弱點、風險以及如何修復

什麼是 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 就是利害關係人期望您處理的基準。以下說明目前版本涵蓋的內容,以及各類別如何適用於您的環境。

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在開發期間,程式碼合併之前
DASTA01, A02, A10針對預備環境或正式環境中的執行中應用程式
SCAA03, 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 原本就不是為了解決的風險。

深入了解 網路安全

Decorative background gradient

體驗最先進的資安平台

了解全球最智慧、最自主的資安平台如何在今日及未來保護您的組織。
Dark dashboard UI with purple-highlighted nav, summary cards showing 149, 7, 78, 56, 1.2 h, and a status table with linked purple text