打開自己的網站,畫面正常得很,沒有跳窗,也沒有轉址,首頁還是那行熟悉的標題。問題藏在你看不到的地方。把網域丟進 Google 搜尋,底下卻冒出幾則完全不相干的結果,標題寫著「真人百家樂儲值教學」或「情趣用品折扣碼」,點進去還真的連得到博彩或成人網站;更常見的情況是,Google Search Console 忽然跳出一封「安全性問題」通知信,說這個網站被回報為遭入侵。
這不是網站中毒後隨機亂噴垃圾字,而是一種鎖定明確、算計精準的手法。駭客入侵一個已經被 Google 信任、累積一定排名與反向連結的既有網站,偷偷塞進博彩或成人相關的隱藏頁面,借用這個網站辛苦累積下來的搜尋權威,去幫自己真正想推的關鍵字衝排名。網站經營者本人往往完全看不到這些頁面,因為惡意程式只在判斷來訪者是 Google 的爬蟲時才會顯示垃圾內容,一般人用瀏覽器直接打開,看到的永遠是乾淨版本。這也是為什麼很多人第一時間會覺得是 Google 誤判,急著申訴卻怎麼樣都過不了。
排查這種入侵不是重灌網站那麼粗暴的事,裝一個防毒外掛也不會自動解決,要先看懂駭客用什麼路徑進來、垃圾內容實際藏在哪裡,才知道從哪裡找起、清完之後又該補起哪個破口。先從這種手法實際長什麼樣子講起。
網站被塞滿博彩與成人廣告,是什麼樣的入侵手法?
Google 把這類「網站被塞入自己沒有寫過的內容」的狀況,正式歸類為安全性問題的一種,並分成三個類別:遭入侵的內容,指有心人士利用網站的安全漏洞、未經授權植入的內容;惡意軟體或垃圾軟體,指程式碼本身會危害訪客裝置;社交工程,則是誘騙訪客交出帳密或安裝惡意程式。博彩與成人廣告注入屬於第一類,駭客要的不是破壞網站,而是「借用」,借用網站已經累積起來的網域信任與搜尋收錄地位,去幫自己真正想推的內容衝排名。Google 官方的安全性問題報告會列出幾個受影響網址當範例,但清單本身並不保證涵蓋全部受害頁面,實際規模往往比報告裡看到的更大。
判斷自己是不是中了這種招,有幾個訊號可以對照。最直接的是前台真的看得見異常,像是打開網站跳出賭博或成人廣告彈窗,或整個網站被轉址到博彩、成人站台;比較隱晦的則是垃圾頁面只存在於搜尋引擎眼中,前台完全看不到,得用 site: 加網域去搜尋才找得到那些頁面。另外兩個訊號要到後台才看得出來:Google Search Console 跳出安全性問題警告,或是使用者清單裡多出一個自己沒有加過的帳號;還有一個容易被忽略的線索是收錄頁面數量,如果實際文章、頁面加起來不到 100 篇,GSC 或 site: 搜尋卻顯示上萬筆結果,這種數量級對不上的落差,幾乎可以直接當成中招的證據。技術支援業者 MalCare 在自家的技術文件裡就提出一個對照門檻:一個平常 site: 搜尋大約只有 40 筆結果的網站,如果同樣的搜尋忽然暴增到 80 萬筆結果,這種落差不是誤差,是垃圾頁面被大量灌入索引的直接證據。
MalCare 同一份文件也提醒,駭客經常會把自己加為 Search Console 裡未經授權的使用者,藉此操控地理定位設定或 sitemap 位置;一旦收到「有人已驗證為擁有者」這類系統通知信,就該提高警覺,這通常代表入侵已經進行到能操控後台設定的程度。這幾個訊號能幫你先確認有沒有中招,但接下來還有一個更根本的問題:為什麼駭客偏偏挑博彩、成人這類內容,而不是隨便塞一堆無意義的垃圾字?
被鎖定的不是內容,是網域累積的搜尋信任
博彩、成人、盜版精品、來路不明藥物,這幾類內容有個共通點,在多數廣告平台與搜尋引擎的政策裡,本來就被限制或直接禁止投放。用一個全新網域從零開始經營這類主題,不但要面對更嚴格的審查,短時間內想排到搜尋結果前面也非常困難,競爭與信任門檻都比一般主題高得多。安全業者 Sucuri 在官方部落格對 SEO spam 的定義,精準點出駭客真正的算盤:攻擊者入侵網站、植入隱藏的惡意內容,目的是要劫持網站的搜尋引擎權威,再把原本流向這個網站的信任與流量,導向第三方經營的非法網站。Sucuri 同篇文章也指出,這類垃圾關鍵字常鎖定運動鞋或成人內容這類本身就受平台政策限制的品類,不是隨便選的,而是刻意挑「自己架站排名不起來、借別人的網站才排得起來」的品類。
換句話說,駭客找的是一個已經有排名、已經累積反向連結、被 Google 信任的既有網站,不管這個網站原本在討論設計、旅遊還是任何主題都無所謂,只要它夠乾淨、夠老、夠被信任,就是理想的借用對象。這跟網站自己主動掛廣告賺錢完全是兩回事,掛廣告至少網站主拿得到分潤,這裡卻是網站的搜尋信任被整個偷走去幫別人賺錢,網站主自己什麼好處都得不到,換來的反而是排名下跌、GSC 警告,以及被讀者當成不安全網站的風險。Sucuri 在自家 2024 年的惡意軟體趨勢報告裡統計,SEO 垃圾注入占其識別出的入侵事件的 38.4%,是占比最高的入侵類型之一,這代表這種手法不是特例,而是駭客手上數一數二常用的攻擊套路。

