WordPress

Shield Security 守在 WordPress 內部:8 個防護區分工,從引導式設定到誤擋排除

主機的防火牆像大樓一樓的警衛,管得住誰能走進大樓,卻不會去數三樓有人對同一扇門連續試了幾百把鑰匙。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 則評價。

WordPress.org 外掛目錄上的 Shield Security 頁面,側欄顯示版本 22.2.3、啟用安裝數 30,000 以上與 4.8 顆星評分
在 WordPress.org 外掛目錄就能核對 Shield Security 的版本、相容需求、啟用安裝數與評分(2026 年 10 月 3 日截圖)。

四個工作區與組態裡的八個防護區

Shield 的後台從 22.0 版(2026 年 5 月 20 日發佈)起,重組成四個工作區,所有防護設定都集中在其中一個叫「組態」的工作區裡。左側選單從上到下依序是控制台、Actions Queue、Investigate、組態與報告,四個工作區的分工如下。

  1. Actions Queue(介面維持英文)放待處理事項,把需要立刻處理的關鍵問題與可以晚點看的警示分開,再依緊急程度排序。
  2. Investigate(介面維持英文)負責追查,有使用者、IP 位址、外掛、佈景主題、WordPress Core 各自的檢視頁,也能查活動記錄與請求記錄。
  3. Configure(介面顯示「組態」)放全部的防護設定,頁首附有就地搜尋。
  4. Reports(介面顯示「報告」)放報告、趨勢圖表與寄信設定。

控制台首頁是整個後台的總覽。最上方的 LAUNCHPAD 會列出目前待處理的安全問題數與維護項目數,往下依序是最近 7 天的統計(登入封鎖、IP 位址封鎖、XML-RPC 封鎖等計數)、最近事件,以及會即時更新的即時監控,裡面同時列出 WP 活動與流量請求。左側的 Guide Me 則是任務搜尋入口,用來快速找到想處理的事並直接跳過去。

Shield Security 控制台首頁由上而下排列 LAUNCHPAD、最近 7 天統計、最近事件與即時監控
控制台首頁先用 LAUNCHPAD 列出待處理的安全問題與維護項目數,往下才是統計、事件與即時監控(測試站畫面,管理員帳號名稱已遮蔽)。

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

Shield Security 組態首頁的 10 張卡片,8 個防護區各自標出關鍵、需要處理或良好的狀態
剛裝好、全部維持預設值時,Security Admin、掃描、登入與使用者四區都標成「關鍵」。
防護區介面名稱負責什麼
Security AdminSecurity Admin用 PIN 保護 Shield 自己的設定,並限制其他管理員改動 WordPress 的關鍵設定
Firewall防火牆攔截惡意的 HTTP 請求,限制 XML-RPC、REST API 與後台檔案編輯
Bots and IPsBots and IPs辨識機器人,依違規次數自動封鎖惡意訪客
Scans掃描偵測被改動的核心檔案、被棄置的外掛與偽裝的外掛
Login Security登入保護登入表單,提供雙因素驗證與工作階段防護
Users Protection使用者管理密碼政策與外洩密碼檢查等帳號本身的安全
SPAM Blocking標示為垃圾訊息擋下機器人與真人貼上的垃圾留言
HTTP HeadersHTTP 標頭替網站回應加上瀏覽器端的防護標頭

這八區不是各自為政。防火牆是周邊防線,負責攔下惡意請求,而登入失敗、被防火牆擋下、silentCAPTCHA 判定失敗這類訊號,會一起累積成每位訪客的聲譽分數,達到門檻就由 Bots and IPs 區自動封鎖。登入區管進門的驗證,使用者區管帳號本身的安全,掃描區則負責在防線失守之後發現異動,而 Security Admin 區守著這一切設定本身。

Shield Security 8 個防護區的分工:防火牆與違規訊號串成自動封鎖,其餘各區分管登入、帳號、留言、標頭、掃描與設定保護
防火牆攔下的請求與登入失敗等訊號累積成訪客的聲譽分數,達到門檻就由 Bots and IPs 自動封鎖,其他防護區各管一段。

