主機的防火牆像大樓一樓的警衛,管得住誰能走進大樓,卻不會去數三樓有人對同一扇門連續試了幾百把鑰匙。WordPress 網站裡發生的事也是這樣,登入頁被機器人輪流試密碼、某個外掛的檔案被悄悄改寫、帳號被盜之後有人把防護設定一項項關掉,這些事都發生在 WordPress 內部,通常不在主機防火牆會去判讀的範圍內。Shield Security 這支 WordPress 資安外掛,守的正是這一層。
Shield 拿登入嘗試、使用者異動、外掛活動、檔案完整性這些 WordPress 專屬的訊號來評分與判讀,能自動封鎖的先封鎖,仍然需要人看的事再依優先順序排給你。
外掛的功能很多,後台把它們切成幾個防護區,每一區各管一種威脅,預設值也各有各的脾氣,有些放著就能運作,有些打開之前得先想過會不會影響網站。要判斷哪些該保留預設、哪些該謹慎,得先看清楚 Shield 在整套防線裡站的位置。
Shield Security 是什麼?
Shield Security 是一支 WordPress 資安外掛,運作在 WordPress 的應用層,由 Shield Security 團隊開發。它原名 WordPress Simple Firewall,所以 WordPress.org 外掛目錄上的代號至今仍是 wp-simple-firewall。核心外掛放在外掛目錄,可以直接從後台安裝,另外也有付費版本 ShieldPRO,提供額外的功能。
外掛頁對自己的定位很明確。它認為多數資安外掛只丟給使用者一個塞滿警示的儀表板,再期待使用者知道下一步該做什麼;Shield 的做法則是先自動封鎖威脅、自動修復能修的部分,再把仍需要你處理的事依影響程度排序,而不是依數量堆在眼前。
它跟主機防火牆的關係是分工,不是取代。主機或網路防火牆守的是伺服器周邊,Shield 則在 WordPress 內部運作,專門判讀 WordPress 特有的攻擊型態。外掛頁的說明是這兩層解決的是不同問題、彼此互補,所以既不是有了主機防火牆就不需要 Shield,也不是裝了 Shield 就能不管主機那一層。
目前的版本是 22.2.6,最後更新在 2026 年 10 月 5 日,需要 WordPress 5.7 以上與 PHP 7.4 以上,並已測試到 WordPress 7.1.3。後台的提示另外建議把 PHP 升級到 8.3 以上,並預告往後的版本會把 PHP 的最低需求提高到 8.2。在 WordPress.org 外掛目錄上,Shield 的啟用安裝數為 30,000 以上,評分 4.8 顆星,累積 1,038 則評價。

四個工作區與組態裡的八個防護區
Shield 的後台從 22.0 版(2026 年 5 月 20 日發佈)起,重組成四個工作區,所有防護設定都集中在其中一個叫「組態」的工作區裡。左側選單從上到下依序是控制台、Actions Queue、Investigate、組態與報告,四個工作區的分工如下。
- Actions Queue(介面維持英文)放待處理事項,把需要立刻處理的關鍵問題與可以晚點看的警示分開,再依緊急程度排序。
- Investigate(介面維持英文)負責追查,有使用者、IP 位址、外掛、佈景主題、WordPress Core 各自的檢視頁,也能查活動記錄與請求記錄。
- Configure(介面顯示「組態」)放全部的防護設定,頁首附有就地搜尋。
- Reports(介面顯示「報告」)放報告、趨勢圖表與寄信設定。
控制台首頁是整個後台的總覽。最上方的 LAUNCHPAD 會列出目前待處理的安全問題數與維護項目數,往下依序是最近 7 天的統計(登入封鎖、IP 位址封鎖、XML-RPC 封鎖等計數)、最近事件,以及會即時更新的即時監控,裡面同時列出 WP 活動與流量請求。左側的 Guide Me 則是任務搜尋入口,用來快速找到想處理的事並直接跳過去。

組態首頁一共有 10 張卡片,其中 8 張是防護區,每一區處理一種威脅。另外「一般」(General)放外掛本身的基本設定,像是後面會提到的訪客 IP 來源,Reports & Alerts 放報告與警示的寄信設定,這兩張不算防護區。

| 防護區 | 介面名稱 | 負責什麼 |
|---|---|---|
| Security Admin | Security Admin | 用 PIN 保護 Shield 自己的設定,並限制其他管理員改動 WordPress 的關鍵設定 |
| Firewall | 防火牆 | 攔截惡意的 HTTP 請求,限制 XML-RPC、REST API 與後台檔案編輯 |
| Bots and IPs | Bots and IPs | 辨識機器人,依違規次數自動封鎖惡意訪客 |
| Scans | 掃描 | 偵測被改動的核心檔案、被棄置的外掛與偽裝的外掛 |
| Login Security | 登入 | 保護登入表單,提供雙因素驗證與工作階段防護 |
| Users Protection | 使用者 | 管理密碼政策與外洩密碼檢查等帳號本身的安全 |
| SPAM Blocking | 標示為垃圾訊息 | 擋下機器人與真人貼上的垃圾留言 |
| HTTP Headers | HTTP 標頭 | 替網站回應加上瀏覽器端的防護標頭 |
這八區不是各自為政。防火牆是周邊防線,負責攔下惡意請求,而登入失敗、被防火牆擋下、silentCAPTCHA 判定失敗這類訊號,會一起累積成每位訪客的聲譽分數,達到門檻就由 Bots and IPs 區自動封鎖。登入區管進門的驗證,使用者區管帳號本身的安全,掃描區則負責在防線失守之後發現異動,而 Security Admin 區守著這一切設定本身。

