WordPress 被駭怎麼救?
先別急著刪檔:還原的 4 個步驟與主機端的 6 道防線

作者:邦邦(瑪尼國際 工程師)· 2026 年 9 月 · 閱讀時間約 9 分鐘

WordPress 被駭之後,第一件該做的事不是刪檔,是先把現場完整保存下來。大多數人發現網站被塞黑頁或被掛暗連結的反應,是立刻把看起來可疑的檔案砍掉、把後台密碼改一改,然後鬆一口氣。這個順序有兩個問題:可疑的檔案被刪掉之後,你就再也查不出對方是從哪裡進來的;而且被塞進來的東西幾乎不會只有一個,砍掉看得見的那個,剩下的照樣在。

正確的順序是四步:保存現場 → 還原到乾淨的還原點 → 換掉所有憑證 → 補上原本的入口。下面逐步說明,並且說清楚主機端能替你擋掉什麼、擋不掉什麼。至於網站本來就慢、還沒被駭的情況,請見WordPress 網站很慢怎麼辦;要換主機的話,搬家本身的陷阱寫在WordPress 搬家怎麼搬不掉排名

怎麼判斷真的被入侵了,而不是只是壞掉

被入侵與單純故障的差別,在於「內容有沒有被改成別人想要的樣子」。下面幾個徵兆一旦出現,就要當成入侵處理,而不是當成外掛衝突:

徵兆通常代表什麼優先度
搜尋結果裡出現不是你寫的標題(賭博、藥品、仿冒品) 被植入專門給搜尋引擎看的頁面,一般訪客直接開網站看不到 高,會直接影響既有排名
從 Google 點進來會被轉走,自己直接輸入網址卻正常 轉址判斷來源,刻意避開網站擁有者
頁面原始碼底部多出一堆看不見的連結 暗連結,對方在借你的網站權重
後台出現你不認識的管理員帳號 對方已經取得可持續使用的入口 最高,代表憑證已經外流
網站目錄裡出現名字像亂碼、或副檔名對不上內容的檔案 後門程式,通常不只一個 最高
單純白畫面、單純 500 錯誤、更新完外掛才開始壞 多半是相容性或資源問題,不是入侵 照一般故障排除處理即可

這裡值得補一句實際觀察:被掃描不等於被入侵。我們把自己這台主機在 2026-09-19 的存取紀錄拿出來看,從清晨到下午總共 522 個請求,其中 26 個回 404,裡面包含對 /s.php 的 4 次與 /1234.php 的 3 次嘗試——那些檔案在網站上根本不存在,所以回 404 就是正確的結果。任何一個開在公開網際網路上的網站,每天都會收到這種自動化的試探,這是常態,不是警訊。真正要處理的是「試探成功了」留下的痕跡,也就是上表前五列。

量測說明:上述請求數量取自我們自己官網當日的存取紀錄,時間區間為 03:51 至 13:14,只是用來說明背景雜訊的量級,不是任何形式的攻擊統計。

還原的四個步驟:順序錯了會被打第二次

第一步:保存現場,不要先刪

把整個網站目錄與資料庫原封不動打包一份,存到網站以外的地方(本機或另一顆硬碟,不要放在同一個網站空間裡)。這一包不是拿來還原的,是拿來事後查對方從哪裡進來的。順手把當天前後的存取紀錄也留一份——入侵路徑幾乎都寫在裡面,而紀錄檔會輪替,過幾天就沒了。

第二步:還原到入侵發生之前

重點在「之前」兩個字。很多人還原到最近一次備份,結果那一份已經含有後門,等於什麼都沒做。判斷方法是用第一步留下的紀錄,找出可疑檔案第一次出現的時間,再挑那個時間點之前的還原點。這也就是為什麼備份能往回追多久,比備份多密集更重要。

第三步:把所有憑證換一輪

主機控制台、FTP/SFTP、資料庫使用者、WordPress 後台每一個管理員帳號,全部換新密碼,不是只換被發現有問題的那一個。如果同一組密碼還用在別的服務上,那些也要換。這一步最容易被跳過,也是「還原完又被打一次」最常見的原因。

第四步:補上原本的入口,再放回線上

還原只是把網站回到過去,它沒有修掉當初被利用的那個洞。把所有外掛與佈景更新到現行版本,停用並刪除已經不用的外掛(停用但留著的外掛,檔案還在、一樣能被直接呼叫),確認 PHP 版本還在有安全性更新的版本區間。做完才把網站放回公開。

最常見的兩個錯誤