每張卡片上都有狀態標示,分成「關鍵」「需要處理」「良好」三種,一眼就看得出哪個區還有缺口。點進防護區之後,是一條條可展開的設定項目,按下「組態」展開內容,改完按 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,介面顯示為「淺色」「中等」「強」,說明文字依序是「輕度安全性個人資料」「穩健的安全態勢」「強大的防禦性安全態勢」;不選任何一級就按下一步,則不會套用任何設定檔。

引導式設定第 3 步「安全性個人資料」,並排比較目前、淺色、中等、強四欄的違規次數、封鎖時間與各項防護
三個現成等級逐級疊加限制,對照「目前」那一欄就看得出,淺色在登入表單、使用者名稱探查、SQL 查詢與 CrowdSec 上反而比預設寬鬆。

三個等級是疊加的,中度建立在輕度之上,強度又建立在中度之上,所以越往上,限制越多。下表依後台的對照畫面,整理各等級的設定。

項目輕度中度強度
違規次數限制10 次7 次5 次
封鎖持續時間1 小時1 天1 週
silentCAPTCHA Bot 門檻254565
登入冷卻時間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 這類來源可選。

Shield Security 一般外掛設定裡的 IP 位址來源選項,預設為 Automatically Detect Visitor IP
訪客 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。

Security Admin 防護展開後的 PIN 碼欄位、30 分鐘逾時,以及預設開啟的允許電子郵件地址覆寫
PIN 還沒設定時這一條顯示紅色,PIN 要輸入兩次,逾時預設 30 分鐘,電子郵件覆寫則預設開啟。

第二條「管理員帳號防護」預設關閉,開啟後不能建立、刪除、修改或提升其他管理員帳號。第三條「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 則預設關閉。

Shield Security 防火牆區頁列出 WAF、XML-RPC、速率限制、匿名 REST API 等設定項目與各自狀態
預設值下只有使用者名稱探查封鎖與檔案編輯限制是綠色,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 程式碼選項的說明直接寫了,它大概會擋住外掛與佈景主題編輯器的存檔;積極掃描則可能讓誤判的防火牆封鎖增加。區頁也會針對這兩項關閉的規則顯示提醒,說明觸發該規則的請求不會被攔截。

WAF 展開後的五個攔截選項,目錄遍歷、SQL 查詢與欄位截斷預設開啟,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 等常見外掛的命名空間,來自這些命名空間的匿名請求照樣放行。遇到其他需要匿名存取的外掛,可以請外掛開發者提供它的命名空間,再自行加進清單。

封鎖匿名 REST API 預設關閉,下方的 Rest API 排除項目已預填 contact-form-7、jetpack、woocommerce 等命名空間
列在排除清單裡的命名空間,開啟封鎖後照樣放行匿名請求,其他需要匿名存取的外掛可以自行補進去。

使用者名稱探查封鎖與後台檔案編輯限制

防火牆區還有兩個預設就開著的保護,加上一個預設關閉的清理選項。

「封鎖使用者名稱探查」擋的是用 ?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 與監控工具照常運作。

Bots and IPs 區頁的四條設定:Bot 動作、自動 IP 位址封鎖、CrowdSec IP 位址封鎖與 silentCAPTCHA
Bot 動作底下列出七種預設不計違規的訊號,其餘三條在預設值下都已是綠色。

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 永遠不會自動封鎖。

silentCAPTCHA 展開後的三個數值:挑戰複雜度預設中等、Bot 最低分數 45、高信譽略過 250
這三個數字決定 silentCAPTCHA 對機器人有多嚴格,最低分數設得越高,越可能誤擋看起來像機器人的真人。

至於它保護哪些表單,要分開看。登入表單預設受保護,註冊與忘記密碼表單要到登入區自己勾選,留言表單則要到垃圾訊息區開啟,預設是關閉的。第三方登入表單(例如 WooCommerce)與聯絡表單的保護屬於 ShieldPRO。

違規計分的來源與自動封鎖的門檻

Shield 決定封誰,不靠人工維護黑名單。每位訪客在跟網站互動時都會被默默計分,登入失敗、被防火牆擋下、silentCAPTCHA 判定失敗等訊號累積成違規次數,超過門檻就自動封鎖。入門指南舉的例子是,機器人嘗試登入失敗 10 次,Shield 就會立刻封鎖這個 IP。

