在電腦程式中,每種類型的整數(Integer)都有其可以儲存的數值上限與下限。當一個計算的結果超出了這個範圍,就像試圖將兩公升的水裝進一公升的瓶子裡,水滿溢出來了,這就是「整數溢位 (Integer Overflow)」。這種溢位可能導致程式行為異常、崩潰,甚至產生嚴重的安全漏洞。
在設計 API 時,一個常見的錯誤是為了開發方便,將後端的資料庫物件模型 (Entity) 直接序列化後,完整地傳送給前端。這種做法雖然省事,但常常會導致「敏感資料曝露 (Sensitive Data Exposure)」漏洞,即 API 的回應中包含了前端根本不需要、但卻高度敏感的資訊。
當應用程式透過未加密的通道(如 HTTP)來傳輸使用者名稱、密碼、Session Token 等敏感憑證時,就犯了「傳輸層保護不足」的錯誤。這相當於將一個裝滿現金的透明袋子交給快遞員,運送過程中的任何人都可能窺視甚至取走裡面的內容。
功能級別的存取控制漏洞 (Broken Function Level Authorization, BFLA),有時也稱作「遺漏功能級別存取控制」,是一種極其常見且危險的授權 (Authorization) 漏洞。它發生在當應用程式未能對每個功能或 API 端點,都進行嚴格的權限檢查時,導致低權限使用者可以執行他們本不應有權限的高權限操作。
資訊安全七大需求: 包括稽核(Audit) 機密(Confidentiality) 鑑別(Authentication) 完整性(Integrity) 不可否認(Non-repudiation) 存取控制(Access Control) 可用性(Availability) 資訊安全七大需求詳解: 機密性:確保資訊不被未授權使用者獲取,可透過資料加密實現。 完整性:確保資料在傳輸過程中不會被竄改,可透過數位簽章或雜湊函數保證。 鑑別性:確認資訊來源和使用者身份,防止惡意發送者假冒。 不可否認性:確保傳輸雙方不能否認資料傳輸或接收行為,通常透過數位簽章和PKI實現。 可用性:確保資訊
在應用程式開發中,「秘密 (Secret)」是指任何用於身份驗證或授權的敏感資訊,例如密碼、API 金鑰、加密金鑰等。若對這些秘密的保護不足,將會對系統安全造成毀滅性的打擊。本文將探討兩種最常見的憑證保護漏洞:硬編碼秘密與使用弱密碼雜湊。