WordPress

WordPress 活動記錄外掛是什麼?把每次後台操作都留下追查證據

多數人以為,只要把每個帳號的權限設對,後台就不會出事;讓管理者真正頭痛的,卻常是權限本來就給對了,卻沒人知道是誰、在什麼時候動了哪個設定。網站某天忽然多了一個新使用者、某個外掛被停用、某頁的內容跟前一天不一樣,問一輪負責後台的人,卻沒人承認自己碰過。

這種情況,光靠角色權限系統補不了,它只回答「誰可以做什麼」,不回答「這次是誰做的」。要把這個缺口補上,得靠活動記錄(activity log)外掛,它會把後台每一次操作自動寫成一筆帶時間、帶人名的紀錄,讓事後追查有據可查,不必再靠記憶或猜測。裝了它,多人共同管理同一個網站時,才有辦法在出狀況的當下,直接查出是哪一次操作、哪一個帳號動的手。

先從這種外掛實際會記錄什麼講起,才看得懂它怎麼幫多人共管的後台把帳補上。

活動記錄外掛是什麼?把後台每一次修改都留下紀錄的工具

活動記錄(activity log)指的是一份自動生成的紀錄,逐筆寫下網站後台發生過的操作,包括誰在什麼時間做了什麼變更。MalCare 的說明點出一個容易被忽略的事實,WordPress 預設並不會記錄網站上所有的變更,要追蹤這些異動,得另外安裝一支負責活動記錄的外掛,這也是這類外掛之所以存在的根本原因。

MalCare 也把這種功能稱為稽核日誌(audit log)或安全日誌(security log),三個說法指的其實是同一件事,一份記錄網站上所有使用者動作的報告。Hostinger 則把裝上之後多出的這份逐筆清單,具體拆成「內容」「使用者檔案」「網站設定」「系統」這幾類具有潛在風險的變更,管理者常拿它來排除問題、管理日常的工作流程。

這裡容易被搞混的是,活動記錄跟多數人熟悉的流量統計工具(例如 GA)並不是同一回事。流量統計看的是訪客怎麼逛網站、從哪個頁面進來又在哪裡離開,活動記錄看的則是後台使用者實際動了什麼手腳,兩者記錄的對象完全不同。

角色權限管入口,活動記錄管事後追查

角色權限跟活動記錄常被當成同一件事,但兩者管的其實是完全不同的兩個階段。角色權限(Administrator、Editor、Author 這類分級)處理的是「一開始有沒有資格做這件事」,WPZOOM 把使用者角色定義為分配給每個帳號的一組能力,用來決定這個人在網站上能做什麼、不能做什麼;劃清楚這些界線,才能避免網站因為意外或惡意的變更而受損。這是角色權限的本分,在事情發生之前先把門檻設好。

活動記錄要補的是角色權限管不到的另一半,這件事實際上是誰、在什麼時候做的。就算把權限設得再嚴謹,也擋不住幾種情況:本來就有權限的人自己判斷失誤、帳號被盜用後對方在權限範圍內搞破壞,或是多個管理員各自改了同一項設定,卻沒人知道對方也動過手。這幾種情況都不是「權限給錯了」,而是權限給對了,卻沒人記得後續發生了什麼。

角色權限負責事前設好資格門檻,活動記錄負責事後追查是誰在什麼時候動的手,兩者互補
角色權限管的是「有沒有資格做」,活動記錄補上「這次實際是誰做的」,少了任一半都追不到帳。

WPZOOM 在同一篇文章的角色管理建議裡,把「導入活動記錄」明列為權限管理之外的另一項必要措施,像 WP Activity Log 這類外掛會追蹤使用者的操作,提供究責的依據,也幫忙辨識可疑行為。MalCare 也特別提醒,使用者角色與權限本身的異動要被列入監控範圍,這類異動沒被注意到,可能造成未授權存取或內部資料外洩。這正好說明了「權限設完不代表沒事」,因為權限本身也可能被動手腳,只有活動記錄能看到這個異動確實發生過。

一筆完整紀錄包含的 4 個資訊

裝上活動記錄外掛之後,後台實際會多出一份逐筆的事件紀錄。以 WordPress.org 官方外掛頁面對 WP Activity Log 的說明為例,每一筆事件都會記下 4 項資訊:事情發生的日期與時間(精確到毫秒)、動手的使用者與其角色、變更發生的來源 IP 位址,以及被變更的物件本身。這 4 項缺一不可,少了時間就分不出先後順序,少了 IP 就沒辦法判斷是不是同一台裝置在操作,少了物件本身就只知道有人做了什麼,卻不知道動到的是哪一篇文章或哪一項設定。

一筆完整的活動記錄包含日期與時間、使用者與角色、來源 IP 位址、被變更的物件四項資訊
一筆紀錄要同時記下時間、是誰、從哪個 IP、動到什麼,缺一項事後追查就少一塊線索。

Melapress 官方的說明補充了另一個實用的細節,每一筆紀錄還會附上一組事件代碼與嚴重程度,方便管理者不用逐筆細讀內容,掃過清單就能分辨這是一次例行的小更動,還是需要立刻處理的高風險異動。像刪除一個管理員帳號跟修改一篇文章的標題,明顯不該用同樣的優先度去看待,嚴重程度分級就是拿來做這個篩選的。

