如果有安全問題,後果將非常嚴重。
普通的錯誤可能只會造成不便,但安全漏洞可能會導致帳戶被盜、資訊洩漏、服務中斷等無法挽回的後果。
為了預防這類重大事故,本文將參考 OWASP Top 10:2025,幫助初學者了解「哪裡存在危險」以及「可以採取什麼措施進行防範」。
OWASP Top 10 是將網路應用程式中容易發生且危害性大的安全事故模式整理成的10個類別。
接下來,將針對各類別
1) 可能發生什麼 → 2) 常見範例 → 3) 對策 → 4) 用語備忘
的順序進行整理。
這是指系統未能正確判定特定使用者是否有權進行某項操作或存取某項資料的情況。
即便介面被隱藏,透過 API 或 URL 直接アクセス仍然容易被突破。
應用程式、伺服器或雲端的設定未處於安全狀態,且以不當方式公開。
生產環境中的疏忽屢見不鮮,造成的損害往往更為嚴重。
即使自己的代碼是正確的,但如果依賴的庫、開發端、CI/CD或分發途徑被攻擊,惡意代碼或被篡改的結果物將會混入其中。
因為未進行加密、所使用的方法太弱、密鑰管理不當等原因,機密資訊可能會洩漏或被篡改。
處理密碼或個人資訊時,這是最優先需要整頓的領域。
用戶的輸入被解釋為命令而非數據,在數據庫、作業系統或瀏覽器側被不當執行的問題。
代表性的例子有 SQL 注入攻擊與 XSS 攻擊。
在實作錯誤之前,規格或設計本身就存在易受攻擊的情況。
由於後期修正成本較高,因此在最初階段就進行優化是非常有效的。
這不是具體的安全問題,而是與思維方式有關的一個話題。
登入、會話、憑證和密碼重置的安全性不足,容易造成身份盜竊。
許多設計未能抵抗密碼洩漏的重複使用或暴力破解。
「雖然已被篡改,但卻相信它是正確的並進行處理」的問題。
應用程式會接收來自外部的內容(更新檔案、Webhook、設定檔、快取、備份、整合資料等),如果這些內容在途中被修改而未經驗證,則可能會執行或保存攻擊者所需的資訊。
形象化比喻:快遞包裹在未開封之前已被調包,但卻不檢查內容就直接使用。
A03(供應鏈)是「供應方(庫/CI/分發)遭受攻擊」,
而 A08 是「在未驗證的情況下信任接收到的內容」。
即使遭受攻擊也無法察覺或察覺後無法行動的情況。
即便有日誌,若沒有警報則易導致延遲發現、損害擴大。
「當事情失敗(錯誤、缺失、超時、故障)時,系統無法安全停止」的問題。
原本失敗時應當「拒絕」、「中斷」或「回退」,但如果異常處理不當,就會導致不該執行的處理被執行(fail open)、內部資訊洩漏、數據損壞、重複處理等事故。
形象化比喻:收銀機故障卻出現「0元購買」的情況。
處理失敗。請再試一次。原文出處:https://qiita.com/shibata1111/items/e64b9f26c54607f7862b