網站安全安全標頭資安檢測

網站的安全標頭有幾個?免費工具五分鐘檢查,順便看懂掃描報告

拿到弱點掃描報告,中低風險那一段常常會出現幾條長得很像的項目:缺少這個標頭、缺少那個標頭。報告會給你標頭的英文名稱,但不會說它在防什麼、不補會怎樣、補了會不會把網站弄壞。這篇把常見的六個講清楚,並附上一個免費工具,讓你在別人掃到之前先自己測一次。

1. 安全標頭是什麼,為什麼掃描器一定會查

每次瀏覽器跟你的網站要一個頁面,伺服器除了回傳網頁內容,還會附上一組看不見的說明,告訴瀏覽器該怎麼對待這個頁面。安全標頭就是其中幾條指示:只准走加密連線、不要讓別的網站把我嵌進去、不要自作聰明猜檔案類型。

掃描器一定會查它們,因為這是少數「有沒有做」可以客觀判斷的項目。它不需要真的攻擊你的網站,只要看一眼回應就知道。也因為這樣,缺標頭幾乎必定出現在報告上,而且通常被列為中低風險。

自我檢查

  • 安全標頭是防禦的一層,不是唯一一層。補齊不代表網站安全,只代表少了幾種常見的攻擊手法可以用。
  • 它們由伺服器或主機平台設定,跟網站程式是分開的,多數情況不必改動網站本身。
  • 設定成本很低,但有兩個標頭設錯會直接讓網站壞掉,後面會講。

2. 先測一次,五分鐘就知道現況

有免費的線上工具可以直接測,貼上網址就會給你一個等第與逐項結果。建議在補任何東西之前先測一次,你才知道自己缺什麼、之後也有得比。

自我檢查

  • 到 securityheaders.com,把網址貼進去按掃描。結果分 A 到 F,並列出每一個標頭的實際內容。
  • 同一個工具也會列出完整的回應標頭,那份清單就是掃描器看到的東西。
  • 測的是單一網址。首頁跟後台、跟 API 的設定可能不同,重要的路徑各測一次。
  • 補完之後再測一次,確認真的生效。有些平台會快取回應,改完要等一下或清一次快取。
securityheaders.com 對 laisecure.com 的檢測結果,評等為 A+,六個安全標頭皆已設定
一個滿分的結果長這樣:六個標頭都在。等第本身不重要,重要的是右邊那份清單你缺哪幾條。

3. 六個標頭各自在擋什麼

用白話說明每一個在防什麼。看報告時對照著讀,就知道那條發現實際的意思。

自我檢查

  • Strict-Transport-Security(HSTS):告訴瀏覽器「這個網站只走加密連線」,記住之後連第一次的明文連線都省掉。掃描報告寫 HSTS missing 指的就是這一條。
  • Content-Security-Policy(CSP):規定這個頁面只准從哪些來源載入程式與資源。它是六個裡最有效、也最容易設壞的一個。
  • X-Frame-Options:不准別的網站把你的頁面用框架嵌進去。這擋的是把你的登入畫面藏在別人頁面底下、誘導使用者點擊的手法。
  • X-Content-Type-Options:叫瀏覽器不要自己猜檔案類型。沒有它的話,一個偽裝成圖片的檔案可能被當成程式執行。
  • Referrer-Policy:控制使用者從你的頁面點出去時,對方會看到多少來源資訊。牽涉隱私,也避免把後台網址洩漏給外部網站。
  • Permissions-Policy:關掉這個頁面用不到的裝置功能,例如相機、麥克風、定位。用不到就關掉,被利用的機會就少一個。

4. 怎麼加,以及哪兩個要小心

設定的位置取決於你的網站住在哪裡。多數情況不必改網站程式,只要在主機或平台的設定裡加幾行。

自我檢查

  • WordPress:多數資安外掛有一頁可以勾選這些標頭,最省事。也可以請主機商在伺服器層級加,效果一樣而且不吃外掛。
  • 自架主機:在網頁伺服器的設定檔加入回應標頭,改完重新載入設定即可。
  • 靜態託管平台:多半支援一個設定檔來指定回應標頭,寫在裡面重新部署就生效。
  • 前面有 CDN 或代理:標頭可能在那一層被覆蓋,要在該平台的規則裡設定,不然改了主機也沒用。

六個裡面有兩個要特別小心。HSTS 一旦送出,瀏覽器會記住指定的期限,期間內完全不接受未加密連線。如果你的憑證之後出問題,訪客會連不進來而且沒辦法略過警告。建議先設一個短的期限觀察一陣子,確認憑證自動續期正常,再拉長。

CSP 則是設太嚴會讓網站的功能直接失效,畫面跑版、按鈕沒反應、第三方的表單或分析工具不動。正確做法是先用只回報不阻擋的模式跑一段時間,收集哪些資源會被擋,確認清單沒問題之後再正式啟用。直接上線一條嚴格規則,很容易在自己沒發現的情況下弄壞某個頁面。

5. 報告上寫「缺少標頭」,該多急?

缺標頭在報告上通常是中低風險,不必當成火燒眉毛,但它是少數改動成本極低的項目,所以性價比很高。排修補順序時可以這樣看。

自我檢查

  • 先補 X-Content-Type-Options 與 X-Frame-Options。這兩個幾乎沒有副作用,加了就好。
  • 接著補 Referrer-Policy 與 Permissions-Policy,同樣低風險。
  • HSTS 排在後面,先確認憑證自動續期沒問題再上,並從短期限開始。
  • CSP 留到最後,用只回報的模式觀察過再啟用。這一項值得排時間好好做,因為它擋掉的攻擊面最大。
  • 補完之後重新掃一次,把結果留存。下次稽核或客戶問起時,你有紀錄可以拿出來。
完整的檢測報告,包含六個安全標頭的實際內容與伺服器回應的原始標頭清單
下半部會列出伺服器實際回應的原始標頭,那份清單就是掃描器看到的內容。

安全標頭是投入最少、結果最明確的一類改動:多數只要在設定檔加幾行,掃描報告上的中低風險項目就會少掉一整段。真正需要花時間的只有 HSTS 與 CSP 這兩個,而它們也是實際擋掉最多攻擊的兩個。先去測一次,看看自己現在是幾分。

常見問題

掃描報告寫 HSTS missing from https server,這是嚴重的問題嗎?
通常被列為中低風險。它的意思是你的網站沒有告訴瀏覽器「只准走加密連線」,所以使用者第一次連線時仍有可能走到未加密的版本而被攔截。補起來很簡單,但要注意期限設定:一旦送出,瀏覽器會在期限內完全拒絕未加密連線,憑證出問題時訪客會進不來。建議先設短期限,確認憑證自動續期正常再拉長。
加了這些標頭,網站就安全了嗎?
不會。安全標頭擋的是幾類特定的攻擊手法,對過期外掛的漏洞、弱密碼被暴力破解、後台設定錯誤完全沒有幫助。它的價值在於成本極低、效果明確,適合當作基本功先做完,但不能取代更新維護與定期檢測。
設定之後網站有些功能不動了,怎麼辦?
十之八九是 CSP 設太嚴。先把它切換成只回報不阻擋的模式,重新操作一次出問題的功能,瀏覽器的主控台會告訴你哪個資源被擋。把該來源加進允許清單,確認功能恢復之後再改回正式模式。X-Frame-Options 設得太嚴也可能讓需要被嵌入的頁面失效,例如放在別的系統裡的表單。

延伸閱讀