一、只刪檔不還原。後門很少只放一個,刪掉看得到的那個,過幾天網站又變回去。
二、只還原不換密碼。如果對方是拿著正確的密碼登入的,那你還原幾次他就進來幾次。這兩件事必須一起做,順序是先保存、再還原、再換密碼。

備份要能還原才算備份:怎麼驗收

「有備份」和「還原得回來」是兩件事。沒有被真正還原過的備份,在需要它的那天有相當高的機率派不上用場——可能是備份其實早就失敗了沒人發現,可能是只備了檔案沒備資料庫,也可能是還原所需的時間遠超過你能接受的停機時間。驗收備份只有一個方法:真的還原一次,而且不要在正式站上做。

給一個量級參考。我們自己這台主機上,帳號層級的還原點目前有 22 個,最新一個是 2026-09-15、最舊一個可以回到 2026-01-01,也就是還原點涵蓋約九個月。以本站的網站目錄為樣本實測:

項目實測值
網站目錄檔案數4,618 個檔
網站目錄大小226 MB
打包壓縮後大小154,664,960 位元組(約 147 MB)
解壓還原耗時27.6 秒
量測說明:2026-09-19 於同一台伺服器上實測,不含下載與上傳時間,也不含資料庫。樣本是我們自己的官網(手寫 PHP,不是 WordPress),只用來說明「這個規模的網站,還原是幾十秒還是幾小時」的量級,不等於 WordPress 網站的還原時間——WordPress 還要加上資料庫匯入,而且檔案數通常更多。

把這個數字講白:還原本身很快,慢的是別的環節。真正吃掉時間的是找出該還原到哪一個時間點、把備份檔從遠端拉下來、以及還原後逐項確認網站真的正常。所以在評估「我們最久能停多久」的時候,不要只算解壓縮那幾十秒。

備份的三個檢查項

一、往回追得夠遠嗎?暗連結這類攻擊常常幾週後才被發現,只留七天的還原點在那時候全部都是髒的。
二、檔案與資料庫都有嗎?只備檔案的備份,還原回來會是一個沒有內容的空殼。
三、備份放在哪裡?備份檔如果就放在網站目錄底下,入侵者進得來,它也一起沒了;順帶一提,那種備份檔往往還能被直接下載,等於把整站原始碼公開。

主機端的六道防線:能擋什麼、擋不掉什麼

選主機的時候,安全相關的說法通常都很像。比較務實的問法是「這台主機上有哪幾層防護,各自擋的是什麼」。以我們自己在用的環境為例,可以拆成六層:

防線擋得掉擋不掉
網站應用防火牆(WAF) 已知攻擊特徵的自動化掃描與注入嘗試 長得像正常請求的攻擊、用正確密碼登入的人
帳號之間的資源與權限隔離 同一台機器上別的網站被打之後波及到你 你自己網站內部的漏洞
帳號層級的定期備份與還原點 已經發生的損害,讓它可以回復 入侵本身,它是最後一道,不是第一道
可切換的 PHP 版本 被迫停在已經沒有安全性更新的舊版 外掛本身的漏洞
SSL 憑證與 HTTPS 傳輸過程被竊聽、密碼在途中被攔截 網站內容被改、後台被登入
存取紀錄 ——(它不擋任何東西) 但沒有它,你事後查不出入侵路徑

第四列值得展開。被迫停在舊版 PHP 是中小企業網站很常見的處境:佈景或某個外掛不相容,於是整站卡在多年前的版本,而那個版本早就不再收到安全性更新。我們這台主機上並存 15 個 PHP 版本(ea-php53 到 ea-php85),目的就是讓「先升級到還有更新的版本、再慢慢處理不相容的那個外掛」變成可行的選項,而不是二選一。現行環境是 PHP 8.5.10、MySQL 8.4.9、網頁伺服器 LiteSpeed。關於在虛擬主機上到底能自己控制到什麼程度,我們另外寫在虛擬主機能做到什麼

六道防線都齊全,仍然擋不掉三件事:密碼太弱、密碼在別的地方外洩、以及沒有人負責按更新。這三件事不在主機端,在流程端。

清乾淨之後的兩件事:更新紀律與搜尋引擎善後

外掛更新:怎麼更新才不會更新到網站壞掉