「自動 IP 位址封鎖」有兩個關鍵設定。違規次數限制(Offense Limit)預設為 10,設成 0 就等於關閉自動封鎖;封鎖到期(Auto Block Expiration)預設為 1 小時,可以選小時、天、週、月。說明文件給的理由是,封鎖名單太長、留得太久都會拖慢效能,所以 Shield 會自動清除過期的 IP,讓名單保持精簡。

自動 IP 位址封鎖的違規限制預設 10 次、封鎖到期預設 1 小時,自動解封與請求路徑白名單屬於 ShieldPRO
同一個 IP 累積 10 次違規就被封鎖,1 小時後自動解除,封鎖名單因此保持精簡。

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

Bot 動作的八種訊號,登入失敗預設增加違規計數、XML-RPC 存取預設只記錄,其餘六種在免費版呈灰色
每種訊號都能選停用、僅記錄、增加違規計數、雙倍計數或立即封鎖,免費版能調整的只有登入失敗與 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 位址封鎖,有三種模式,預設是第一種。

  1. 封鎖請求,但允許訪客自行解封:只對因為出現在 CrowdSec 名單上而被擋的 IP 有效,這個自動解封是 CrowdSec 自己的機制,說明文件建議用它,才能在誤判時給真人訪客最大的彈性。
  2. 封鎖請求,且不能自行解封:名單上的 IP 一律擋住。
  3. 完全停用 CrowdSec。

另外還有一個 CrowdSec Enroll ID 欄位,用來註冊這個站台的 CrowdSec 實例。名單上的 IP 預設 7 天後過期,或依 CrowdSec 的資料指定的時間過期,說明文件的建議是不必特別處理,讓這些可能有害的 IP 自然過期就好。所有 CrowdSec 相關動作都會記到 WP 活動記錄,被擋的 IP 也能在 Bot 與 IP 位址規則表裡看到。

CrowdSec IP 位址封鎖預設為 Block Request With Ability To Auto-Unblock,下方是空白的 CrowdSec 註冊 ID 欄位
預設模式會擋下 CrowdSec 名單上的 IP,同時保留讓真人訪客自行解封的機會。

登入區涵蓋暴力破解防護、2FA 與工作階段保護

登入(Login Security,介面顯示「登入」)區處理三件事,限制機器人暴力破解登入表單、用雙因素驗證確認登入者身分、防止登入後的工作階段被偷走而讓惡意者取得管理權限。

區頁有六條設定項目,分別是 2FA General Settings、限制嘗試次數(登入、註冊與遺失密碼表單)、電子郵件驗證、OTP & Passkeys、工作階段劫持保護與隱藏 WP 登入。還沒啟用任何主要的 2FA 驗證方式時,區頁頂端的 2FA General Settings 會顯示紅色的「關鍵」。介面上標「$」的 Passkeys、備用碼、自動登入連結、記住裝置,以及把工作階段綁定到 IP、瀏覽器或主機名稱的使用者工作階段鎖定,屬於 ShieldPRO。

登入區頁的六條設定,2FA General Settings 在還沒啟用任何 2FA 方式時顯示紅色
限制嘗試次數那一條會直接點出註冊、遺失密碼表單與 WooCommerce 登入表單尚未受到保護。

登入嘗試間隔與受保護的三種表單

入門指南把限制登入嘗試列為第二優先,認為只要這一個選項,就能擋下針對 WordPress 登入頁的暴力破解與惡意使用。設定在「限制嘗試次數」那一條裡,分成兩個欄位。

Login Cooldown Interval(登入冷卻間隔)預設為 5 秒,意思是 WordPress 每隔指定的秒數,只處理一次登入嘗試,設成 0 就是關閉。間隔拉長,機器人連續試密碼的速度就被壓慢,但間隔太長,真人輸錯密碼之後也得等更久。Protected Forms(受保護的表單)則是勾選哪些表單要由 silentCAPTCHA 把關,有 Login、Register、Lost Password 三個,預設只勾登入。

受保護的表單預設只勾登入,冷卻時間預設 5 秒,下方可以選擇使用者表單提供者
Register 與遺失密碼要自己勾選,冷卻時間則決定 WordPress 每隔幾秒才處理一次登入嘗試。