每張卡片上都有狀態標示,分成「關鍵」「需要處理」「良好」三種,一眼就看得出哪個區還有缺口。點進防護區之後,是一條條可展開的設定項目,按下「組態」展開內容,改完按 Save Changes 儲存;頁首另有「SEARCH CONFIGURE OPTIONS」搜尋框,知道選項名稱時,比逐區翻找快得多。選項旁帶「$」記號、呈現灰色而無法操作的項目,屬於 ShieldPRO。
Shield 從 21.2 版(2026 年 2 月)起由開發團隊自行提供近 40 種語言的介面翻譯,翻譯檔在需要時才從 Shield 自己的伺服器下載。這套翻譯跟 WordPress.org 的社群翻譯是兩個來源,所以外掛頁 Languages 欄位只列出 10 種語言,裡面也沒有中文,後台卻能顯示中文。目前的中文翻譯還不完整,後台常常是半中半英,有些標題已經翻成中文,有些維持英文,找選項時兩種名稱都要留意。
安裝啟用後先走一遍引導式設定
安裝方式跟一般外掛相同,到後台的「外掛 > 安裝外掛」搜尋 Shield Security,按安裝再按啟用。啟用之後左側選單會多出 Shield Security,第一次進入它的後台時,會被帶到引導式設定。
Shield 的入門指南很坦白地說,這支外掛選項多、功能多,第一眼可能有點壓力,所以替新手挑出 8 項優先設定,依序是 Security Admin、限制登入與暴力破解、留言垃圾、活動記錄、雙因素驗證、IP 位址偵測、檔案變更偵測、自動封鎖惡意 IP。這 8 項分散在不同的防護區裡,而引導式設定則把其中最影響之後行為的幾個決定,先帶你做過一遍。
引導式設定是一個分步驟的畫面,目前共 6 步,依序是歡迎(一段「3 分鐘內快速開始」的簡介)、啟用 Pro 授權(沒有授權就直接跳過)、安全性個人資料、Security Admin、徽章,最後是謝謝頁。真正需要做決定的有三步:安全性個人資料是一鍵套用整組現成設定,Security Admin 是設定保護 Shield 設定畫面的 PIN 碼,徽章則決定要不要在網站頁尾顯示半透明的 Shield 安全徽章,預設是停用。
之後想重走一遍,可以在組態工作區的左側選單往下找到工具列,裡面有「引導式設定」,點進去就會重新開始;工具列上還有網站鎖定、Import / Export、偵錯資訊等入口。控制台首頁另有一段總覽影片與逐步導覽,介紹側邊選單等位置,影片可以直接略過。
輕度、中度、強度三種現成安全設定檔
「安全性個人資料」這一步會先說明,Shield 首次啟用時已經套用一組基本防護,建議在網站允許的範圍內套用盡量多的限制,不過已經跟第三方服務整合的正式站,較嚴格的設定可能造成問題,應該先測試並檢視活動記錄。畫面上有三個等級可選,英文是 Light、Medium、Strong,介面顯示為「淺色」「中等」「強」,說明文字依序是「輕度安全性個人資料」「穩健的安全態勢」「強大的防禦性安全態勢」;不選任何一級就按下一步,則不會套用任何設定檔。

三個等級是疊加的,中度建立在輕度之上,強度又建立在中度之上,所以越往上,限制越多。下表依後台的對照畫面,整理各等級的設定。
| 項目 | 輕度 | 中度 | 強度 |
|---|---|---|---|
| 違規次數限制 | 10 次 | 7 次 | 5 次 |
| 封鎖持續時間 | 1 小時 | 1 天 | 1 週 |
| silentCAPTCHA Bot 門檻 | 25 | 45 | 65 |
| 登入冷卻時間 | 5 秒 | 10 秒 | 15 秒 |
| 留言冷卻時間 | 10 秒 | 30 秒 | 60 秒 |
| CrowdSec | 關 | 開 | 開 |
| silentCAPTCHA 保護的表單 | 註冊 | 註冊、登入、密碼重設 | 註冊、登入、密碼重設 |
| 使用者名稱探查封鎖 | 關 | 開 | 開 |
| 停用 XML-RPC | 關 | 開 | 開 |
| WAF 的 SQL 查詢攔截 | 關 | 開 | 開 |
| WAF 的 PHP 程式碼與積極掃描 | 關 | 關 | 開 |
| 封鎖匿名 REST API | 關 | 關 | 開 |
| 機器人留言垃圾訊息攔截 | 關 | 開 | 開 |
| 人工垃圾訊息過濾 | 關 | 關 | 開 |
後台停用檔案編輯與 WAF 的目錄遍歷攔截,三個等級都維持開啟,表中沒有列出。有一點要在套用前看清楚,輕度並不是在預設值之上再加一點,從畫面對照來看,它沒有勾選登入表單的 silentCAPTCHA、使用者名稱探查封鎖與 SQL 查詢攔截,也不啟用 CrowdSec,防護範圍比首次啟用時的預設還窄。
高等級則是另一個方向的提醒。強度會一次打開 PHP 程式碼攔截、積極掃描與匿名 REST API 封鎖,這三項都是容易誤判、或影響外掛整合的選項。其中積極掃描(Aggressive Scan)在設定檔對照畫面上標成「WAF: 積極規則」,跟防火牆區的「積極掃描」是同一個選項。套用之後仍然可以回到組態,逐項微調。
訪客 IP 位址的偵測來源需先確認
Shield 的計分與封鎖都綁在訪客的 IP 位址上,所以它抓到的 IP 必須是對的。入門指南把這列為優先設定之一。多數主機上,Shield 都能自動偵測,但有些主機的設定比較特殊,偵測可能出錯,這時就要手動指定來源。
設定位置在 Configure > General > General Plugin Configuration(介面顯示「一般外掛設定」),選項的英文原名是 IP Source,介面顯示為「IP 位址來源」,底下的說明是「哪個 IP 位址是您的」,預設是自動偵測(Automatically Detect Visitor IP)。點選項名稱旁的展開圖示,完整說明裡附有一個「What Is My IP Address?」按鈕,可以先查出自己目前的 IP 位址;下拉選單裡每個來源後面也會附上它抓到的 IP,挑出內容對得上的那一個就好。選單裡最常見、也最建議的是 REMOTE_ADDR,說明文字指出它不能被偽造;網站放在 Cloudflare 之後時,選單裡也有 HTTP_CF_CONNECTING_IP 這類來源可選。

