資安指南

個人開發 / 小規模維運的安全底線:按優先順序列出業界標準的對策

個人開發者與小規模維運者最低限度該做的安全對策(多因素驗證、金鑰管理、備份等),只選業界標準,濃縮成一頁。依「管理帳號、網域與郵件 → 金鑰與程式碼 → 應用程式 → 偵測與還原」的優先順序說明先做什麼。

發布於 2026-06-11 更新於 2026-10-05 閱讀時間 4 分鐘
本頁內容

適用對象:個人開發者、小規模維運者中,「安全對策到底做到哪一步才算"最低限度"都搞不清」的人。這裡完全不講攻擊手法,只把 被視為業界標準的基本對策,按優先順序濃縮到一頁裡。每一項都連結到深入文章,所以可以以此為起點,只讀自己需要的部分。

本站的視角:不是『全都做』而是『按這個順序填』

個人或小規模維運,沒有把能做的事一口氣全做完的餘力。正因如此,順序最重要。最上層(管理帳號、網域與郵件)一旦被奪走,下面的任何對策都會失去意義(攻擊者能以你的身分把一切重置)。從最重要的一層往下做,就能在有限的時間裡把受害機率壓到最低。這篇文章不追求知識的面面俱到,而是寫成 一份能讓你迅速決定下一步做什麼的清單。

Tier 0 — 管理帳號、網域、郵件

多因素驗證 / 網域 / DNS / 郵件 / 支付

Tier 1 — 金鑰與程式碼

金鑰不進 git / 提交前偵測 / 金鑰的隔離與撤銷

Tier 2 — 應用程式本體

輸入驗證 / 驗證與工作階段 / TLS 與回應標頭 / 郵件驗證

Tier 3 — 修補 / 偵測 / 還原

相依套件 CVE 監控 / OS 更新 / SSH 與防火牆 / 記錄 / 備份

本站的優先順序。越上層,一旦被奪走,其他對策就越會全部失效。從上往下逐項完成。
幾分鐘
公開的金鑰被濫用所需時間
已知漏洞
嚴重事故的大半原因
1 處
管理帳號或郵件一旦失守,其他對策都會被繞過
順序
讓有限的時間發揮作用

Tier 0:守住管理帳號、網域與郵件(最高優先)

這裡是一切的前提。一旦網域、郵件、伺服器管理面板被奪走,其他任何對策都會失效。攻擊者能以你的身分重設密碼、改寫 DNS、登進伺服器。所以最先要加固的就是這裡。

1

加上抗釣魚的多因素驗證

給網域註冊商、DNS、伺服器管理面板、郵件、支付都強制啟用多因素驗證。強度上 passkey / 實體金鑰(FIDO2)> 驗證器應用程式(TOTP)> 簡訊。簡訊會被 SIM 交換攻破,是最後的手段。
2

最嚴密地守護郵件信箱

幾乎所有服務的密碼重設都會發到郵件信箱。郵件一旦被奪走,你的其他帳號也可能一個接一個被奪走。唯獨郵件值得強制啟用實體金鑰。
3

安全保管還原手段與備份碼

把多因素驗證的還原碼放進密碼管理器或實體上安全的地方。一旦遺失,你自己也會被拒之門外。
4

區分使用帳號以減少單點故障

重要帳號要避免重複使用密碼,用密碼管理器讓每個都唯一。這樣某一個服務的外洩就不會擴散到其他服務。

Tier 1:別外洩金鑰與程式碼

本站的起因,以及世上的許多事故,都源自這一塊的缺口。也就是 .env 或 API key 這類金鑰,混進程式碼或公開儲存庫而外洩的模式。

1

金鑰既不寫進原始碼也不寫進文件

把 API key、密碼、連線資訊分離到 .env 等檔案裡,並從 git 排除(.gitignore)。壓根不寫,才是最強的對策。
2

提交前用機器攔下金鑰

用 gitleaks 等 pre-commit 掛鉤,自動攔下含金鑰的提交。這是自己設定一套與 GitHub push protection 相同的檢查(→ 自建 Git vs GitHub)。
3

一旦外洩就以『全都外洩了』為前提全量輪換

只要有一絲懷疑,就立刻撤銷並重新簽發相關的金鑰、權杖。別用「大概沒事」放任不管。這是實際事故處置中最有效的思路(→ 金鑰外洩被惡意刷費的經歷)。
4

權杖要限定作用域、短命化

不要造一把全權限的萬能權杖。按最小必要權限、短有效期、按服務區分。這樣漏掉一把也能把損失封死。

自建 Git 尤其要當心

就算因為怕 GitHub 上「誤公開」而改成自建維運,誤提交也不會消失。反而因為沒有 GitHub 標配的金鑰攔截,提交前的金鑰偵測掛鉤在自建維運裡是必備的。詳情整理在 自建 Git 伺服器與 GitHub,哪個更安全。

