在設計系統時,我們往往專注於正常運作時的邏輯,但當系統遇到非預期的錯誤或故障時,其處理方式同樣至關重要。「故障時的安全性 (Fail-Safe)」是一個核心的安全設計原則,它要求系統在發生故障時,必須進入並保持在一個安全的狀態,而不是一個充滿風險的未知狀態。
在現代 Web 開發中,為了保護使用者免於惡意攻擊,瀏覽器內建了多種安全機制。其中,同源策略 (SOP)、內容安全策略 (CSP) 和 跨來源資源共享 (CORS) 是三個最核心、最關鍵的概念。理解它們的運作原理,是打造安全應用程式的基礎。
不安全的直接物件引用 (Insecure Direct Object References, IDOR) 是最常見也最容易被忽略的存取控制漏洞之一。它發生在當應用程式允許使用者透過一個可預測的識別碼(如使用者 ID、訂單編號)直接存取資料,卻沒有在後端驗證該使用者是否真的有權限存取該筆資料時。
路徑穿越 (Path Traversal),也稱為目錄穿越 (Directory Traversal) 或「點-點-斜線 (dot-dot-slash)」攻擊,是一種允許攻擊者存取網站伺服器上任意檔案的漏洞。透過操縱檔案路徑,攻擊者可以讀取到網站根目錄之外的敏感檔案,例如設定檔、原始碼,甚至是系統層級的密碼檔案。
將使用者的個人資料、密碼、信用卡號等敏感資訊,以未經加密的明文形式直接儲存在資料庫、檔案或日誌中,是最嚴重且最不可原諒的安全疏失之一。一旦資料庫或伺服器被入侵,所有使用者的敏感資料將瞬間暴露在陽光下,造成毀滅性的後果。
許多 Web 框架為了開發方便,提供了「大量賦值 (Mass Assignment)」功能,允許開發者將 HTTP 請求中的參數直接、自動地綁定到後端的物件模型上。然而,若未謹慎過濾,這個便利的功能就可能成為嚴重的安全漏洞,讓攻擊者得以竄改他們本不應有權限修改的資料欄位。