挑完之後如果還不確定,可以到 Configure > Debug Info 頁面,從額外動作選單裡的連結強制重新檢查訪客 IP 的來源。IP 抓錯的話,計分與封鎖就會落到錯的對象身上,例如把代理伺服器的 IP 當成每位訪客的 IP,它一旦被封鎖,真人訪客也會一起被擋掉。
Security Admin 以 PIN 鎖住 Shield 的設定畫面
Security Admin 是 Shield 保護自己的機制。設定一組 PIN 之後,任何人要修改 Shield 的設定,包括其他管理員,都得先輸入這組 PIN。入門指南把它列為最重要的功能之一,用意有兩個,一是擋掉不熟悉 Shield 的管理員誤改設定,二是防止安全設定被人竄改,就算有人拿到另一個管理員帳號,也沒辦法悄悄把防護關掉。
這一區有四條設定項目。第一條「Security Admin 防護」放 PIN(要輸入兩次)與 Security Admin 逾時,逾時預設 30 分鐘,過了就得重新輸入 PIN。同一條裡的「允許電子郵件地址覆寫」預設開啟,意思是萬一忘記 PIN,可以用驗證信覆寫並關掉 Security Admin 的限制,寄信的對象是 Shield 一般設定裡指定的信箱。PIN 本身的說明也提醒,忘記它有可能把自己鎖在外掛之外,所以別只靠記憶。介面上另有一個標「$」的持續性安全性管理員選項,屬於 ShieldPRO。

第二條「管理員帳號防護」預設關閉,開啟後不能建立、刪除、修改或提升其他管理員帳號。第三條「WordPress 核心選項保護」預設開啟,限制管理員改動網站標題、標語、WordPress 網址、網站網址、管理員信箱、是否開放註冊、新使用者預設角色、永久連結結構、留言通知與審核、搜尋引擎可見度這些關鍵設定。第四條「General settings」收的是沒有獨立成條的其餘選項,可以限制管理員對外掛(安裝、啟用、更新、刪除)、佈景主題(安裝、啟用、更新、刪除、編輯佈景主題選項)與文章頁面(建立編輯、發佈、刪除)的操作,預設都沒有勾選。
PIN 還沒設定時,區頁的狀態是紅色的「關鍵」,並提示需要設定 PIN 碼才能啟用 Security Admin。另外從 v22.1 起,Security Admin 啟用後,沒有有效 Security Admin 工作階段的管理員,在儀表板小工具與 Site Health 看到的細節會變少,所以這組 PIN 管的不只是誰能改設定,也包括誰能看到多少安全細節。
防火牆區攔截可疑請求,也收緊 XML-RPC 與 REST API
防火牆(Firewall,介面顯示「防火牆」)區是 Shield 的周邊防線,決定網站要擋哪些攻擊、遇到重複攻擊時怎麼回應。區頁的說明把它的任務形容成把網站鎖緊、擋住惡意請求、限制特定資源的存取,並對可疑請求做出適當反應。
區頁有六條設定項目,分別是網路應用程式防火牆(WAF)、封鎖 XML-RPC、速率限制、封鎖匿名 REST API、封鎖使用者名稱探查、限制 WP 檔案編輯,其中速率限制帶「$」記號,屬於 ShieldPRO。其餘五條裡,預設開啟的是 WAF 的三個選項、使用者名稱探查封鎖與後台檔案編輯限制,XML-RPC 與匿名 REST API 則預設關閉。

WAF 五個攔截選項各自針對的攻擊型態
WAF(Web Application Firewall)在每次頁面請求時,檢查請求裡的參數有沒有夾帶惡意資料,一共有 5 個攔截選項,各自針對一種型態。
| 選項 | 擋什麼 | 預設 |
|---|---|---|
| Directory Traversals(目錄遍歷) | 參數裡的目錄跳脫路徑,例如 ../ 與 ../../etc/passwd | 開 |
| SQL Queries(SQL 查詢) | 參數裡的 SQL 語法,例如 union select 與 /**/ | 開 |
| Field Truncation(欄位截斷) | 欄位截斷攻擊 | 開 |
| PHP Code(PHP 程式碼) | 任何看起來想引入 PHP 檔案的資料 | 關 |
| Aggressive Scan(積極掃描) | 套用一組更激進的規則,偵測並封鎖惡意資料 | 關 |
預設關閉的兩項,都有各自的副作用。PHP 程式碼選項的說明直接寫了,它大概會擋住外掛與佈景主題編輯器的存檔;積極掃描則可能讓誤判的防火牆封鎖增加。區頁也會針對這兩項關閉的規則顯示提醒,說明觸發該規則的請求不會被攔截。

Shield 的說明文件給的建議是,盡量把選項都打開,如果發現不相容或某個功能壞掉,就一次取消一項,直到找出問題,或是先去看 WP 活動記錄。除此之外還有一個「白名單參數」欄位,可以指定特定參數完全略過防火牆檢查,說明提醒要謹慎使用,只填入非排除不可的參數名稱。
防火牆封鎖的通知信不在這一區設定,而是放在報告工作區的即時警示(Instant Alerts)裡,預設為停用。說明文件特別提醒,如果網站被自動化機器人大量攻擊,開啟後可能寄出過多郵件,甚至被主機商封鎖寄信。
XML-RPC 與匿名 REST API 的限制選項
這兩個都是常被忽略、卻可能被拿來重複試密碼或探測網站的入口,Shield 為它們各給一個開關,開啟前要先想過相容性。
「封鎖 XML-RPC」開啟後,整個 XML-RPC 端點會停用,所有請求都被封鎖,依外掛頁的說明,pingback 與 trackback 也在封鎖範圍內。WordPress 從 3.5 版起就預設啟用 XML-RPC,WordPress 行動 App 這類遠端工具也靠它連到網站,所以停用之前,要先確認網站有沒有依賴它的行動 App 或遠端發文工具。
「封鎖匿名 REST API」處理的是另一個入口。WordPress REST API 手冊的立場是不應該整個停用 REST API,因為後台有些功能依賴它;可以做的是用過濾器要求呼叫 API 的人先驗證身分,等於擋掉匿名的外部存取。Shield 這個選項對應的就是這種做法,只擋未經驗證的請求。
因為有些外掛本來就以匿名身分使用 REST API,這個選項下方有一份「Rest API 排除項目」,預設已經放進 Contact Form 7、The Events Calendar、Jetpack、WooCommerce、WP Statistics 等常見外掛的命名空間,來自這些命名空間的匿名請求照樣放行。遇到其他需要匿名存取的外掛,可以請外掛開發者提供它的命名空間,再自行加進清單。

