攻擊的現實狀況
很多網站擁有者認為「我的網站規模很小,沒有人會攻擊我」。這個想法在技術上是錯的。
大多數攻擊不是目標攻擊(專門針對你),而是自動化的廣泛掃描:bot 程式不斷掃描網路上的所有網站,找到未更新的外掛、弱密碼、已知漏洞,然後自動入侵。你的網站規模不重要,只要有漏洞就會被找到。
入侵後的典型後果:
你的網站被用來發送垃圾郵件
在你的頁面中植入惡意連結(搜尋引擎懲罰、訪客被感染)
你的客戶資料被竊取
你的網站被轉成釣魚頁面
主機帳號被用來挖礦或攻擊其他網站
對服務型品牌來說,網站被入侵還有一個額外的損失:潛在客戶 Google 到你,點開的網站是惡意頁面——這對信任度的傷害難以修復。
基礎安全措施(按優先順序)
一、HTTPS(SSL 憑證)
網站必須使用 HTTPS,瀏覽器才不會顯示「不安全」警告。現代主機商(Vercel、Netlify、Cloudflare Pages)預設免費提供 SSL 憑證,自動更新。
如果你還在用 HTTP,今天就應該處理。
二、使用強密碼 + 2FA
所有和網站相關的帳號(主機、網域商、GA、Search Console)都應該:
使用不重複的強密碼(至少 16 個字元,混合大小寫字母、數字、符號)
啟用雙因素驗證(2FA)——通常只需要設定一次,用 Google Authenticator 或手機 SMS 驗證
密碼管理工具(Bitwarden 免費版、1Password)讓「每個帳號不同密碼」不再是負擔。
三、保持依賴套件更新
如果你的網站使用 WordPress + 外掛,最大的漏洞來源就是未更新的外掛。WordPress 網站的入侵有 97% 是通過外掛漏洞進行的。
定期更新 WordPress 核心和所有外掛
移除所有未啟用的外掛(即使沒啟用,有漏洞的外掛仍可被利用)
如果是 Next.js 等現代框架,定期執行 npm audit 或在 GitHub 上啟用 Dependabot 來追蹤已知漏洞。
四、HTTP 安全標頭(Security Headers)
在 HTTP 回應中加入安全標頭,可以減輕 XSS(跨站腳本攻擊)、點擊劫持等常見攻擊。
在 Next.js 的 next.config.ts 中加入 headers() 配置是最直接的方法,主要包含:
X-Content-Type-Options: nosniff
X-Frame-Options: DENY(防止被嵌入 iframe)
Strict-Transport-Security(強制 HTTPS)
Referrer-Policy: strict-origin-when-cross-origin
用 securityheaders.com 可以免費檢查你的網站目前的安全標頭狀態。
五、不要在前端暴露敏感資訊
API 金鑰、資料庫密碼、管理員帳號絕對不應出現在:
客戶端 JavaScript 代碼中
公開的 Git 儲存庫(GitHub 是最常見的意外洩漏場所)
公開可訪問的設定文件
在 Next.js 中,只有以 NEXT_PUBLIC_ 開頭的環境變數才會暴露在前端。永遠把敏感資訊放在伺服器端,透過 API 路由處理。
六、定期備份
無論安全措施做得有多好,備份是最後的底線。每週自動備份一次至少三份(日期不同的三個版本),並確認你知道如何從備份還原。
大多數主機服務提供自動備份功能,但備份資料最好也保存在主機之外(例如 Google Drive 或 S3)。
快速自我評估
你能回答「是」的題目越多,安全狀態越好:
網站使用 HTTPS 且憑證有效
所有相關帳號啟用了 2FA
我知道如何取得並還原最新備份
網站的外掛/框架定期更新
主要帳號使用的密碼不重複且使用密碼管理器
Git 儲存庫沒有提交任何含有密碼或 API 金鑰的設定文件
如果你的回答大多是「不確定」,先從開啟 2FA 開始,今天可以完成。