知道了駭客要的是什麼,接下來要解開最讓人困惑的一點:網站在你眼裡明明完全正常,為什麼 Google 還是一直示警?
首頁看起來正常,垃圾頁面只有 Googlebot 看得到
答案是一種叫 cloaking(偽裝)的技術。惡意程式碼會先判斷來訪者的身份,再決定要顯示哪個版本的內容:一般訪客與網站管理員自己用瀏覽器打開,看到的永遠是乾淨、正常的頁面;只有符合特定條件的來訪者,才會被顯示垃圾內容。判斷的依據通常有兩個,一是 User-Agent(瀏覽器或程式自報的身份字串),駭客會鎖定 User-Agent 顯示為 Googlebot 的請求;二是 Referer(訪客從哪個網址點進來),駭客會檢查來源是不是 google.com。只要不符合這兩個條件,顯示的就是正常內容,這也是為什麼網站主自己打開網站十次,十次都看不出異狀。

這種設計精準地製造出一種認知落差,網站主直接懷疑是 Google 誤判,急著提出重新審查的申訴,結果一次次被打回票,因為問題是真實存在的,只是自己用一般方式根本看不到。Google 官方的安全性問題說明文件建議一個具體做法,用網址檢查工具從 Google 的角度檢視頁面,原因是多數駭客所做的變更只有在 Google 機器的面前才會現形。文件也提供指令列的做法,用 curl 這個工具帶上偽裝過的 Referer 與 User-Agent,模擬一個從 Google 搜尋結果點進來的訪客:
curl -v --referer "https://www.google.com" --user-agent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FSL 7.0.7.01001)" http://www.example.com/page.htmlCode language: Bash (bash)
用這種方式,才有機會看到駭客特地藏起來的那個版本。這裡有個特別重要的提醒,文件明確建議不要直接用一般瀏覽器開啟懷疑中毒的頁面,因為惡意軟體有可能利用瀏覽器本身的漏洞,連帶讓檢查者自己的電腦也一起中毒;要檢查就用網址檢查工具,或前面這種指令列請求,不要冒險直接點開。技術業者 MalCare 也用一個實際案例補充這種落差有多容易讓人誤判,點開 Google 搜尋結果裡帶著垃圾關鍵字的那則連結,多半只會看到一個正常頁面,或者乾脆是 404,這正是 cloaking 刻意製造出來的效果,目的就是讓網站主難以靠自己發現問題。
確認了問題真實存在之後,下一步該問的是它從哪裡進來,後門通常只有幾個固定的入口。
後門開啟的四個常見入口
駭客能把垃圾內容塞進一個網站,前提是先找到一個進得去的破口。常見的入口大致集中在四種:密碼太弱或帳號被暴力破解、外掛與佈景主題留有已知卻沒修補的漏洞、安裝了被動過手腳的破解版外掛或佈景主題,以及管理者的裝置或第三方管理服務本身被入侵。