使用者名稱探查封鎖與後台檔案編輯限制
防火牆區還有兩個預設就開著的保護,加上一個預設關閉的清理選項。
「封鎖使用者名稱探查」擋的是用 ?author= 一個個試出登入帳號的手法,開啟後,網址帶有 author= 的請求會被終止。說明文字同時警告,這個選項可能干擾網站的正常運作,網站若有功能依賴這類網址,要先確認會不會受影響。
「限制 WP 檔案編輯」則是把後台內建的外掛與佈景主題檔案編輯器關掉,效果等同在 wp-config.php 裡把 DISALLOW_FILE_EDIT 設為 true,後台不能再直接編輯檔案。這樣即使有人拿到管理員帳號,也沒辦法直接從後台改寫外掛程式碼。
至於預設關閉的「Clean WP Files」,放在區頁的 General settings 裡,開啟後會自動刪除 WordPress 內不必要的檔案,像是 wp-config-sample.php、readme.html 與 license.txt,清理程序每天執行一次。
Bots and IPs 區靠累積違規次數封鎖機器人
Bots and IPs 區處理兩件事,分辨訪客是真人還是機器人,並把壞訪客自動擋下。區頁的說明提到,Shield 會把防火牆的訊號與其他所有防護元件的訊號串在一起,隨著時間替每位訪客建立一份輪廓,用來判斷誰是真人、誰是機器人、誰懷有惡意;自動 IP 封鎖則是這套機制的核心,防禦一被觸發就封鎖對方的 IP,削弱攻擊的效果。
區頁有四條設定項目,分別是 Bot 動作、自動 IP 位址封鎖、CrowdSec IP 位址封鎖與 silentCAPTCHA。另外,正牌的搜尋引擎爬蟲(Google、Bing、DuckDuckGo、Yandex、Apple)與已知服務(ManageWP、Pingdom、Stripe、CloudFlare)不會被封鎖,所以 SEO 與監控工具照常運作。

silentCAPTCHA 以被動訊號辨識機器人
silentCAPTCHA 是 Shield 自己的機器人辨識機制,最特別的地方是它不要求訪客做任何事。沒有勾圖、沒有輸入驗證碼,而是靠時間、表單互動行為、請求特徵這類被動訊號,判斷送出請求的是真人還是自動程式。它不需要申請金鑰、不對外發請求,運算都在自己的伺服器上,也不會因為額外的 JavaScript 而弄壞表單。
v22.0 把它升級到 v3,挑戰機制從原本的雜湊型工作量證明,改成以 PBKDF2 為基礎的金鑰推導,開發團隊的說法是這是一個對 GPU 加速更不友善的難題,迭代次數也能設定。白話一點,就是要求瀏覽器在背景做一點運算,對機器人是實實在在的成本,對真人幾乎無感;Adaptive 模式還會依訪客裝置的效能,自動在保護強度與使用體驗之間取得平衡,真人訪客仍然看不到任何挑戰。
區頁的 silentCAPTCHA 條目有三個可調的數字。Bot Challenge Complexity 是挑戰的複雜度,有 None、Adaptive、Low、Medium、High 五段,預設 Medium,複雜度越高,對機器人的成本越大,但使用較慢裝置的真人訪客也可能多承擔一點負擔。silentCAPTCHA Bot Minimum Score 預設 45,每個 IP 位址都有自己的訪客分數,分數越高越像真人;分數低於這個最低分的請求(例如登入或留言)可能被擋,設得越高越嚴格,但也越可能誤擋看起來像機器人的真人,設成 0 則停用一般頁面請求的 Bot 檢查,啟用時可填 1 到 99 之間的分數。High Reputation Bypass 預設 250,聲譽累積得夠高的訪客,Shield 永遠不會自動封鎖。

至於它保護哪些表單,要分開看。登入表單預設受保護,註冊與忘記密碼表單要到登入區自己勾選,留言表單則要到垃圾訊息區開啟,預設是關閉的。第三方登入表單(例如 WooCommerce)與聯絡表單的保護屬於 ShieldPRO。
違規計分的來源與自動封鎖的門檻
Shield 決定封誰,不靠人工維護黑名單。每位訪客在跟網站互動時都會被默默計分,登入失敗、被防火牆擋下、silentCAPTCHA 判定失敗等訊號累積成違規次數,超過門檻就自動封鎖。入門指南舉的例子是,機器人嘗試登入失敗 10 次,Shield 就會立刻封鎖這個 IP。
「自動 IP 位址封鎖」有兩個關鍵設定。違規次數限制(Offense Limit)預設為 10,設成 0 就等於關閉自動封鎖;封鎖到期(Auto Block Expiration)預設為 1 小時,可以選小時、天、週、月。說明文件給的理由是,封鎖名單太長、留得太久都會拖慢效能,所以 Shield 會自動清除過期的 IP,讓名單保持精簡。

「Bot 動作」則決定各種行為要記多少違規。畫面上列了八種訊號,能調整的是登入失敗(帳號存在、密碼打錯)與 XML-RPC 存取,其餘六種(無效使用者名稱、偽造的網路爬蟲、404 偵測、連結陷阱、無效指令碼載入、空白使用者代理)屬於 ShieldPRO。每種訊號都有五個回應層級,分別是 Disabled、Activity Log Only、Increment Offense Counter、Double-Increment Offense Counter 與 Immediate IP Block。登入失敗預設為增加違規計數,XML-RPC 存取預設只記錄在活動記錄。