區頁還會主動提醒覆蓋範圍的缺口,例如 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,才能讓使用者登錄實體金鑰。
OTP & Passkeys 展開後,Google Authenticator 與 Yubikey OTP 預設關閉,通行金鑰屬於 ShieldPRO
Yubikey 要先填好 App ID 與 API 金鑰,使用者才能登錄實體金鑰,通行金鑰在免費版呈灰色。

這三種裡,電子郵件驗證碼能不能寄達,取決於網站的寄信設定,而不是 Shield 本身。寄信不穩定的網站,改用驗證 App 或另外設定專用的寄信服務比較保險,不然驗證碼寄不出去,管理員自己就會被擋在門外。

工作階段逾時與隱藏 WP 登入頁

登入區最後兩條是工作階段劫持保護與隱藏 WP 登入。工作階段保護裡,可以調整的有三項。使用者登入通知信預設關閉,開啟後每次成功登入,Shield 就寄一封信給該使用者,帳號被別人登入時比較容易發現。工作階段有效期限覆寫預設為 2 天,WordPress 本身的預設也是 2 天,勾選「記住我」則是 14 天,這個數值相當於工作階段的絕對上限,不能小於 1。閒置逾時預設為 48 小時,使用者閒置超過這個時數,下次回來就會被強制登出,設成 0 就關閉。

工作階段劫持保護的登入通知信預設關閉、有效期限覆寫 2 天、閒置逾時 48 小時
使用者工作階段鎖定能把工作階段綁定 IP 位址、瀏覽器或主機名稱,這一項屬於 ShieldPRO。

「隱藏 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)。選預設的垃圾留言,這些留言會集中放在垃圾留言匣,需要時還能回頭檢查;想讓垃圾留言匣也保持乾淨,才需要改成垃圾桶或直接封鎖。

封鎖 Bot 垃圾訊息預設停用,Bot 垃圾訊息動作預設為 Move To SPAM
機器人留言攔截要自己打開,打開後被判定的留言預設移進垃圾留言匣,需要時還能回頭檢查。

人工垃圾留言的字典比對與信任留言者

對付人工貼的垃圾留言,Shield 的做法是用一份定期更新的常見垃圾內容字典,掃描留言內容裡有沒有典型的垃圾關鍵字,不會把留言送到外部服務去掃描,這是它強調的隱私優點。這個「封鎖人工留言標示為垃圾訊息」選項預設為關閉,被判成垃圾之後,預設的處理方式是移到待審,可以選的處理選項與機器人留言相同。

另外兩個設定一起影響留言體驗。Trusted Commenter Minimum 預設為 1,意思是留言者只要有一則留言被核准,之後就視為可信任,他的留言不再被掃描,這跟 WordPress 預設的信任門檻一致。Comments Cooldown 預設為 10 秒,是兩則留言之間的最短間隔,用來防止留言灌水,設成 0 就關閉。

HTTP 標頭區的四項基本標頭設定

HTTP 標頭(HTTP Headers,介面顯示「HTTP 標頭」)區讓外掛替網站的回應加上瀏覽器端的防護標頭,保護的對象是訪客。HTTP 標頭是送給瀏覽器的指示,控制它怎麼處理收到的內容。這一區的態度很保守,「基本 HTTP 標頭」那條的說明就寫了,某些標頭可能影響網站對訪客的運作方式,所以 Shield 不在這裡提供任何直接建議,設定錯誤可能造成訪客的問題,建議諮詢這方面的專家。

基本 HTTP 標頭有四項。

項目對應標頭預設
封鎖 iFrameX-Frame-OptionsOn: Allow iFrames On The Same Domain
XSS 防護X-XSS-Protection開
防止 Mime-SniffX-Content-Type-Options: nosniff開
Referrer PolicyReferrer-PolicyDefault: Full Referrer URL(aka Unsafe URL)
基本 HTTP 標頭的四項預設值:iFrame 允許同網域、XSS 防護與防止 Mime-Sniff 開啟、Referrer Policy 送出完整網址
Shield 在這一區不提供直接建議,Referrer Policy 的預設值會送出完整網址,值得依網站需要換成較保守的選項。

封鎖 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。