密碼外洩與帳號被暴力破解
最基本、也最常見的入口,是後台密碼本身就不夠強,太短、跟其他帳號重複使用,或乾脆設成公開查得到的個資,例如密碼直接是自己的電子郵件帳號。駭客用自動化工具反覆嘗試常見帳密組合,或直接跑字典攻擊,一旦猜中就能登入後台發文、安裝惡意外掛,這類攻擊通常帶有週期性的規律動作,同一組帳密會被反覆嘗試好一段時間。
WordPress.org 官方的「Hardening WordPress」文件對設定密碼列出幾個明確該避開的做法:不要用本名、帳號名稱、公司名或網站名稱的任何排列組合,不要用任何語言字典裡查得到的單字,不要用太短的密碼,也不要用純數字或純英文字母組成的密碼,混合大小寫、數字與符號才是比較安全的做法。文件並建議搭配兩步驟驗證作為額外防護,理由很直接:強密碼保護的不只是網站內容,攻擊者一旦拿到管理員帳號,就能安裝惡意程式碼,進一步危及整台伺服器,不只是這個網站而已。
外掛與佈景主題留下的舊版漏洞
這是入侵管道裡最大宗的一種:外掛或佈景主題本身存在已知的安全漏洞,但網站主一直沒有更新。問題在於,漏洞一旦被公開,通常會同時附上修補版本,這等於是同時向所有人公告這裡有破口,包括還沒更新的網站主,也包括在網路上到處掃描的駭客。自動化攻擊工具會批次掃描還停留在舊版的網站,一次鎖定大量目標,不需要對每個網站逐一分析。
WordPress.org 官方文件對這點講得很直接,如果 WordPress 被發現漏洞並釋出新版本修補,攻擊該漏洞所需要的資訊幾乎必定會流入公開領域,這正是舊版本更容易被鎖定攻擊的主因之一。因此文件建議永遠讓 WordPress 核心、外掛與佈景主題保持在最新版本,並善用 WordPress 自 3.7 版起就內建的自動更新功能,減少漏洞公開了卻沒去補的空窗期。
破解版佈景主題與外掛暗藏的後門
不少網站主為了省一筆授權費用,會去下載破解版(nulled)的付費佈景主題或外掛。問題出在破解的過程本身,把授權驗證拿掉的同時,經常也被有心人士預先植入後門程式,也就是說,從安裝的那一刻起,入侵管道就已經種在網站裡了,不必等外部攻擊真的發生。
MalCare 的技術文件講得很直白,破解版外掛與佈景主題之所以能免費取得,正是因為被植入了惡意程式,天下沒有白吃的午餐。除此之外,破解版還有一個長期的隱患,拿不到官方更新與技術支援,代表原本存在的漏洞永遠不會被修補。WordPress.org 官方文件也給出對應建議:只從 WordPress.org 官方外掛目錄,或有信譽的公司取得外掛與佈景主題,避免從來路不明的管道下載。
管理者裝置或第三方管理服務被入侵
第四種入口比較容易被忽略,因為問題不在網站本身,而在管理網站的那個人。一種情況是管理者自己的電腦或手機中了鍵盤側錄或木馬,後台密碼在輸入的當下就被竊取,網站端完全看不出異狀;另一種情況涉及會與雲端帳號綁定、可以遠端幫網站安裝外掛的第三方管理服務,駭客只要拿到那組雲端帳密,就能繞過網站本身的登入頁面,直接用遠端管理功能把惡意外掛裝進去,網站端不會留下任何暴力破解或異常登入的紀錄。
WordPress.org 官方文件對這點的提醒很簡潔:確保用來管理網站的電腦沒有間諜軟體、惡意軟體或病毒感染,因為不論 WordPress 本身或伺服器上疊了多少層安全防護,只要電腦上有一支鍵盤側錄程式,那些防護全部都毫無意義。同樣的邏輯也適用在任何能遠端幫網站安裝外掛或修改設定的雲端帳號上,這類帳號等於是網站的另一道後門,必須用跟後台同樣高的標準保護,高強度密碼加兩步驟驗證,不能因為它只是一個管理工具帳號就疏於防範。
搜尋結果與 GSC 安全性問題報告,能先框出受害範圍
找到自己比較像哪一種入口之後,實際排查該從哪裡開始?不用馬上打開程式碼,可以先靠幾個外部工具,抓出受害到什麼程度。