XML-RPC 的預設這樣保守,有它的道理。說明文字提醒,如果網站沒有用到 XML-RPC,就沒有理由有人去存取它,但也要小心別擋到合法的 XML-RPC 流量,建議先從記錄開始,觀察活動記錄,確定不會擋到正常請求之後,再切換成封鎖。
被封鎖的 IP 可以到 Investigate 的「Bot 與 IP 位址規則」頁查看,那裡列出被封鎖的 IP 與原因,也能手動封鎖或放行某個 IP。規則支援 CIDR 網段,放行規則(bypass)永遠優先於封鎖規則,所以自己的固定 IP 或信任的服務,加進放行名單就不會被誤擋。
CrowdSec 威脅情報的三種封鎖模式
CrowdSec 是一個開源、全球共享的惡意 IP 情報網路,別的網站先遇過的攻擊會回饋進來。說明文件的形容是,它讓 Shield 在做任何評估之前就先領先一步,直接封鎖名單上的 IP。資料也是雙向的,Shield 會持續追蹤惡意訪客,並把這些資訊分享給 CrowdSec,再由 CrowdSec 分享給其他 WordPress 網站。
設定在組態 > Bots and IPs > CrowdSec IP 位址封鎖,有三種模式,預設是第一種。
- 封鎖請求,但允許訪客自行解封:只對因為出現在 CrowdSec 名單上而被擋的 IP 有效,這個自動解封是 CrowdSec 自己的機制,說明文件建議用它,才能在誤判時給真人訪客最大的彈性。
- 封鎖請求,且不能自行解封:名單上的 IP 一律擋住。
- 完全停用 CrowdSec。
另外還有一個 CrowdSec Enroll ID 欄位,用來註冊這個站台的 CrowdSec 實例。名單上的 IP 預設 7 天後過期,或依 CrowdSec 的資料指定的時間過期,說明文件的建議是不必特別處理,讓這些可能有害的 IP 自然過期就好。所有 CrowdSec 相關動作都會記到 WP 活動記錄,被擋的 IP 也能在 Bot 與 IP 位址規則表裡看到。

登入區涵蓋暴力破解防護、2FA 與工作階段保護
登入(Login Security,介面顯示「登入」)區處理三件事,限制機器人暴力破解登入表單、用雙因素驗證確認登入者身分、防止登入後的工作階段被偷走而讓惡意者取得管理權限。
區頁有六條設定項目,分別是 2FA General Settings、限制嘗試次數(登入、註冊與遺失密碼表單)、電子郵件驗證、OTP & Passkeys、工作階段劫持保護與隱藏 WP 登入。還沒啟用任何主要的 2FA 驗證方式時,區頁頂端的 2FA General Settings 會顯示紅色的「關鍵」。介面上標「$」的 Passkeys、備用碼、自動登入連結、記住裝置,以及把工作階段綁定到 IP、瀏覽器或主機名稱的使用者工作階段鎖定,屬於 ShieldPRO。

登入嘗試間隔與受保護的三種表單
入門指南把限制登入嘗試列為第二優先,認為只要這一個選項,就能擋下針對 WordPress 登入頁的暴力破解與惡意使用。設定在「限制嘗試次數」那一條裡,分成兩個欄位。
Login Cooldown Interval(登入冷卻間隔)預設為 5 秒,意思是 WordPress 每隔指定的秒數,只處理一次登入嘗試,設成 0 就是關閉。間隔拉長,機器人連續試密碼的速度就被壓慢,但間隔太長,真人輸錯密碼之後也得等更久。Protected Forms(受保護的表單)則是勾選哪些表單要由 silentCAPTCHA 把關,有 Login、Register、Lost Password 三個,預設只勾登入。

區頁還會主動提醒覆蓋範圍的缺口,例如 silentCAPTCHA 沒有保護註冊與遺失密碼表單,以及 WooCommerce 這類第三方登入表單沒有被涵蓋。登入失敗還會連帶累積違規計分,這就回到 Bots and IPs 區的違規次數,一個機器人反覆登入失敗,最後是被自動封鎖,而不只是被擋在冷卻間隔外面。
電子郵件、Google Authenticator 與 Yubikey 三種 2FA
雙因素驗證(2FA)是登入區最大的一塊。Shield 提供三種驗證方式,需要綁定的方式(Google Authenticator 與 Yubikey)要由使用者自己到個人資料頁完成設定。驗證時用的頁面可以選擇 WordPress 登入頁,或 Shield 自訂的 MFA 頁,說明提醒,WordPress 登入頁的 2FA 若發生衝突或問題,改選自訂頁就好。
- 電子郵件驗證:預設關閉,開啟後登入時會把驗證碼寄到使用者信箱,並對選定的角色強制執行,預設角色是 contributor、author、editor、administrator。說明特別註明,這個強制設定只適用於電子郵件驗證。
- Google Authenticator:預設關閉,開啟後使用者可以到個人資料頁綁定。說明指出 LastPass Authenticator 與 Microsoft Authenticator 也能用,只是統稱為 Google Authenticator。
- Yubikey OTP:預設關閉,要先填入 Yubikey 的 App ID 與 API Key,才能讓使用者登錄實體金鑰。

這三種裡,電子郵件驗證碼能不能寄達,取決於網站的寄信設定,而不是 Shield 本身。寄信不穩定的網站,改用驗證 App 或另外設定專用的寄信服務比較保險,不然驗證碼寄不出去,管理員自己就會被擋在門外。
工作階段逾時與隱藏 WP 登入頁
登入區最後兩條是工作階段劫持保護與隱藏 WP 登入。工作階段保護裡,可以調整的有三項。使用者登入通知信預設關閉,開啟後每次成功登入,Shield 就寄一封信給該使用者,帳號被別人登入時比較容易發現。工作階段有效期限覆寫預設為 2 天,WordPress 本身的預設也是 2 天,勾選「記住我」則是 14 天,這個數值相當於工作階段的絕對上限,不能小於 1。閒置逾時預設為 48 小時,使用者閒置超過這個時數,下次回來就會被強制登出,設成 0 就關閉。

「隱藏 WP 登入」是把 wp-login.php 換成自訂的路徑。在欄位裡填入一個只含字母與數字的路徑之後,原本的 /wp-login.php 與 /wp-admin/ 在未登入時會回傳 HTTP 404,對掃描網站登入頁的機器人來說,就像這個入口根本不存在。另外可以設定一個導向網址,被隱藏的頁面會自動轉過去,留空則顯示標準的 404 頁面。
這項設定有被自己鎖在外面的風險。新的登入路徑一旦忘記,就找不到登入入口,所以設定之後務必把路徑記下來,最好存在密碼管理工具裡。
使用者區的外洩密碼檢查須先打開密碼政策總開關
使用者(Users Protection,介面顯示「使用者」)區管帳號本身是否處在安全狀態,區頁有五條設定項目:密碼政策、封鎖已外洩密碼、強制執行最低密碼強度、使用者停權、封鎖標示為垃圾訊息的使用者註冊。其中最低密碼強度、使用者停權與封鎖垃圾註冊,畫面上都帶「$」記號,屬於 ShieldPRO,免費版能設定的是前兩條。
第一條是密碼政策的總開關「強制執行密碼政策」,預設為關閉。第二條是「防止已外洩密碼」,它比對的是公開可取得的外洩密碼清單,使用者不能再用清單上出現過的密碼。區頁的說明講得很直接,使用者重複使用密碼是風險,尤其是那些已經因為其他網站的資料外洩而曝光的密碼,所以 Shield 會找出外洩密碼的使用,並提示使用者更換,或是阻止儲存這類密碼。
這一區容易漏掉的是,「防止已外洩密碼」這個選項本身預設開啟,卻依附在總開關底下,總開關沒開,外洩密碼檢查就不會運作。所以預設狀態下,區頁仍然顯示紅色的「所有密碼政策均已停用」,必須先把「強制執行密碼政策」打開,才算真正生效。