「不敢更新」通常不是因為懶,是因為曾經更新完網站就白畫面,之後就再也不敢按了。要打破這個循環,需要的是流程,不是勇氣:

  1. 更新前先有一份當下的備份。不是「主機商有定期備份」那一份,是你按下更新前五分鐘的那一份。有了它,出事的成本從「找人搶救」變成「還原重來」。
  2. 一次只更新一項,更新完立刻開網站看一眼。一次更新十個外掛然後壞掉,你要花的時間比分十次更新多得多。
  3. 核心、佈景、外掛分批處理。核心更新影響面最大,單獨一次做完並驗證。
  4. 把沒在用的外掛刪掉,不是停用。停用的外掛檔案還在網站上,一樣能被直接存取;在已知漏洞的清單裡,停用中的外掛照樣算數。
  5. 固定的節奏比完美的時機重要。每週或每兩週挑一個固定時段處理,遠比「等有空再說」有效——因為永遠不會有空。

如果這件事在公司裡沒有明確的人負責,那它實際上就是沒人做。這也是我們把 WordPress 的更新與監看放進網站代管範圍的原因:有人固定按更新、出事有人收拾,比買一套安全外掛有用。想知道台灣的 WordPress 主機該怎麼挑,可以看台灣 WordPress 主機怎麼選;各類型主機一年的實際費用,整理在主機租用費用一年多少

搜尋引擎善後:跟 Google 說你修好了

網站清乾淨、放回線上之後,還有一段尾巴:搜尋引擎那邊的資料不會自己馬上更新。如果被植入的頁面已經被收錄,它們還會留在索引裡一段時間;如果瀏覽器曾經跳出安全警告,那個警告也需要重新檢查才會解除。做法是在 Search Console 裡確認安全性問題的報告已經沒有項目,並且對受影響的網址重新提出檢索要求。

這一段之所以常被漏掉,是因為網站在自己眼裡已經正常了。但客戶是從搜尋結果點進來的,搜尋結果沒更新,對他們來說事情就還沒結束。如果對整體的委外範圍有疑問——設計、主機、代管到底該包到哪裡——可以參考我們的一條龍服務說明,或直接看低價一條龍服務隱藏的網站代管陷阱裡整理的合約面地雷。

常見問題

Q:WordPress 被駭了,可以直接把備份蓋回去就好嗎?

可以,但只做這一步的網站通常會被打第二次。還原只是把網站回到乾淨的狀態,它沒有處理對方是怎麼進來的。實務上的順序是:先保存現場(把被入侵的版本完整打包留存,不要直接刪),再還原到入侵發生之前的還原點,接著把所有密碼換一輪——主機控制台、FTP/SFTP、資料庫、WordPress 後台帳號都要換,然後才把網站放回線上。如果只還原不換密碼,對方手上那組憑證照樣能用;如果只換密碼不還原,留在檔案裡的後門照樣會被叫起來。兩件事要一起做。

Q:WordPress 網站多久備份一次才夠?

看網站多久會產生一次「重做會痛」的資料。純形象官網內容幾個月才動一次,主機商帳號層級的定期備份通常就夠用;有部落格或表單、每週都有新內容的網站,要確保備份頻率比你能接受的資料遺失量更密;電商與會員網站每天都有訂單與註冊,就必須是每日備份,而且資料庫要跟檔案一起備。更關鍵的是還原點能往回追多久:被掛暗連結這類攻擊常常是幾週後才被發現,如果備份只留七天,等你發現時所有還原點都已經是被入侵之後的版本,備份等於不存在。

Q:主機端的防護可以取代外掛更新嗎?

不行,兩者擋的是不同階段的東西。主機端的網站應用防火牆是在請求進到 PHP 之前先過濾掉已知的攻擊特徵,它能擋下大量自動化掃描,但它認得的是攻擊的形狀,不是你網站的漏洞;當某個外掛出現新的漏洞、而攻擊請求看起來跟正常請求沒兩樣時,防火牆沒有理由攔它。反過來說,外掛更新補的是漏洞本身,但補不到「密碼太弱被猜中」或「同一組密碼在別的網站外洩」這類問題。合理的做法是兩邊都做,再加上一份真的還原得回來的備份當最後一道。

網站被掛了東西,或想先確認備份真的還原得回來?

告訴我們網站現在的狀況與主機放在哪裡,工程團隊會先判斷是入侵還是故障,再談怎麼處理。

免費諮詢 →
本站由瑪尼國際自行設計、開發與維運(PHP 8.5 / MySQL 8.4,中華電信光纖機房)。我們同時承接企業官網設計、虛擬主機與網站代管 — 了解服務內容

延伸閱讀GUIDE

查看全部 54 篇文章 →

📞 技術支援(24小時):0921-070-027  |  📞 免費諮詢:0800-670000 📍 411 台中市太平區育賢路366號4樓之2  |  ✉ mani@mani.com.tw