適用對象:個人開發者、小規模維運者中,「安全對策到底做到哪一步才算"最低限度"都搞不清」的人。這裡完全不講攻擊手法,只把被視為業界標準的地基,按優先順序濃縮到一頁裡。每一項都連結到深入文章,所以可以以此為起點,只讀自己需要的部分。
本站的視角:不是『全都做』而是『按這個順序填』
個人或小規模維運,沒有把能做的事一口氣全做完的餘力。正因如此順序至關重要。最上面的「王國之鑰」一旦被奪走,下面的任何對策都會失去意義(攻擊者能以你的身分把一切重置)。反過來,從地基開始逐層填,就能在有限的時間裡把受害機率壓到最低。這篇文章不追求知識的面面俱到,而是寫成一張能讓你立刻決定『下一格填哪裡』的地圖。
Tier 0 — 王國之鑰
多因素驗證 / 網域 / DNS / 郵件 / 支付
Tier 1 — 金鑰與程式碼
金鑰不進 git / 提交前偵測 / 金鑰的隔離與撤銷
Tier 2 — 應用程式本體
輸入驗證 / 驗證與工作階段 / TLS 與回應標頭 / 郵件驗證
Tier 3 — 修補 / 偵測 / 還原
相依套件 CVE 監控 / OS 更新 / SSH 與防火牆 / 記錄 / 備份
Tier 0 — 守住王國之鑰(最高優先)
這裡是一切的前提。一旦網域、郵件、伺服器管理面板被奪走,其他任何對策都會失效。攻擊者能以你的身分重設密碼、改寫 DNS、登進伺服器。所以最先要加固的就是這裡。
加上抗釣魚的多因素驗證
把郵件信箱當作「鑰匙的父級」最嚴密地守護
安全保管還原手段與備份碼
區分使用帳號以減少單點故障
Tier 1 — 別外洩金鑰與程式碼
本站的起因,以及世上的許多事故,都源自這一塊的缺口。也就是 .env 或 API key 這類金鑰,混進程式碼或公開儲存庫而外洩的模式。
金鑰既不寫進原始碼也不寫進文件
.env 等檔案裡,並從 git 排除(.gitignore)。壓根不寫,才是最強的對策。提交前用機器攔下金鑰
一旦外洩就以『全都外洩了』為前提全量輪換
權杖要限定作用域、短命化
自建 Git 尤其要當心
就算因為怕 GitHub 上「誤公開」而改成自建維運,誤提交也不會消失。反而因為沒有 GitHub 標配的金鑰攔截,提交前的金鑰偵測掛鉤在自建維運裡是必備的。詳情整理在 自建 Git 伺服器與 GitHub,哪個更安全。
Tier 2 — 把應用程式本體做硬
這是對外公開的 Web 應用程式本身的最低限度。與其防新型攻擊,本質更在於堵住常見的老缺口。本站把每個老缺口都在術語頁裡翻譯成了防禦視角。
把驗證、工作階段、權限做對
防止郵件被冒充
Tier 3 — 修補 / 偵測 / 還原
這是「即便被入侵,也能把損失壓小、快速重建」的地基。像 osv-scanner 這樣的相依套件監控也歸在這裡。
用機器持續監控相依套件的 CVE
自動更新 OS 與伺服器
加固 SSH 與防火牆
用最小權限縮小爆炸半徑
3-2-1 備份 + 還原測試
留下記錄以便察覺異常
從哪裡下手
「全部立刻做完」並不現實。下面把容易踩的順序,和本站建議的順序作個對比。
容易踩的順序(低效)
- 一上來就從花俏的應用程式漏洞對策開始
- 多因素驗證一直「以後再說」地拖著
- 備份有在做,但從沒試過還原
- 金鑰先丟進了
.env,但沒有偵測掛鉤
本站建議的順序
- Tier 0:先加固王國之鑰(多因素驗證 / 郵件 / 網域)
- Tier 1:從結構上堵住金鑰外洩(提交前偵測 + 全量輪換方針)
- Tier 2:堵住應用程式的老缺口
- Tier 3:用相依套件監控 / 更新 / 備份還原,達到"能重建"的狀態
本站自己也按這個順序在守護
本站把這裡寫的地基應用在了自己身上。用專用伺服器不與其他服務混在一起(受害範圍的隔離)/ 每台主機用不同的金鑰 / 金鑰既不寫進 git 也不寫進文件 / 相依套件的 CVE 監控在每次部署前 + 每日自動執行 / 向另一台伺服器做異地備份 / 對外請求都走安全邊界。一個教安全的站點,自己絕不能帶著缺口——所以這套優先順序,我們首先在自己身上執行。作為起因的那次事故,也並非新型攻擊,而是這塊地基的某一個缺口造成的。正因如此,我們才反覆強調:比起花俏的對策,先打好地基。
接下來讀
- 組織 / 團隊版:中型到大型組織的安全底線
- 自建維運:自建 Git 伺服器與 GitHub,哪個更安全
- 相依套件監控:osv-scanner 的引入與使用 / 不在 CVE 上落後的機制
- 金鑰:.env 檔案與金鑰資訊 / 事故 金鑰外洩被惡意刷費的經歷
- 工具:安全回應標頭診斷 / 郵件驗證檢查器 / CVE/KEV 查詢
FAQ
Q個人開發最先該做的安全對策是什麼?
守住『王國之鑰』。具體來說,就是給網域註冊商、DNS、伺服器管理面板、郵件、支付帳號都加上抗釣魚的多因素驗證(passkey / 實體金鑰)。這裡一旦被奪走,其他所有對策都會失效,所以是最高優先順序。
Q最低限度的對策是不是都一樣重要?
不是。重要程度有明確的次序。本站建議按『①王國之鑰 → ②金鑰與程式碼 → ③應用程式本體 → ④修補 / 偵測 / 還原』的順序去填。資源有限的個人,從上往下逐項填,最能減少事故。
Q相依套件的 CVE 監控也算最低限度嗎?
算。用 osv-scanner 或 pnpm audit 機械地持續檢查相依套件的已知漏洞,如今已是業界標準。多數嚴重事故並非新型攻擊,而是已知缺口(CVE)被放任不管造成的。