檢查發生在使用者註冊、更新個人資料、重設密碼與登入的時候。
垃圾訊息區分開處理機器人留言與人工留言
垃圾訊息(SPAM Blocking,介面顯示「標示為垃圾訊息」)區處理留言垃圾。Shield 把留言垃圾分成兩類,一類是自動機器人發的,用 silentCAPTCHA 擋;另一類是真人手動貼的,用字典比對擋,因為真人貼的垃圾常常能繞過機器人防護,反而最令人頭痛。
區頁有五條設定項目,分別是封鎖 Bot 留言垃圾訊息、封鎖人工留言標示為垃圾訊息、聯絡表單整合封鎖 Bot 垃圾訊息、Trusted Commenters 與 General settings。聯絡表單整合,以及依使用者角色略過掃描的選項,屬於 ShieldPRO,區頁會偵測已安裝的相容表單外掛並顯示提示。
silentCAPTCHA 攔截機器人留言,預設為關閉
機器人留言交給 silentCAPTCHA 處理,這個開關預設是關的,裝完要自己去打開,不然區頁會一直顯示「silentCAPTCHA 未保護您的 WP 留言以防範 Bot」的警示。入門指南對它的說明是,Shield 在留言表單上使用 silentCAPTCHA 的 AntiBot 系統,用機器人的訊號辨識自動化的垃圾留言,這也是最常見的一種留言垃圾。
打開之後,被判定為機器人垃圾的留言,要放在哪裡由「Bot SPAM Action」決定,一共有四個選項:移到待審(Move To Pending Moderation)、移到垃圾留言(Move To SPAM,預設)、移到垃圾桶(Move To Trash),或直接封鎖並導向(Block And Redirect)。選預設的垃圾留言,這些留言會集中放在垃圾留言匣,需要時還能回頭檢查;想讓垃圾留言匣也保持乾淨,才需要改成垃圾桶或直接封鎖。

人工垃圾留言的字典比對與信任留言者
對付人工貼的垃圾留言,Shield 的做法是用一份定期更新的常見垃圾內容字典,掃描留言內容裡有沒有典型的垃圾關鍵字,不會把留言送到外部服務去掃描,這是它強調的隱私優點。這個「封鎖人工留言標示為垃圾訊息」選項預設為關閉,被判成垃圾之後,預設的處理方式是移到待審,可以選的處理選項與機器人留言相同。
另外兩個設定一起影響留言體驗。Trusted Commenter Minimum 預設為 1,意思是留言者只要有一則留言被核准,之後就視為可信任,他的留言不再被掃描,這跟 WordPress 預設的信任門檻一致。Comments Cooldown 預設為 10 秒,是兩則留言之間的最短間隔,用來防止留言灌水,設成 0 就關閉。
HTTP 標頭區的四項基本標頭設定
HTTP 標頭(HTTP Headers,介面顯示「HTTP 標頭」)區讓外掛替網站的回應加上瀏覽器端的防護標頭,保護的對象是訪客。HTTP 標頭是送給瀏覽器的指示,控制它怎麼處理收到的內容。這一區的態度很保守,「基本 HTTP 標頭」那條的說明就寫了,某些標頭可能影響網站對訪客的運作方式,所以 Shield 不在這裡提供任何直接建議,設定錯誤可能造成訪客的問題,建議諮詢這方面的專家。
基本 HTTP 標頭有四項。
| 項目 | 對應標頭 | 預設 |
|---|---|---|
| 封鎖 iFrame | X-Frame-Options | On: Allow iFrames On The Same Domain |
| XSS 防護 | X-XSS-Protection | 開 |
| 防止 Mime-Sniff | X-Content-Type-Options: nosniff | 開 |
| Referrer Policy | Referrer-Policy | Default: Full Referrer URL(aka Unsafe URL) |

封鎖 iFrame 防的是點擊劫持,選項有 Off、同網域允許與全部封鎖三種。MDN 的說明是,X-Frame-Options 用來指示瀏覽器能不能把網頁嵌入 frame 或 iframe,避免內容被嵌進別人的網站;DENY 代表任何 frame 都不能載入,SAMEORIGIN 則只有祖先 frame 都同源時才能嵌入,而若需要更完整的控制,MDN 建議改用 CSP 的 frame-ancestors 指令。
XSS 防護的情況比較特別。MDN 把 X-XSS-Protection 標為非標準、已棄用的功能,網站若已設好嚴格的 CSP,現代瀏覽器上多半不再需要它,在某些情況下反而可能讓原本安全的網站產生 XSS 漏洞,建議改用 Content-Security-Policy。Shield 仍把它預設開啟,要不要保留可以自行判斷。
防止 Mime-Sniff 對應 nosniff,要求瀏覽器照伺服器宣告的內容類型處理,不去猜內容是什麼,可以避免使用者上傳的內容被當成 HTML 執行。
Referrer Policy 的預設選項在畫面上顯示為「Default: Full Referrer URL(aka Unsafe URL)」,另外還有 no-referrer、same-origin、strict-origin-when-cross-origin 等共十種選項。MDN 指出 unsafe-url 這個值會在任何請求中送出完整的網址,包含路徑與查詢字串,連 HTTPS 轉往不安全來源時也一樣,可能洩漏 HTTPS 網址裡的私人資訊。這一項值得對照自己網站的需要,考慮換成比較保守的值。
測試這一區有兩個地方要留意。第一,很多頁面快取外掛會完全忽略自訂的 HTTP 標頭,測試時可能看不到標頭,需要先關閉快取外掛再測。第二,標頭有沒有真的送出去,要用瀏覽器開發者工具或 curl -I 實際確認,不要只看 Shield 的設定畫面。進階的內容安全政策(CSP)標頭屬於 ShieldPRO。
掃描區的核心檔案比對與外掛狀態檢查
掃描(Scans,介面顯示「掃描」)區是事後發現異動的一道防線。區頁的說明認為,再怎麼防,入侵仍可能發生,掃描檔案有沒有被改,是發現網站是否已被入侵最可靠的方式;它也把被作者棄置的外掛視為網站上的一個弱點。
區頁有四條設定項目:漏洞掃描、FileLocker(wp-config.php 防護)、WordPress 檔案掃描與 Scan Scheduling。漏洞掃描這一條裡,弱點掃描本身與有弱點外掛的自動更新屬於 ShieldPRO,同一條裡的棄置外掛掃描(Abandoned Plugins)則是免費版就能用;FileLocker 與排程頻率調整同樣屬於 ShieldPRO。