WP Activity Log 的活動記錄清單,逐筆記下每次後台操作的日期時間、帳號與角色、來源 IP 與變更的物件與內容
裝好之後後台會多出這份逐筆清單,每一列都對齊了日期時間、操作帳號、來源 IP 與變更內容,出狀況時可以直接照欄位追查。

多人共管後台常見的風險情境

多人一起維護同一個後台,風險情境比單人管理的網站複雜得多。Hostinger 就指出,每個網站經營者都該追蹤網站上的所有活動,如果經營的是多使用者網站或多站網路,這件事又更加重要,理由很直接,人一多,光靠一個人的記憶去掌握誰動過什麼,幾乎不可能。最常見的第一種情況是團隊共用同一組管理員帳號登入,這時角色權限完全幫不上忙,因為系統只認得帳號本身,看不出這次登入的實際上是團隊裡的哪一個人,只有活動記錄留下的 IP 位址與時間點,才幫得上忙拼湊出當時是誰在操作。

第二種常見情況,是把後台權限暫時開放給協作的網頁維運人員或客服,事情忙完了卻忘記把權限收回,這組帳號就這樣一直留在系統裡,變成一個沒人記得的破口。第三種是離職員工的帳號沒有被即時停用,交接沒做完整,這個帳號實際上還能登入操作,卻已經沒有人在追蹤它的動向。這兩種情況的共通點都一樣,問題不在權限一開始給錯,而在給出去之後,沒有人記得要收回或關掉。

第四種情況是多個人同時調整同一項設定,各自改了自己那一版,卻互相覆蓋掉對方剛做的變更,最後連是誰改壞的都吵不清楚。MalCare 建議多人協作的網站要優先監控幾類事件,包括新使用者帳號的建立與刪除、失敗的登入嘗試,以及使用者角色權限的異動,這幾類事件分別對應到防止未授權存取、及早發現暴力破解攻擊,以及避免內部資料因為權限被誤改而外洩,剛好對上前面三種情境最常出問題的地方。

多人共管後台常見的四種風險:共用管理員帳號、外部帳號忘了收回、離職帳號沒停用、同時改同一設定互相覆蓋
這四種情境的共通點都是權限給對了,卻在給出去之後沒人記得追蹤或收回。

多數活動記錄外掛的免費版已經夠用,進階功能才收費

多數活動記錄外掛走免費、付費雙軌,但免費版並不是閹割版。以 WP Activity Log 為例,官方 FAQ 講得很直接,免費版完全不限制資料收集的範圍,付費版收集到的所有事件,免費版一樣都看得到。換句話說,免費版就足以把「誰、什麼時候、動了什麼」這件事的核心需求做完整,記錄、搜尋、篩選這幾項基本功能不用多花錢就有。

付費版解鎖的多半是管理層面的進階功能,而不是多記一些東西。像即時的 Email、簡訊或 Slack 通知,讓管理者不用自己盯著清單,異常狀況發生當下就能收到提醒;排程產出的 HTML 或 CSV 報表,方便定期稽核或需要提交紀錄時直接匯出;把紀錄存進外部資料庫或第三方系統,即使網站本身遭入侵,紀錄也不會被一併竄改;以及限制同一使用者帳號能同時開啟的工作階段數量,防止帳號共用。

另一支免費就能用的活動記錄外掛 Simple History,同樣能記錄文章、外掛、使用者活動這幾類核心事件,但根據其官方文件,免費版的紀錄預設只保留 30 天,超過就會被清掉,想留更長的保留期限或用進階功能才需要付費。這也代表免費版夠不夠用,除了看記不記錄得到,還要看紀錄能留多久。這一點上,免費版的保留期限預設通常偏短,很容易在真正需要的時候就已經被清空。

以 WP Activity Log 為例的核心功能

在眾多活動記錄外掛裡,WP Activity Log(開發商 Melapress,前身是 WP Security Audit Log)是免費版功能就相對完整的一款。具體看它的核心功能,能讓「活動記錄外掛裝了之後實際看得到什麼」這件事從概念變得具體。

登入與工作階段的即時掌握

外掛做的第一件事,是把「誰現在正在後台裡」看住。Melapress 官方對 WP Activity Log 的功能說明提到,它會追蹤使用者的登入與登出動態,同時記錄失敗的登入嘗試,用來及早偵測潛在的入侵行為;每一筆紀錄都附上來源 IP 位址,方便比對是不是同一個人、同一個地點在操作。

付費版再往上加一層即時掌握的能力,可以直接看到目前有哪些使用者正登入在後台、監看他們當下的操作,必要時一鍵把可疑的工作階段登出。另外還能設定同一個帳號能同時開啟的工作階段數量上限,避免帳號被多人共用,或被盜用後在別處同時登入操作。

內容與設定異動的完整紀錄