掃描區頁的四條設定,漏洞掃描與 FileLocker 顯示紅色,WordPress 檔案掃描列出多個尚未掃描的範圍
免費版的掃描區會持續提示 PHP、外掛、佈景主題檔案與自動修復尚未啟用,這些範圍都屬於 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,沒有自動修復時,被改動的檔案要靠手動修復。

WordPress 檔案掃描器預設開啟,檔案掃描區域與自動檔案修復的選項在免費版呈灰色
免費版會比對 WordPress 核心檔案,掃描範圍與自動修復要升級 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 卻有數十項維護項目,多半是更新、未啟用的外掛與佈景主題這類例行檢視。

Actions Queue 頁首的 Fix now 為 0、Review next 有 36 項,下方列出 WordPress 檔案、Cloaked Plugins 等檢查結果
全新安裝後常見這種狀況:需要立即處理的是 0 項,例行維護則有數十項,側邊另有執行手動掃描的入口。

兩個更新讓這份清單比較清爽。22.0.7 起,被忽略的掃描結果不再佔據進行中的佇列;22.2.0 起,外掛與佈景主題更新之後,Shield 會重新整理它們的檔案參照,降低「已修改」或「未識別」的誤報。

WP 活動記錄和請求記錄可查到的內容

Investigate 是回頭查「發生過什麼」的地方,畫面上的入口分成兩排。Explore 那一排有使用者、IP 位址、外掛、佈景主題、WordPress Core 各自的檢視,加上一張「即時流量」卡片,可以即時看到網站正在收到的請求;另有一張標著 PRO、註明 Coming soon 的 Premium Integrations。Review activity 那一排則是 WP 活動記錄、Web Request Log 與使用者工作階段。

Investigate 首頁分成 Explore 與 Review activity 兩排,可以依使用者、IP 位址、外掛、佈景主題與 WordPress Core 追查
上排依對象追查,也能直接看即時流量,下排則是 WP 活動記錄、Web Request Log 與使用者工作階段三種紀錄。

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

WP 活動記錄逐筆列出外掛選項變更、使用者登入與新增資料表等事件,並附上來源 IP 與時間
每筆紀錄都標出身分、IP 與發生時間,想查某個設定何時被改、有誰登入過,就從這裡開始(測試站畫面,使用者名稱已遮蔽)。

Web Request Log 記錄網站收到的請求,使用者工作階段則列出目前與最近的登入工作階段。IP 位址檢視能看單一 IP 的請求歷史,並直接從那裡進入 IP 規則頁,做封鎖或放行。

報告與即時警示信的寄送設定

報告工作區有三張卡片。「安全性報告」放歷史報告與詳細內容,Reporting & Alerts Configuration 設定寄信頻率與即時警示,Charts & Trends 則用圖表比較固定期間內的關鍵事件。

報告工作區的三張卡片:安全性報告、Reporting & Alerts Configuration 與 Charts & Trends
歷史報告、寄信設定與趨勢圖表各占一張卡片,對應 v22 起把警示與報告分開的設計。

v22 起,Shield 把「警示」與「報告」正式分開,警示是通知你有需要處理的事,報告則是讓你看一段時間以來網站的整體表現。寄信設定因此也分成幾組,收件信箱預設為網站的管理員信箱。

  • 警示彙整信頻率:停用、每天(預設)、每週。
  • 資訊報告頻率:停用、每天、每週(預設)、每兩週、每月。
  • 即時警示(Instant Alerts):Shield 被停用(預設寄信)、偽裝外掛(預設寄信)、管理員登入(預設停用)、防火牆封鎖(預設停用)。管理員帳號異動、發現有弱點的外掛佈景主題、FileLocker 變更三種,屬於 ShieldPRO。
即時警示設定中,Shield 被停用與 Cloaked Plugins 預設寄信,Admin Login 與 Firewall Blocks 預設停用
管理員帳號、漏洞與 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 自己處理就好。

常見問答

本區問答由 AI 依文章內容自動整理,僅供快速參考,正式內容仍以全文為準。

Shield Security 有哪 8 個防護區?

Shield Security 的 8 個防護區各管一種威脅:Security Admin 守設定、防火牆擋惡意請求、Bots and IPs 自動封鎖、掃描查檔案異動,其餘四區分管登入 2FA、帳號密碼、垃圾留言與 HTTP 標頭。