Tier 2:把應用程式本體做硬

這是對外公開的 Web 應用程式本身的最低限度。與其防新型攻擊,重點更在於 修補常見、眾所周知的漏洞。本站把每個漏洞都在術語頁裡改寫成了防禦視角。

1

不信任輸入(防止常見漏洞)

來自使用者輸入的 SQL 注入、XSS、SSRF、路徑遍歷,要用跳脫 / 參數化 / 白名單來堵住。
2

把驗證、工作階段、權限做對

CSRF 對策、能看到他人資料的 IDOR 的權限驗證、防 點擊劫持 的框架控制。
3

讓 TLS 與安全回應標頭生效

強制 HTTPS、設定 HSTS、CSP 等。自己的站點可以用 安全回應標頭診斷 來打分(CSP 可用 CSP 建構器 來拼裝)。
4

防止郵件被冒充

如果用自有網域發郵件,就設定 SPF/DKIM/DMARC。可用 郵件驗證檢查器 來確認缺口。

Tier 3:修補 / 偵測 / 還原

這是「即便被入侵,也能把損失壓小、快速重建」的地基。像 osv-scanner 這樣的相依套件監控也歸在這裡。

1

用機器持續監控相依套件的 CVE

放任已公開的已知漏洞(CVE)不管,是最多的事故原因。把 osv-scanner 或 pnpm audit 放進 CI / cron 持續執行(→ 不在 CVE 上落後的機制)。
2

自動更新 OS 與伺服器

用 unattended-upgrades 等把 OS 的安全更新自動化。Git 伺服器和各中介軟體的修補也別放任不管。
3

加固 SSH 與防火牆

SSH 只用金鑰(關閉密碼驗證、禁止 root 直接登入),用防火牆只開放必要連接埠,用 fail2ban 拖慢暴力破解。
4

用最小權限限制入侵的擴散範圍

服務以非 root 執行,DB / 內部服務不對外公開。每台主機用不同的 SSH 金鑰。設計成單點被攻破不會波及整體。
5

3-2-1 備份 + 還原測試

資料要 3 份副本、2 種媒介、1 份在異地。必須加密。而且不只是「有備份」,還要實際能否還原,親自試一次。
6

留下記錄以便察覺異常

留下存取、驗證、錯誤的記錄,讓自己處在能察覺異常苗頭的狀態。察覺越晚,損失越大。

從哪裡下手

「全部立刻做完」並不現實。下面把容易踩的順序,和本站建議的順序作個對比。

容易踩的順序(低效)

  • 一上來就從花俏的應用程式漏洞對策開始
  • 多因素驗證一直「以後再說」地拖著
  • 備份有在做,但從沒試過還原
  • 金鑰先丟進了 .env,但沒有偵測掛鉤

本站建議的順序

  • Tier 0:先用多因素驗證守住管理帳號、郵件與網域
  • Tier 1:從結構上堵住金鑰外洩(提交前偵測 + 全量輪換方針)
  • Tier 2:修補應用程式的常見漏洞
  • Tier 3:用相依套件監控 / 更新 / 備份還原,達到"能重建"的狀態

本站自己也按這個順序在守護

本站把這裡寫的基本對策應用在了自己身上:應用與資料庫分置於不同容器、資料庫僅在內部網路(在容器/網路層限制影響範圍)/ 每台主機用不同的金鑰 / 金鑰既不寫進 git 也不寫進文件 / 相依套件的 CVE 監控在每次部署前 + 每日自動執行 / 向另一台伺服器做異地備份 / 對外請求都走安全邊界。一個教安全的站點,不能在自己的環境裡留下漏洞——所以這套優先順序,我們首先在自己身上執行。作為起因的那次事故,也並非新型攻擊,而是這些基本對策的某一個缺口造成的。正因如此,我們才反覆強調:比起花俏的對策,先做好基本功。

接下來讀

FAQ

Q個人開發最先該做的安全對策是什麼?
A

守住一旦被奪走、其他一切都會失效的帳號。具體來說,就是給網域註冊商、DNS、伺服器管理面板、郵件、支付帳號都加上抗釣魚的多因素驗證(passkey / 實體金鑰)。這裡一旦被奪走,其他所有對策都會失效,所以是最高優先順序。

Q最低限度的對策是不是都一樣重要?
A

不是。重要程度有明確的次序。本站建議按『①管理帳號、網域與郵件 → ②金鑰與程式碼 → ③應用程式本體 → ④修補 / 偵測 / 還原』的順序去填。資源有限的個人,從上往下逐項填,最能減少事故。

Q相依套件的 CVE 監控也算最低限度嗎?
A

算。用 osv-scanner 或 pnpm audit 機械地持續檢查相依套件的已知漏洞,如今已是業界標準。多數嚴重事故並非新型攻擊,而是已知漏洞(CVE)被放任不管造成的。