快速摘要
AI 幫你用 30 分鐘做出一個網站,但上線前你需要花 30 分鐘做安全檢查。本文提供一份完整的上線前安全檢查清單,涵蓋程式碼、設定、部署三個層面,每一項都有具體的檢查方法。

為什麼 AI 生成的網站更需要安全檢查

AI 生成的程式碼通常「能跑」但不一定「安全」。AI 在訓練時看到了大量的範例程式碼,其中很多是教學範例——為了簡化而省略了安全措施。這些不安全的模式會被 AI 學習並重複。

程式碼層面檢查

檢查項目方法工具
硬編碼密碼/Key搜尋 password, secret, api_key, tokengrep, 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.comHTTP 標頭檢查免費
SSL LabsSSL/TLS 設定檢查免費
npm auditNode.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 小時。

通過檢查就代表絕對安全嗎?

不是。這份清單覆蓋最常見的安全問題,但不能保證覆蓋所有可能的漏洞。對於商業用途,建議請專業的資安團隊做正式的滲透測試。