Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

網站安全標頭設定好了嗎?擔心 XSS、點擊劫持攻擊?Security Header Scanner 免費線上工具,一鍵掃描網站安全漏洞,快速檢測 CSP、HSTS 等重要設定,保護您的網站安全!立即體驗,及早發現並修復潛在風險,別讓駭客有機可乘!
用 AI 摘要這篇文章:
Security Header Scanner 是一個免費、免註冊的線上工具,只要輸入網址就能在幾秒內掃描出你網站所有 HTTP 安全標頭的設定狀態,告訴你哪裡沒設、哪裡設錯、該怎麼修。
每次瀏覽器開啟你的網站,伺服器都會在回應裡夾帶一組 HTTP 標頭。其中有一類叫做「安全標頭」(Security Headers),它們不影響畫面呈現,卻直接決定了你的網站容不容易被跨站腳本攻擊(XSS)、點擊劫持(Clickjacking)、SSL 降級攻擊等常見手法入侵。問題是,大多數人架完站就沒再去檢查這些標頭,直到被通報漏洞才發現門戶大開。
這篇文章會帶你用 Security Header Scanner 做一次完整的安全標頭健檢,同時說明每個標頭的作用、風險等級,以及 WordPress、Nginx、Apache 三種環境的具體設定方式。
目錄
HTTP 安全標頭是一組伺服器回應標頭,用來指示瀏覽器該怎麼處理網頁內容、限制哪些行為。它們就像是網站的隱形防護網,使用者看不到,但攻擊者找得到。如果你曾經關心過 WordPress 網站的安全性與效能,安全標頭是其中不能忽略的一環。
舉幾個實際風險:沒有設定 Content-Security-Policy(CSP),攻擊者能在你的頁面注入惡意 JavaScript 竊取使用者資料;缺少 X-Frame-Options,別人可以把你的網頁嵌入自己的頁面,製造假介面騙人點擊;沒有 Strict-Transport-Security(HSTS),使用者的連線可能被暗中從 HTTPS 降級成 HTTP。這些攻擊手法在 OWASP Top 10 安全威脅排行榜上長年盤據前列。
設定成本極低,通常只需要在伺服器設定檔裡加幾行指令。但如果你不知道自己有沒有設定、設定得對不對,就需要一個掃描工具來幫忙確認,而 Security Header Scanner 就是做這件事的。
Security Header Scanner 是架設在 headerscan.com 的免費線上服務,專門掃描網站的 HTTP 安全標頭。底層技術來自開源專案 shcheck,程式碼完全公開,任何人都可以檢視或自行部署。
操作介面只有一個輸入框和一個 Scan 按鈕。不需要註冊帳號、不需要安裝軟體,連瀏覽器擴充功能都不用裝。這一點跟 Sucuri SiteCheck 類似,都是主打零門檻的安全檢測,只是 Sucuri 著重在惡意軟體掃描,而 Security Header Scanner 專注在 HTTP 安全標頭。
這個工具主要適合四種人:想定期檢查安全標頭的網站管理員、網站上線前做安全驗證的開發者、確認 HTTPS 相關標頭是否到位的 SEO 人員、以及需要快速評估目標網站防禦狀態的資安工程師。
截至 2026 年 5 月,Security Header Scanner 一次掃描能檢查 8 個關鍵安全標頭。以下逐一說明每個標頭的作用和風險等級,看完之後你拿到掃描結果就不會一頭霧水。
CSP 是目前防禦跨站腳本攻擊(XSS)最有效的標頭。它透過白名單機制告訴瀏覽器「這個網頁的腳本只能從哪些來源載入」。舉例來說,設定 script-src 'self' 表示只有你自己網域下的 JavaScript 會被執行,任何外部注入的腳本都會被瀏覽器擋下來。
CSP 的指令很多,常見的有 default-src(預設策略)、script-src(腳本來源)、style-src(樣式來源)、img-src(圖片來源)等。建議從寬鬆設定開始,逐步收緊。如果你用的是 Cloudflare CDN,管理後台也有 CSP 設定選項,可以快速套用基本規則。CSP 設定比較複雜,是所有安全標頭中花費時間最多的一個,但對 XSS 防禦的效果也最顯著。
HSTS 告訴瀏覽器「這個網站一律使用 HTTPS,不要走 HTTP」。當使用者輸入 example.com 時,瀏覽器會自動加上 https:// 前綴,完全跳過 HTTP 降級風險。對於已經安裝好 SSL 憑證 的網站來說,HSTS 是確保加密連線真正生效的最後一塊拼圖。
幾個重要參數:max-age 決定瀏覽器記住規則多久(建議至少 31536000 秒,即一年),includeSubDomains 把規則套用到所有子網域,preload 讓你的網域被加入瀏覽器內建的 HSTS 清單。preload 申請要特別謹慎,一旦加入就很難移除,如果你的子網域還不支援 HTTPS,先不要申請。
這個標頭控制你的網頁能不能被別人用 <iframe> 或 <frame> 嵌入。三個設定值:DENY 完全禁止嵌入、SAMEORIGIN 只允許同網域嵌入、ALLOW-FROM 指定允許的來源(已被多數現代瀏覽器棄用)。一般網站建議設為 DENY 或 SAMEORIGIN。
瀏覽器有 MIME sniffing 行為,會嘗試猜測資源的實際類型,即使伺服器已經宣告了 Content-Type。攻擊者可能利用這個行為把惡意檔案偽裝成無害類型。設定 X-Content-Type-Options: nosniff 就能告訴瀏覽器「不要猜,相信伺服器說的類型」。
Referrer-Policy 控制 HTTP Referer 標頭要揭露多少資訊。當使用者從你的網站點擊外部連結,目標網站會收到 Referer 資訊,如果網址帶有敏感參數就可能造成隱私外洩。設定為 strict-origin-when-cross-origin 是目前最平衡的選擇。
Permissions-Policy 用來控制瀏覽器功能的使用權限,像是相機、麥克風、地理位置、全螢幕模式等。如果你的網站不需要這些功能,直接關掉就是最好的防禦。這個標頭取代了舊版的 Feature-Policy,建議趁設定安全標頭時一起更新。
看完這麼多標頭說明,你可能會問「該從哪個開始設定?」。下面的表格依照風險等級分類,讓你一眼看出優先順序。在規劃 WordPress 安全防護 策略時,這個表格可以直接當作你的待辦清單。
| 安全標頭 | 風險等級 | 未設定的主要風險 | 設定難度 |
|---|---|---|---|
| Content-Security-Policy | 高 | XSS 攻擊無法被有效阻擋 | 中高 |
| Strict-Transport-Security | 高 | SSL 剝離攻擊、中間人攻擊 | 低 |
| X-Frame-Options | 中 | 點擊劫持攻擊 | 低 |
| X-Content-Type-Options | 中 | MIME 嗅探攻擊 | 低 |
| Referrer-Policy | 低 | 隱私資訊透過 Referer 外洩 | 低 |
| Permissions-Policy | 低 | 瀏覽器功能遭惡意濫用 | 中 |
| X-XSS-Protection | 低 | 舊版瀏覽器 XSS 防護不足 | 低 |
| CORS Headers | 視情況 | 跨域資源存取未受控 | 中高 |
CSP 和 HSTS 是最需要優先處理的兩個。HSTS 只要一行設定就能搞定,CSP 需要花時間調校,但對 XSS 防禦效果顯著。其他標頭大部分也只需要一行指令,幾分鐘就能全部完成。
打開 Security Header Scanner,首頁有一個輸入框。把你想檢測的網址貼上去,按下 Scan 按鈕。它同時支援 HTTP 和 HTTPS 網址,但建議用 HTTPS 來測,這樣才能確認完整的加密連線設定。
掃描完成後(通常只要幾秒鐘),你會看到一個結果面板,每個安全標頭用顏色標示目前狀態:
工具會針對每個標頭顯示目前的設定值以及建議的設定範例。如果你也關心網站速度,建議搭配 HTTP 狀態碼檢查工具一起使用,一次確認標頭和連線狀態。
拿到結果後不要急著一次修完所有問題。先從風險等級最高的 CSP 和 HSTS 開始處理,修完一項就重新掃描確認結果。如果你的 網站速度 也有待改善,不妨趁這個機會一起處理,畢竟安全設定和效能優化都在看伺服器設定檔。
掃描完拿到紅色和灰色的標頭,下一步就是修好它們。不同的伺服器環境有不同的設定方式,下面分別說明。如果你還在選擇主機方案,可以參考 WordPress 虛擬主機推薦懶人包來找到適合的主機服務。
WordPress 網站有兩種主要方式可以設定安全標頭。第一種是直接修改 .htaccess 檔案(前提是主機跑 Apache),在檔案中加入以下設定:
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';"
第二種方式是使用 WordPress 安全性外掛,像是 Really Simple SSL 或 HTTP Headers,可以在 WordPress 後台直接設定,不需要手動改檔案。如果你使用的是 Bluehost 主機,cPanel 介面有安全標頭的快速設定選項,對不熟伺服器設定的使用者來說很方便。
如果你的主機是 Kinsta 這類託管型 WordPress 主機,伺服器層級的設定通常由主機商代管。Kinsta 的伺服器環境已預設基本安全標頭,但如果需要自訂 CSP 等進階設定,可以聯繫技術支援團隊協助。
Nginx 使用 add_header 指令來設定安全標頭。在 nginx.conf 的 server 區塊中加入:
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header Content-Security-Policy "default-src 'self';" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
設定完成後執行 nginx -t 檢查語法,再用 nginx -s reload 重新載入。如果你之前做過 GZIP 壓縮設定,對這個流程應該不陌生。別忘了設定完重新跑一次 Security Header Scanner 確認結果。
Apache 的設定方式就是在 .htaccess 中加入 Header always set 指令。如果主機有啟用 mod_headers 模組就能直接使用。使用 A2 Hosting 或 SiteGround 這類共享主機,mod_headers 通常預設啟用。如果是自己管理的 VPS,可能需要手動啟用這個模組。
如果你需要架設測試環境來驗證設定,InstaWP 是一個快速建立 WordPress 測試站的好選擇。設定完記得重新掃描確認,這是整個流程中最容易被忽略的步驟。
Security Header Scanner 不是市面上唯一的選擇。如果你平常在做網站健檢,應該知道每種工具都有強項和盲區。以下是三個主流工具的比較。
| 功能 | Security Header Scanner | SecurityHeaders.com | Observatory by Mozilla |
|---|---|---|---|
| 安全標頭檢測 | 有 | 有 | 有 |
| 評分機制 | 無(僅顏色標示) | A-F 評分 | A-F 評分 |
| 設定範例 | 有 | 有 | 有(較詳細) |
| 額外安全掃描 | 無 | 無 | 有(TLS、SSH 等) |
| 開源底層 | 有(shcheck) | 無 | 有 |
| 歷史追蹤 | 無 | 無 | 無 |
| 免費使用 | 完全免費 | 基本功能免費 | 完全免費 |
三個工具各有千秋。Security Header Scanner 介面最直覺,適合快速檢查;SecurityHeaders.com 的 A-F 評分機制直觀,適合需要量化指標的場景;Observatory by Mozilla 掃描面向最廣,除了安全標頭還會檢查 TLS 和 SSH 設定,適合全面資安評估。建議三個都試一遍,互補使用效果最好。
適合的使用者:想要在 30 秒內確認網站安全標頭狀態的人、剛架好網站需要做基礎安全健檢的新手站長、部署前需要快速驗證伺服器設定的開發者、定期做安全巡檢的維護人員。
不適合的使用者:需要長期監控和歷史追蹤的團隊(這個工具沒有歷史記錄功能)、需要自動化掃描和 API 整合的 DevOps 流程(它不提供 API)、需要全面滲透測試而非只看標頭的資安需求。
優點:完全免費,沒有使用次數限制。操作簡單,輸入網址按一下就有結果。掃描速度快,通常五秒內完成。底層 shcheck 開源,程式碼公開透明。
缺點:只能檢測不能修復,也不提供設定教學。雖然會給設定範例,但對新手來說可能不太知道從何下手。沒有歷史追蹤功能,無法看到之前的掃描結果。功能比較單一,如果你的網站還有其他安全需求,就得搭配其他工具。
幫客戶做網站健檢時,用 Security Header Scanner 掃出來的結果是一片灰,全部安全標頭都沒有設定。客戶用的是還不錯的 WordPress 託管主機,但伺服器設定顯然沒有包含這一塊。
HSTS 和 X-Content-Type-Options 這種一行就能搞定的標頭,五分鐘就處理完。比較花時間的是 CSP,因為網站用了不少外部資源(Google Fonts、Facebook Pixel、第三方分析工具),需要把這些來源逐一加入白名單。做法是先用 Content-Security-Policy-Report-Only 模式跑一個禮拜,收集所有被擋掉的資源請求,確認白名單沒有遺漏後才正式切換到強制模式。
有兩個常見的坑要特別提醒。第一,CSP 設定不要一次到位。很多人看到掃描結果有問題就想一口氣把所有標頭設到最嚴格,結果網站直接壞掉,CSS 載不了、JavaScript 不執行、圖片全部消失。CSP 一定要從寬鬆開始,一步一步收緊,每改一次就測試網站功能是否正常。第二,HSTS preload 一旦加入瀏覽器的預載清單,移除流程非常麻煩,需要提交移除申請並等待瀏覽器更新。申請前務必確認所有子網域(包括 staging 環境和 API 伺服器)都已完整支援 HTTPS。
安全標頭這件事沒有想像中困難,困難的是不知道要設定和不知道怎麼驗證。有了 Security Header Scanner,驗證這一塊就解決了。如果你是 WordPress 使用者,善用安全性外掛可以省掉很多手動設定的麻煩;如果你是自行管理伺服器的開發者,就把上面的設定範例複製貼上,改完重新掃描確認。建議每個月跑一次掃描,特別是在伺服器或 快取外掛 更新之後。
1. 立即掃描你的網站:前往 Security Header Scanner,輸入你的網址按下 Scan。如果結果全綠,恭喜你可以先放心;如果有紅色或灰色項目,記錄下來準備修復。預期結果:你會在 10 秒內看到完整的安全標頭報告。
2. 優先修復 HSTS 和 X-Content-Type-Options:這兩個標頭設定最簡單、風險最高。Apache 使用者在 .htaccess 加兩行 Header 指令,Nginx 使用者加兩行 add_header,改完重跑掃描確認變綠。判斷標準:掃描結果中這兩項從灰色變成綠色就算完成。
3. 用 Report-Only 模式測試 CSP:CSP 是所有標頭中最容易搞壞網站的。先設定 Content-Security-Policy-Report-Only 模式,讓瀏覽器只記錄不擋。觀察一週後再切換成正式模式。判斷標準:瀏覽器 Console 中不再出現 CSP 違規報告時,就可以安全切換。
完全免費,不需要註冊任何帳號。打開網站、輸入網址、按下 Scan 就能得到掃描結果,整個過程不到十秒,也不會要求你提供 Email 或任何個人資訊。
不會。Security Header Scanner 的掃描方式是向你的網站發送一個標準 HTTP 請求,然後讀取伺服器回傳的標頭資訊。這跟一般使用者訪問你的網站沒什麼兩樣,一個請求的流量對任何伺服器來說都是微不足道的。
兩條路可以走。如果你用的是 Apache 主機,直接在 .htaccess 檔案中加入 Header 指令。如果不想碰程式碼,安裝 Really Simple SSL 或 HTTP Headers 等安全性外掛,在 WordPress 後台就能設定。如果是託管型主機方案,大部分主機商的技術支援團隊都能幫忙處理伺服器層級的安全標頭設定。
可以取消,但有緩衝期。你設定的 max-age 值決定了瀏覽器記住規則的時間長度。如果設了一年,即使馬上移除標頭,使用者的瀏覽器在未來一年內仍然會強制使用 HTTPS。建議一開始先把 max-age 設短一點(例如 300 秒),測試確認沒問題再逐步拉長。不要在還沒充分測試的情況下就申請 HSTS preload,移除流程會非常麻煩。
建議每個月至少掃描一次,特別是在以下情況:伺服器或主機方案變更、WordPress 核心或外掛重大更新、SSL 憑證續約、新增了第三方服務(如分析工具或廣告代碼)。把 Security Header Scanner 的掃描排進你的定期維護清單裡,是一個好習慣。