專業理論深解:
密碼學失效 (Cryptographic Failures):
傳輸層安全: 不僅要使用 HTTPS,還要確保 TLS 的配置是安全的。包括:禁用過時的協議 (SSLv3, TLS 1.0/1.1)、使用強壯的加密套件 (Cipher Suites)、啟用 HSTS (HTTP Strict Transport Security) 標頭來強制瀏覽器始終使用 HTTPS。
數據儲存安全: 對於密碼,必須使用如 bcrypt 或 Argon2 這樣的密碼專用雜湊函數。對於其他敏感數據(如信用卡號、身分證字號),應在儲存時進行加密處理,並嚴格管理加密金鑰。
隨機數生成: 在所有需要不可預測性的場景(如會話 ID、密碼重設 Token、CSRF Token),都必須使用密碼學安全偽隨機數生成器 (CSPRNG),而非標準的 rand() 函數。
敏感資訊洩漏 (Sensitive Data Exposure):
API 回應過量數據: API 端點返回了比前端所需更多的數據物件屬性。例如,用戶查詢 API GET /api/users/me 返回了包含用戶密碼雜湊值、鹽值或內部權限標記的完整用戶物件。
原始碼與配置洩漏: .git 目錄被部署到生產環境,導致整個程式碼倉庫洩漏。.env, .bak, .swp 等設定檔或備份檔案可被公開訪問。
前端代碼中的秘密: API 金鑰、認證 Token 等硬編碼在 JavaScript 檔案中。
使用 Burp Scanner 檢測弱 TLS 配置。更重要的是,在手動測試中,我必須仔細檢查每一個 API 回應的 JSON 內容,尋找那些前端 UI 沒有顯示,但後端卻返回了的敏感欄位。我還會使用 dirsearch, gobuster 等工具,配合字典來爆破網站目錄,尋找洩漏的檔案。