這是外掛真正的主力,幾乎把後台會影響網站運作的異動都記下來。WordPress.org 官方外掛頁面列出的追蹤範圍相當完整,文章、頁面與自訂文章類型的狀態與內容變更,標籤與分類的建立、修改、刪除,小工具與選單的建立、修改、刪除,使用者帳號的建立與刪除,以及使用者個人資料的變更,包括密碼、信箱、顯示名稱、角色這幾項最容易被動手腳的欄位。

再往上一層,連 WordPress 核心本身的更新、固定網址結構這類全站設定的變更,也在追蹤範圍內;外掛與佈景主題的安裝、啟用、停用、解除安裝、更新,一樣逐筆留底,連網站檔案的新增、修改、刪除都不放過。這個範圍已經涵蓋大部分後台會出狀況的地方,不只是誰發了一篇文章這種表面層級的操作。

多站共管最常忽略的一塊,是裝在網站上的其他外掛本身的設定,WP Activity Log 也把這塊補上了,它會追蹤 WooCommerce、Yoast SEO、RankMath、Advanced Custom Fields、WPForms、Gravity Forms 這幾款常見外掛的設定異動。這代表就算問題出在某個外掛的設定被誰改動,而不是 WordPress 核心本身,同樣查得到是誰動的手。

WP Activity Log 的事件開關清單,每個可記錄的事件都標了事件代碼與嚴重程度,並可自行勾選要不要記錄
外掛把能記錄的事件分門別類列成清單,每一項都標了事件代碼與嚴重程度,也能自行勾選要記錄哪些。

通知與報表對日常稽核的幫助

光是把紀錄留下來還不夠,外掛也提供把「被動查紀錄」變成「主動被提醒」的做法。付費版可以針對特定事件設定即時通知,像是有人安裝了新外掛、或某個工作階段被強制登出這類需要立刻掌握的變化,系統會直接透過 Email、簡訊或 Slack 送出提醒,不用自己盯著後台清單。

報表功能則是拿來對付事後要交代的需求,可以設定條件並排程,讓外掛每天、每週或每月自動送出一份報表,匯出格式是 HTML 或 CSV,內容要涵蓋哪些資訊也能自訂。WordPress.org 官方頁面也把「協助符合 GDPR、PCI DSS 這類法規與標準」列為這款外掛的功能之一,這代表活動記錄留下的不只是拿來抓漏用的紀錄,出事之後需要提交證明時,這份報表就是現成的留存證據。

保留期限太短的紀錄,出事時已經被清空

裝了活動記錄外掛不代表萬事大吉,紀錄能留多久,直接決定出事時查不查得到。WordPress.org 官方 FAQ 說明,WP Activity Log 不論免費版或付費版都可以無限期保留紀錄,但預設值只有 3 個月,要留更久得自己到活動記錄的保留政策設定裡調整,不會自動幫忙延長。前面提到的 Simple History 也一樣,免費版預設只留 30 天,兩款免費就能用的外掛,預設保留期限都偏短。

WP Activity Log 的保留期限設定,預設是刪除超過 3 個月的紀錄,可自行調長
保留期限就設在這裡,免費版預設只留 3 個月,放著不調整,最早那幾筆很容易在需要時已被清掉。

這代表如果裝好之後放著不管,最早那幾筆紀錄很可能在真正需要的時候已經被自動清掉。台灣數位發展部資通安全署在資安法規的常見問答裡,對政府機關的資通系統訂出一個具體參考值,依「資通安全責任等級分級辦法」,機關至少要保留作業系統日誌、網站日誌、應用程式日誌、登入日誌這 4 大類紀錄,保留期限至少 6 個月,並建議定期把日誌備份到跟原系統不同的實體,確保真的出事時足以拿來做根因分析。

免費版預設保留期限偏短,WP Activity Log 為 3 個月、Simple History 為 30 天,資安署對政府機關則要求至少 6 個月
免費版預設的保留期限多半偏短,不妨比照政府機關至少 6 個月的基準去調長(資料來源:數位發展部資通安全署、WP Activity Log 官方 FAQ、Simple History 官方文件)。

這雖然是針對政府機關資通系統的規範,一般中小企業的網站並不受這條硬性拘束,但可以當作一個保守的參考值。與其憑感覺把保留期限設成系統預設的 3 個月或 30 天,不如比照這個 6 個月的基準去調整,真的出狀況時,才不會翻開紀錄卻發現最關鍵的那幾筆早就被清空了。

多人共管的後台,真正麻煩的往往不是「誰有沒有權限」,而是「權限給對的人,後來實際做了什麼」,這正是活動記錄要補上的那一段。裝上一支外掛、把保留期限設得夠長,比出事之後才想去翻紀錄,划算得多。

資料來源
  1. WP Activity Log — WordPress.org
  2. WP Activity Log plugin benefits & features — Melapress
  3. FAQ (Frequently Asked Questions) — Simple History
  4. 資通安全責任等級分級辦法附表十所要求資通系統應保存日誌(log)之項目為何? — 數位發展部資通安全署
  5. 6 Best WordPress Activity Log Plugins Reviewed — MalCare
  6. Master WordPress User Roles and Permissions for Better Security — WPZOOM
  7. WordPress Activity Log: Why It's Important + Helpful Plugins — Hostinger