核心檔案、棄置外掛與偽裝外掛三種偵測
WordPress 核心檔案比對預設開啟,說明文字強調 WordPress 核心檔案無論如何都不應該被改動。Shield 會拿網站上的核心檔案,跟 WordPress.org 的正式檔案逐一比對,找出被改過、遺失,或憑空多出來的核心檔案,並建議這項功能隨時保持開啟。
棄置外掛偵測同樣預設開啟,查的是 WordPress.org 上的外掛是不是已經被作者放棄維護。它的開關不在 WordPress 檔案掃描那一條,而是放在漏洞掃描那一條裡,選項名稱是 Abandoned Plugins,結果列在 Actions Queue 的 Abandoned Assets。偽裝外掛偵測(Cloaked Plugins)是 22.2 新增的,找的是存在於主機上、卻被藏在後台外掛列表之外的外掛,22.2.3 又改善了偵測,減少誤判。這一項沒有獨立的開關,Shield 啟用後就會自動運作;發現時可以在 Actions Queue 的 Cloaked Plugins 檢視,即時警示信也預設會寄出。
核心檔案比對與棄置外掛偵測的排程,預設每天跑一次,排程在凌晨自動執行,想立刻掃描也可以從 Actions Queue 側邊的「執行手動掃描」隨時重跑。掃描範圍的選擇(PHP 檔案、外掛檔案、佈景主題檔案、/wp-content/ 目錄與 WP 根目錄)與自動檔案修復同樣屬於 ShieldPRO,沒有自動修復時,被改動的檔案要靠手動修復。

掃描結果的修復、忽略與刪除
掃描跑完之後,結果集中在 Actions Queue。流程是從 Actions Queue 點 Fix Now,進入 Scan Results 頁面,逐一檢視,再決定要修復、忽略還是刪除。動手之前,說明文件的建議是先檢查檔案本身。從結果表點開檔案,可以看到原始內容、差異與其他資訊,也可以下載。
掃描結果裡的檔案分三種狀態,處理方式各不相同。
- modified(被修改):核心檔案被你或別人改過,可以修復,也可以忽略。
- unrecognised(未識別):WordPress 核心目錄裡出現不屬於核心的新增檔案,可以刪除或忽略。
- unidentified(無法判定):Shield 無法判定的檔案,要先檢視內容再決定,確認沒有問題才忽略。
「忽略」的意思是這個檔案被接受,列入白名單,之後的掃描結果就不再出現;如果忽略的是惡意程式碼掃描的結果,還會把「誤判」的訊號回傳給 ShieldNET,讓之後的掃描減少同樣的誤判。批次處理可以用「Ignore All Results」,想讓已經忽略的結果重新出現,可以用「Clear Ignore Flags」,或是對單筆使用「Unignore」。
能設自動修復的只有被修改的檔案,未識別與無法判定的檔案不能設成自動刪除,因為這太冒險,要靠手動用「Delete/Repair Selected」或刪除圖示處理。偽裝外掛的結果則每一筆都有 Ignore 選項,只有確認認得這個外掛、也確認它本來就該在網站上的時候才使用,管理或停用外掛的選項只在適用時出現。所有掃描動作都有紀錄,可以到 Investigate 的 WP 活動記錄查看。
Actions Queue 排出待辦、Investigate 追查紀錄、報告彙整趨勢
防護設定好之後,日常要看的是它有沒有在運作。v22 的設計初衷是「If everything is important, nothing is」,意思是不再把關鍵問題與例行紀錄放在同一張平面清單裡,而是分給三個工作區各司其職:Actions Queue 把該處理的事依緊急程度排好,Investigate 回頭查發生過什麼,報告把一段期間的結果整理成報告與警示信。WordPress 儀表板上的小工具,顯示的也是跟 Actions Queue 同一組優先項目,所以不必進 Shield 後台,就能先看到最要緊的事。
Actions Queue 分成立即處理與後續檢視
Actions Queue 頁首有兩個分組:Fix now 放需要立即處理的關鍵問題,Review next 放可以稍後再看的維護事項,兩個分組上各有數字徽章,標示該組目前有幾項。左側選單的 Actions Queue 旁也有待辦數的徽章,所以不用點進去,就能知道有沒有事。
分組下方是各類項目列,包括 WordPress 檔案(核心檔案有沒有被改動)、Abandoned Assets(被棄置的外掛與佈景主題)、Cloaked Plugins(偽裝外掛)、WordPress 版本、PHP 版本與 OpenSSL 擴充功能。全新安裝後常見的情況,是 Fix now 沒有項目,Review next 卻有數十項維護項目,多半是更新、未啟用的外掛與佈景主題這類例行檢視。

兩個更新讓這份清單比較清爽。22.0.7 起,被忽略的掃描結果不再佔據進行中的佇列;22.2.0 起,外掛與佈景主題更新之後,Shield 會重新整理它們的檔案參照,降低「已修改」或「未識別」的誤報。
WP 活動記錄和請求記錄可查到的內容
Investigate 是回頭查「發生過什麼」的地方,畫面上的入口分成兩排。Explore 那一排有使用者、IP 位址、外掛、佈景主題、WordPress Core 各自的檢視,加上一張「即時流量」卡片,可以即時看到網站正在收到的請求;另有一張標著 PRO、註明 Coming soon 的 Premium Integrations。Review activity 那一排則是 WP 活動記錄、Web Request Log 與使用者工作階段。