第一步是拿 site: 加自己的網域去 Google 搜尋,看看索引裡有沒有自己沒寫過的頁面。網站規模不大的話,直接搜尋 site:example.com 就能大致看出索引清單裡有沒有異常;規模大一點的網站,建議加上更精確的關鍵字,例如 site:example.com pharmacy,把 pharmacy 換成常見的垃圾字詞逐一測試,或用 site:example.com/wp-admin/ 去看看有沒有後台管理區的頁面被意外索引進去,正常情況下這種頁面根本不該出現在搜尋結果裡。Google 官方文件也提醒,確認問題時要避免直接用瀏覽器打開懷疑中毒的頁面,改用網址檢查工具,或前面提過的 curl 這類指令列工具去檢查,理由跟前面一樣,駭客常鎖定特定 User-Agent 或 Referer 顯示垃圾內容,直接瀏覽有可能連帶讓自己的電腦也中毒。
第二步是把平常的收錄頁數,跟現在 GSC 或 site: 搜尋顯示的數字對照一次,一旦落差明顯到不合理,幾乎可以直接當成中招的證據,不需要再猜。第三步是進 GSC 的安全性問題報告,看報告裡列出的錯誤與警告分類屬於哪一種,這能幫你判斷問題的性質與嚴重度。第四步、也是最容易被漏掉的一步,是檢查 GSC 的使用者與權限清單有沒有不認識的帳號。優化服務業者 Rank Math 在官方知識庫裡把檢查步驟寫得很具體:登入 GSC,選擇受影響的網域,進入設定,再點使用者與權限,找到不明使用者之後,點旁邊選單裡的 Ownership verification details 查看這個帳號當初是怎麼完成驗證的,確認清楚再點 Remove access 移除。
Rank Math 同一份文件特別強調一個容易被忽略的細節,如果入侵者已經完成過驗證,光是移除帳號並不夠,還必須額外清除對應的驗證權杖,這些權杖可能藏在 meta 標籤、HTML 檔案,或 DNS 紀錄裡,沒清乾淨,駭客有機會重新用同一組驗證資訊把自己加回來。這四步做完,大致就能框出受害的範圍與嚴重程度,決定接下來是走局部清除,還是乾脆整批重建。但外部工具終究只能看到表面症狀,真正的惡意程式碼躲在哪裡,還是得深入檔案與資料庫才找得到。
深入檔案與資料庫,才找得到真正的注入點
MalCare 的技術文件點出線上掃描器的一個根本侷限,線上掃描器只能存取網站的前台:文章、頁面或留言這類資料庫內容,以及 uploads 資料夾裡的檔案;核心 WordPress 檔案與其他關鍵部分基於安全性理由無法從外部存取,線上掃描器自然也掃不到那些地方。換句話說,只做線上掃描,頂多是第一層診斷,不足以判定網站真的乾淨了,尤其是這種靠 cloaking 藏起來的攻擊,惡意程式碼多半就藏在掃描器碰不到的位置。
比對官方乾淨版本,揪出被動過手腳的程式碼
做法是從 WordPress.org 下載跟網站當下同一個版本的乾淨安裝檔,用檔案比對工具逐一比對根目錄、wp-admin、wp-includes 這幾個資料夾裡的每一個檔案,找出兩種東西:官方版本裡沒有的多餘檔案,以及內容被改過的既有檔案。MalCare 技術文件列出幾個應該優先核對的核心檔案:index.php、wp-config.php、wp-settings.php、wp-load.php、.htaccess,這幾個檔案經常被駭客拿來夾帶惡意的 include 指令。文件也提醒一個很好用的判斷法則,uploads 資料夾裡理論上不該出現任何 PHP 檔案,只要看到就可以直接視為可疑,清除不用猶豫。
除了逐檔比對,MalCare 與 Google 的官方文件都各自列出後門程式碼常見的可疑函式,包括 eval、base64_decode、gzinflate、preg_replace、str_rot13。要注意的是,這些函式本身在正常外掛裡也可能出現,不是看到就一定有問題,但如果它們出現在原本不該有程式邏輯的地方,例如一張圖片檔案、一個靜態頁面模板,就是高度可疑的訊號。Google 官方文件也建議在網站原始碼裡搜尋 search、eval、base64_decode、unescape 這幾個字詞,並舉了一個典型的偽裝範例,說明駭客怎麼用編碼過的寫法包裝轉址指令,躲避單純比對原始碼的掃描方式:
eval(base64_decode("d2luZG93LmxvY2F0aW9uPScvL2dvb2dsZS5jb20nOw=="))Code language: PHP (php)
這一整串看起來像亂碼,實際上是用 base64 編碼包起來的一段轉址程式碼,唯有解碼之後才看得出它實際做了什麼,這正是駭客刻意這樣寫的原因。
資料庫裡的垃圾內容,最常藏在這幾張資料表
檔案清乾淨之後,垃圾內容很可能還留在資料庫裡,尤其這類攻擊經常直接寫入大量偽裝成正常文章的垃圾頁面。與其把整份資料庫從頭看到尾,不如帶著明確的關鍵字去幾張特定資料表裡搜尋,效率會高得多。Rank Math 官方知識庫列出幾個具體目標:先看 wp_posts 資料表,找出標題明顯是垃圾內容或不相關關鍵字的文章、頁面,直接刪除;再看 wp_options 資料表,留意名稱類似 base64_code 或帶有編碼過數值的可疑選項;wp_postmeta 與 wp_commentmeta 裡的中繼資料也要一併檢查,留意類似 _seo_meta 或轉址連結的異常條目;另外別忘了 wp_users 資料表,刪除任何不認識的管理員帳號,阻斷駭客回頭再次登入的路徑。
技術業者 MoeSec 針對博彩類的垃圾內容,給出更直接的搜尋建議:在 wp_posts、wp_options、wp_postmeta 這幾張表裡,直接用 casino、gambling、slots、blackjack、roulette 這類博彩相關字詞搜尋,是找出這類垃圾內容最快的方式,找到之後就能對應清理或刪除。三張表輪流搜一遍這幾組關鍵字,通常就能把絕大多數藏在資料庫裡的垃圾內容揪出來。檔案跟資料庫都清出可疑的東西之後,接下來是真正動手移除,但這一步最容易犯的錯誤,是只清看得到的垃圾,卻漏掉讓駭客重新進來的後門。
移除惡意程式,也要拔掉重新入侵的後門
清除前有一件事不能省,先做一次完整備份,檔案跟資料庫都要備份,就算已經確定要整批重建,也該留一份現況存檔,方便日後追查問題是怎麼發生的。MalCare 技術文件提供的清理流程,第一步就是完整備份 WordPress 核心、外掛、佈景主題與資料庫,接著重新下載 WordPress 核心,以及當初安裝的外掛、佈景主題版本,當作比對的乾淨基準。
實際替換的部分可以分兩種情況處理。wp-admin 與 wp-includes 這兩個資料夾的內容,通常不會被客製化修改過,可以直接整批換成官方乾淨版本,不需要逐檔案比對,速度快也不容易漏掉什麼;wp-content 裡的外掛與佈景主題,如果本身沒有被客製化過,一樣建議整包替換,比逐行清理更保險,因為手動清理最容易發生的兩種失敗,一是清不乾淨導致很快復發,二是誤刪正常程式碼導致網站直接故障。資料庫的部分,wp_users 資料表裡不認識的管理員帳號要一併刪除,這本身就是一種後門,留著等於幫駭客留一條回頭路。
如果檔案已經被改到分辨不出哪裡是正常的,或者這個問題已經拖了很久才被發現,這時候比較保險的做法,是直接用中毒之前的乾淨備份整批還原重建,而不是逐一手動清理。MalCare 技術文件對此講得很坦白,理論上任何惡意程式都能靠手動清除,但實務上並不建議,因為漏清跟誤刪的風險都不小。另外一個容易被忽略的地方是,如果同一台主機上還架著其他 WordPress 網站或子網域,就要對它們重複整套清理流程,因為惡意程式很可能已經在同一台主機的多個網站之間互相感染,只清一個網站,另一個很快又會把它感染回去。
網站本身清乾淨之後,還沒真的結束,Google 索引裡的垃圾頁面不會自動消失,甚至有可能因為駭客留下的某個機關,在清完之後還持續被重新收錄。
清乾淨後,還要讓 Google 真的把垃圾頁面撤掉
清完檔案跟資料庫,確認網站前台已經正常,離真正結束還有幾步收尾動作。前面移除 GSC 裡不明使用者的時候,要一併刪除對應的驗證權杖,這一步前面已經提過,這裡是它真正要被落實的時候。接著要重新提交一份乾淨的 sitemap,並用網址檢查工具,要求 Google 針對被感染過的網址重新檢索;最後在安全性問題報告裡提出重新審查要求,誠實交代修正了哪些問題。Google 官方文件對重新審查的說明是,確認網站上的問題已經修正後,才在報告裡提出要求,過程可能需要幾天到幾週,而且在處理中的要求得出最後判定之前不要重複提交,重複提交反而可能拉長等待期,甚至被標示為屢次違規的網站。
有一個復發陷阱特別值得提醒。Sucuri 官方部落格 2025 年的一篇案例報告記錄了一個真實情況,某個網站已經清除了看得到的垃圾內容,前台也確認正常,但 GSC 裡的垃圾網址數量卻還在持續增加。調查後發現,問題出在網站根目錄裡一個叫 spamurl.txt 的檔案,駭客把它設定成 GSC 裡登記的 sitemap,Google 因此照著這份假 sitemap 持續爬蟲收錄,累積收錄超過 3,000 個格式為「網域/?m=數字」的垃圾網址。即使這些網址實際點開已經回傳 404,只要 sitemap 還在持續參照它們,Google 仍然會反覆嘗試重新收錄。這個案例的處理方式是找到並刪除那個惡意 sitemap 檔案,再從 GSC 的 sitemap 設定裡一併移除,最後用網址檢查工具提交重新收錄要求。Sucuri 給的結論很直接,只移除惡意檔案還不夠,連 GSC 的設定也要一併更新,並主動要求重新檢索,才能真正把已經被索引的垃圾結果清掉。
檔案、資料庫、GSC 設定都清乾淨之後,最後要回頭補的是一開始那四個入口,不補起來,同樣的事很快會再發生一次。
補起四個入口,才是防止重蹈覆轍的關鍵
密碼外洩這個入口,因應做法很直接,後台帳號一律用高強度密碼,混合大小寫、數字與符號,並且開啟兩步驟驗證,這是成本最低、效果卻最直接的一步。舊版漏洞這個入口,重點是讓 WordPress 核心、外掛與佈景主題持續保持在最新版本,平常沒在用的外掛乾脆整個卸載,而不是停用就好,停用的外掛程式碼依然留在伺服器上,一樣可能被掃到漏洞。至於破解版軟體這個入口,外掛與佈景主題只從 WordPress.org 官方目錄,或有信譽的公司取得,破解版省下的授權費,換來的風險遠遠划不來。管理裝置或第三方服務被入侵這個入口則牽涉到人的層面,管理者自己的電腦要有防毒防護,任何能遠端操作網站的雲端帳號,也要用高強度密碼與兩步驟驗證保護,不能因為它只是輔助管理工具就放鬆標準。
除了對應這四個入口,還有幾個檔案與資料庫層級的強化設定,能在萬一真的又被打進來時,把傷害範圍壓到最小。WordPress.org 官方文件建議在 wp-config.php 加入一行設定:
define('DISALLOW_FILE_EDIT', true);Code language: PHP (php)
這行設定會停用後台的佈景主題與外掛程式碼編輯器。這個編輯器往往是攻擊者拿到管理員權限後,第一個會拿來直接執行程式碼的工具,停用它雖然無法阻止駭客上傳惡意檔案,但能擋掉一部分攻擊手法。檔案權限方面,文件建議資料夾設為 755、檔案設為 644,可以用指令批次設定:
find /path/to/wordpress/ -type d -exec chmod 755 {} \;
find /path/to/wordpress/ -type f -exec chmod 644 {} \;Code language: Bash (bash)
資料庫帳號的部分,正常運作其實只需要 SELECT、INSERT、UPDATE、DELETE 這幾個權限,建議撤銷 DROP、ALTER、GRANT 這類結構管理權限,降低萬一帳密外洩時的損害範圍。連線方式建議用 SFTP 取代一般 FTP,避免密碼在傳輸過程中被明碼攔截。文件也建議加裝 WAF(網站應用程式防火牆),可以是 Cloudflare、Sucuri、Incapsula 這類反向代理式服務,或 ModSecurity 這類伺服器端的開源 WAF,也能搭配 WordPress 層級的防火牆外掛使用。最後一項容易被忽略但很重要,定期查看伺服器的 access log 與 error log,這是抓出跨站攻擊、遠端或本機檔案納入攻擊、目錄穿越,以及暴力破解嘗試最直接的方式,很多入侵其實在真正得手之前,log 裡早就留下了異常的痕跡。
四個入口補起來,再加上檔案權限與資料庫帳號這幾層強化,不代表網站從此不會再被鎖定,但能大幅拉高駭客想借用你的搜尋信任的成本。這整套排查與清除的過程說起來瑣碎,核心邏輯卻很單純,駭客要的從來不是網站的內容,而是網站辛苦累積下來、Google 願意信任的那份地位;把入口一個一個補起來,這份信任才留得住。
