| 場景 | 防禦措施 | 推薦工具/函數 |
|---|---|---|
| 文件上傳 | 白名單副檔名/MIME、重命名存儲、上傳目錄禁執行、病毒掃描、圖片重繪 | `finfo_file`、Intervention Image、ClamAV |
| 跨站腳本 (XSS) | 輸出編碼(HTML/JS/CSS/URL)、CSP 標頭、HttpOnly Cookie、模板引擎自動轉義 | Blade/Twig/Latte 自動轉義、`htmlspecialchars`、`paragonie/csp-builder` |
| 跨站請求偽造 (CSRF) | 同源檢查、雙重提交 Cookie、SameSite Cookie、關鍵操作二次確認 | 框架內置 CSRF 保護、`spatie/laravel-csrf` |
| XML 外部實體 (XXE) | 禁用外部實體加載、`libxml_disable_entity_loader(true)` | `simplexml_load_string` + `LIBXML_NOENT | LIBXML_DTDLOAD` 禁用 |
| 反序列化漏洞 | 避免 `unserialize()` 處理不可信數據、改用 JSON、簽名驗證、PHP 7.4+ `__unserialize` 白名單 | `symfony/serializer`、避免 `unserialize` |
| 目錄遍歷 | 路徑規範化 `realpath()`、限制在允許根目錄下、白名單文件名 | `realpath`、Path Traversal 防禦庫 |
PHP 安全非「配幾個參數」即可,而是貫穿全生命周期的系統工程。核心在於:參數化查詢消滅注入、輸出編碼阻斷 XSS、最小權限限制破壞半徑、纵深防禦構建彈性體系。建立「安全即代碼」文化,將安全檢查納入 CI/CD 流水線,讓漏洞無處遁形。