WP 活動記錄記錄使用者、訪客與機器人的活動,也包含網站上的重大事件,能用來回答某個 IP 為什麼被擋、某個帳號何時被建立這類問題。從 v22 起,活動記錄的資料會自動管理,Shield 儲存重要的安全與網站事件,連結可用的請求細節,再依保留層級清掉較舊的紀錄,價值低的紀錄清得比較快,有用的事件留得比較久,資料庫不會無限成長。控制台的即時動態也從 v22.0 起過濾掉例行的 AJAX 與 heartbeat 流量。

Web Request Log 記錄網站收到的請求,使用者工作階段則列出目前與最近的登入工作階段。IP 位址檢視能看單一 IP 的請求歷史,並直接從那裡進入 IP 規則頁,做封鎖或放行。
報告與即時警示信的寄送設定
報告工作區有三張卡片。「安全性報告」放歷史報告與詳細內容,Reporting & Alerts Configuration 設定寄信頻率與即時警示,Charts & Trends 則用圖表比較固定期間內的關鍵事件。

v22 起,Shield 把「警示」與「報告」正式分開,警示是通知你有需要處理的事,報告則是讓你看一段時間以來網站的整體表現。寄信設定因此也分成幾組,收件信箱預設為網站的管理員信箱。
- 警示彙整信頻率:停用、每天(預設)、每週。
- 資訊報告頻率:停用、每天、每週(預設)、每兩週、每月。
- 即時警示(Instant Alerts):Shield 被停用(預設寄信)、偽裝外掛(預設寄信)、管理員登入(預設停用)、防火牆封鎖(預設停用)。管理員帳號異動、發現有弱點的外掛佈景主題、FileLocker 變更三種,屬於 ShieldPRO。

掃描結果的警示信裡有「View Report」連結,可以打開詳細的掃描報告頁,直接看到發現了什麼、該怎麼處理。
使用 Shield 要留意的鎖死、外掛衝突與誤擋
Shield 的選項越往嚴格設,越可能出現把自己擋在外面、或誤擋正常功能的情形。
把自己鎖在外面。 常見原因有兩個,一是把自己的 IP 加進封鎖名單,二是開了電子郵件 2FA,但網站寄不出驗證信。外掛頁給的出路是用 FTP 或檔案管理員,進入 WordPress 根目錄下的 wp-content/plugins/wp-simple-firewall/ 資料夾,建立一個叫 forceoff 的檔案,再載入網站的任何一頁,Shield 就會關閉;回到後台之後,要把 forceoff 從伺服器刪掉。如果只是忘記 Security Admin 的 PIN,不必走到這一步,預設開啟的「允許電子郵件地址覆寫」可以用驗證信解除限制。
跟別的資安外掛打架。 外掛頁的說明是,不建議同時執行兩支控制同一登入或請求流程的資安外掛,會造成重複封鎖、紀錄雜訊變多,除錯也更困難;如果要保留另一支,就把重疊的區域關掉。
誤擋正常功能。 容易出狀況的多半是預設關閉的那幾項,包括 WAF 的 PHP 程式碼與積極掃描、停用 XML-RPC、封鎖匿名 REST API,強度設定檔會把它們一次全部打開,行動 App、Jetpack 這類整合與依賴 REST API 的外掛都可能受影響。排查時一次關閉一項,或從 WP 活動記錄找出被擋的請求;REST API 的部分,也可以把需要匿名存取的外掛補進排除清單。
ShieldPRO 的方案、價格與額外功能
ShieldPRO 的價格取自 2026 年 10 月 3 日 Shield 定價頁顯示的內容,單位為美元,不含當地稅額(定價頁註明稅額會在結帳時視情況加收)。
定價頁列了三個方案。Free 是免費方案;Plus 就是 ShieldPRO,頁面標為推薦方案;Enterprise/Agencies 則標示為即將推出,年繳 199 美元起。Plus 的價格依網站數量計算,定價頁並寫明年繳比月繳省 57%。
| 網站數 | 年繳(美元) |
|---|---|
| 1 站 | 149 |
| 3 站 | 249 |
| 5 站 | 299 |
| 10 站 | 399 |
| 25 站 | 699 |
| 50 站 | 999 |
| 100 站 | 1,299 |
月繳的價格是 1 站 29 美元、3 站 49 美元、100 站 299 美元。付費方案附退款保證,可以隨時取消;定價頁的說明是,從免費方案升級不需要重新安裝 Shield,之後要增加網站數時,升級費用會依目前授權的剩餘時間按比例計算。另外,Shield 的說明文件提供 14 天的免費試用,期間所有 ShieldPRO 功能完整開放,每人每個網站限試用一次。
ShieldPRO 多出的功能,依 WordPress.org 外掛頁與說明文件,大致可以分成幾類。
- 掃描與修復:弱點掃描(含自動更新有弱點的外掛)、AI 惡意程式碼掃描、外掛與佈景主題檔案掃描、自動檔案修復與掃描區域選擇、保護 wp-config.php 等檔案的 FileLocker,以及可調到每小時一次的掃描頻率。
- 備份:ShieldBACKUPS 異地備份。
- 流量與機器人:流量速率限制、進階 CrowdSec 情報,以及更多的 Bot 動作訊號。
- 登入與帳號:Passkeys 與備用碼等進階 2FA、密碼強度與到期政策、使用者停權、使用者工作階段鎖定。
- 垃圾訊息與標頭:第三方表單與註冊垃圾的封鎖、CSP 標頭。
- 管理:自訂規則、匯入匯出與跨站同步、MainWP 整合、白標。
Shield Security 的選項看起來很多,真正需要一開始就決定的,其實只有幾件事。先走完引導式設定,確認訪客 IP 的來源抓得對,再把 Security Admin 的 PIN 設好,後面的防護區就可以一區一區慢慢打開。
每打開一項較嚴格的選項,先看一次 WP 活動記錄,確認沒有誤擋正常的登入、留言或外掛功能,再往下一區走,即使出了狀況,也知道是哪一項造成的。平常只要偶爾打開 Actions Queue,把仍然需要人看的項目處理掉,其餘的交給 Shield 自己處理就好。