Shield Security 引導式設定要決定哪些事?

Shield Security 的引導式設定共 6 步,真正要做決定的有三步:套用輕度、中度或強度的安全設定檔,設定 Security Admin 的 PIN,以及要不要在頁尾顯示安全徽章。之後想重走一遍,可從組態工作區的工具列重新開始。

Shield Security 的 PIN 忘了怎麼辦?

Shield Security 的「允許電子郵件地址覆寫」預設開啟,忘記 Security Admin 的 PIN 時,可以用寄到一般設定指定信箱的驗證信,覆寫並關掉 Security Admin 的限制,不必動到外掛檔案。

Shield Security 掃描結果該修復還是忽略?

Shield Security 的掃描結果分三種狀態:被修改的核心檔案可修復或忽略,核心目錄裡未識別的新增檔案可刪除或忽略,無法判定的檔案要先檢視內容再決定,確認沒有問題才忽略。選擇忽略等於列入白名單,之後的掃描不再出現。

Shield Security 鎖住自己怎麼解除?

Shield Security 鎖住自己時,可用 FTP 在 wp-simple-firewall 外掛資料夾建立 forceoff 檔案,載入任一頁就會關閉,回後台再刪掉這個檔案。常見原因是封鎖到自己的 IP,或 2FA 驗證信寄不出去。

Shield Security 跟主機防火牆有什麼不同?

Shield Security 運作在 WordPress 內部,專門判讀登入試密碼、檔案被改寫這類 WordPress 特有的攻擊,主機防火牆守的則是伺服器周邊。兩者分工互補,裝了 Shield 也不能不管主機那一層。

silentCAPTCHA 怎麼分辨真人與機器人?

silentCAPTCHA 是 Shield Security 自己的機器人辨識機制,不要求訪客勾圖或輸入驗證碼,而是靠時間、表單互動行為、請求特徵這類被動訊號,判斷送出請求的是真人還是自動程式。它不需要申請金鑰,運算都在自己的伺服器上。

Shield Security 幾次違規會封鎖 IP?

Shield Security 的違規次數限制預設為 10 次,登入失敗、被防火牆擋下、silentCAPTCHA 判定失敗等訊號累積到門檻,就自動封鎖這個 IP,封鎖預設 1 小時後到期。違規次數設成 0,等於關閉自動封鎖。

Shield Security 外洩密碼檢查為何沒生效?

Shield Security 的「防止已外洩密碼」雖然預設開啟,卻依附在「強制執行密碼政策」這個總開關底下,而總開關預設關閉。總開關沒打開,外洩密碼檢查就不會運作,所以要先到使用者區打開密碼政策總開關,才算真正生效。

ShieldPRO 比免費版多了哪些功能?

ShieldPRO 多出的功能包括弱點掃描與 AI 惡意程式碼掃描、自動檔案修復、FileLocker、ShieldBACKUPS 異地備份、流量速率限制、Passkeys 等進階 2FA、CSP 標頭,以及自訂規則與白標等管理功能。

資料來源
  1. Shield Security – Smart Bot Blocking, Brute-Force Login Protection & File Scanning(WordPress.org 外掛目錄) — WordPress.org
  2. Shield Security Getting Started Guide — Shield Security
  3. Shield Security PRO Release 22.0 — Shield Security
  4. Shield Security Development Changelog — Shield Security
  5. Shield Security Pro Pricing — Shield Security
  6. What Is The CrowdSec Integration And How Does It Work? — Shield Security
  7. A Complete Guide To The Shield Security Scans — Shield Security
  8. Request Firewall options explanations — Shield Security
  9. What are the extra features for ShieldPRO? — Shield Security
  10. REST API Handbook: Frequently Asked Questions — WordPress
  11. XML-RPC Core Update(WordPress 3.5 起預設啟用 XML-RPC) — WordPress
  12. X-Frame-Options header — MDN
  13. X-XSS-Protection header — MDN
  14. Referrer-Policy header — MDN
  15. What is the Daily Scan Frequency feature and how to set it? — Shield Security
  16. wp_set_auth_cookie()(登入 Cookie 預設 2 天、勾選記住我 14 天) — WordPress