快速摘要
AI 幫你用 30 分鐘做出一個網站,但上線前你需要花 30 分鐘做安全檢查。本文提供一份完整的上線前安全檢查清單,涵蓋程式碼、設定、部署三個層面,每一項都有具體的檢查方法。
為什麼 AI 生成的網站更需要安全檢查
AI 生成的程式碼通常「能跑」但不一定「安全」。AI 在訓練時看到了大量的範例程式碼,其中很多是教學範例——為了簡化而省略了安全措施。這些不安全的模式會被 AI 學習並重複。
程式碼層面檢查
| 檢查項目 | 方法 | 工具 |
|---|---|---|
| 硬編碼密碼/Key | 搜尋 password, secret, api_key, token | grep, git-secrets |
| XSS 漏洞 | 檢查所有使用者輸入是否有跳脫 | ESLint security plugin |
| SQL Injection | 確認所有 DB 查詢使用參數化 | sqlmap |
| 不安全的套件 | 掃描 package.json 中的漏洞 | npm audit, Snyk |
| console.log 殘留 | 搜尋遺留的 debug 輸出 | grep |
| TODO/FIXME | 搜尋未完成的臨時修改 | grep |
設定層面檢查
- □ HTTPS 已啟用且強制重導向
- □ CORS 設定正確(不是 *)
- □ CSP (Content Security Policy) 已設定
- □ X-Frame-Options 已設定(防止 Clickjacking)
- □ 錯誤頁面不會洩漏系統資訊
- □ 環境變數和設定檔不在版本控制中
部署層面檢查
- □ 部署帳號使用強密碼 + 2FA
- □ DNS 設定正確
- □ SSL 憑證有效且未過期
- □ 不必要的端口已關閉
- □ 錯誤日誌有設定但不對外暴露
- □ 有備份和回復計畫
推薦的安全檢查工具
| 工具 | 用途 | 費用 |
|---|---|---|
| OWASP ZAP | 自動化安全掃描 | 免費開源 |
| Lighthouse | 效能 + 安全 + SEO 檢查 | Chrome 內建 |
| securityheaders.com | HTTP 標頭檢查 | 免費 |
| SSL Labs | SSL/TLS 設定檢查 | 免費 |
| npm audit | Node.js 套件漏洞掃描 | 免費 |
完整檢查清單
AI 網站上線前安全檢查清單 v1.0
程式碼
- □ 無硬編碼的密碼、API Key、Token
- □ 所有使用者輸入有驗證和跳脫
- □ 資料庫查詢使用參數化
- □ 無已知漏洞的套件依賴
- □ 無殘留的 console.log 或 debug 程式碼
設定
- □ HTTPS 啟用且強制重導向
- □ CORS 設定正確
- □ 安全標頭已設定(CSP, X-Frame-Options, etc.)
- □ 錯誤頁面不洩漏系統資訊
部署
- □ 部署帳號已啟用 2FA
- □ SSL 憑證有效
- □ 有備份和回復計畫
- □ 不必要的端口已關閉
常見問題
靜態網站也需要這些檢查嗎?
基本的檢查(HTTPS、硬編碼密碼、安全標頭)對靜態網站也適用。可以跳過 SQL Injection 和 API 相關的檢查。
這些檢查需要多久?
對一個小型網站,使用自動化工具大約 30 分鐘。如果是有後端的應用,可能需要 1-2 小時。
通過檢查就代表絕對安全嗎?
不是。這份清單覆蓋最常見的安全問題,但不能保證覆蓋所有可能的漏洞。對於商業用途,建議請專業的資安團隊做正式的滲透測試。