喺呢篇文章,我哋會討論最常見嘅 WordPress 入侵類型、點樣識別佢哋,以及唔同嘅修復方法。如果你遇到呢啲問題,我哋強烈建議你聯絡專業網站開發人員以獲得進一步協助。如需更多提升主機帳戶安全性嘅指引,請參閱呢份指南。
重要提示: 喺作出任何更改之前,請為你嘅網站建立完整備份。
請注意: 為減低未來 WordPress 被入侵嘅風險,請定期 掃描你嘅主機帳戶,用防毒工具移除任何惡意或可疑檔案,並保持你網站所有插件同主題都更新到最新版本。
雖然有唔同問題都可能導致預設檔案遺失或被更改,但最常見嘅原因係惡意程式注入咗你嘅 WordPress 安裝。幸好,我哋 Web 同 Hosting 伺服器上嘅防毒工具可以自動偵測同隔離受感染檔案。
如果你嘅 WordPress 核心檔案受感染,你可能會遇到以下症狀:
空白頁面;
500 內部伺服器錯誤;
出現 「此網站遇到技術問題」 錯誤(WordPress 5.2.2 起新增);
或其他類似錯誤。
要解決呢個問題,只需跟住以下步驟操作。
要識別你網站出現問題嘅原因,請檢視 error_log 檔案。呢個檔案會記錄你網站遇到嘅任何嚴重錯誤。
你可以喺 cPanel 帳戶 >「檔案管理員」選單 > WordPress 安裝根目錄搵到佢。
進入網域根目錄後,請搵 error_log 檔案。如果有,請跟住以下步驟:
右擊檔案,然後選擇 檢視:

喺日誌內,你可能會見到類似:「No such file or directory in…」嘅錯誤,後面會有遺失檔案嘅路徑。呢個表示有需要嘅檔案唔見咗,令網站無法正常運作。
例如:/home/cPuser/public_html/wp-settings.php

要還原遺失檔案,請向下捲動到本指南嘅「如何取代遺失檔案」部分。
如果你網站根目錄冇 error_log 檔案,你可以喺 cPanel 帳戶啟用 display_errors PHP 選項。呢個設定會令錯誤訊息直接顯示喺你網站上,更容易識別問題。
重要提示: 為安全起見,完成故障排除後,請務必停用 display_errors。
你可以用以下方法啟用 PHP 選項:
經 php.ini
除咗 cPanel 嘅「PHP Tweaks」選單,你亦可以直接喺 php.ini 檔案調整網站某啲設定,只需加/改相應行即可。
要啟用 display_errors 選項,你需要加以下一行到檔案:display_errors=1
你可以喺網站根目錄建立新嘅 php.ini 檔案並加上該行,或根據以下步驟修改系統產生嘅檔案。
登入你嘅 cPanel 帳戶,進入「檔案管理員」選單。
請確保設定中已啟用「顯示隱藏檔案(dotfiles)」選項:

前往以下目錄: /home/cPanel_user/.system-php/ini

選擇分配畀你網域嘅 PHP 版本,然後選擇網域目錄。例如,完整路徑可能係:
/home/cPanel_user/.system-php/ini/7.0/testwebsite.com
右擊 php.ini 檔案並選擇 編輯。
將以下一行加到檔案:display_errors=1
經 .htaccess
要經 .htaccess 檔案啟用 display_errors PHP 選項,你需要編輯網站根目錄內嘅檔案,並加以下一行:php_value display_errors 1
有關搵 .htaccess 檔案嘅詳細步驟,請參閱呢篇文章。
完成更改後,請點擊 儲存。
WordPress 採用簡單有序嘅檔案結構,令還原遺失或損壞檔案相對容易。強烈建議取代預設核心檔案,確保所有被惡意程式入侵嘅檔案都能完全還原。不過,請小心操作:如果唔正確更換某啲檔案或資料夾,可能會導致資料遺失。
請跟住以下步驟取代遺失嘅 WordPress 檔案:
登入你嘅 cPanel,進入 Softaculous Apps Installer。
喺臨時子目錄建立新嘅 WordPress 安裝。方法係點擊 WordPress 圖示,然後選擇 安裝:

你會被導向安裝設定頁面。喺嗰度,從下拉選單選擇相關網域名稱,並喺 In Directory 欄位輸入子資料夾名稱。
呢個例子中,我哋用「fix」子資料夾安裝 WordPress:

注意: 取代所有預設檔案會將你現有安裝更新至臨時「fix」安裝所用版本,混合唔同版本檔案可能導致系統衝突及網站功能異常。
如果你需要維持現有 WordPress 版本,或只打算取代特定檔案,請檢查你網站內 /wp-includes/version.php 檔案嘅版本,並確保新安裝用相同 WordPress 版本:

你可以直接喺安裝視窗選擇新安裝嘅 WordPress 版本:

所有設定完成後,請點擊 快速安裝 或捲到安裝頁底部點擊 安裝。
新嘅 WordPress 安裝完成後,檔案會出現喺「檔案管理員」 > 你網域根目錄。雙擊開啟資料夾:

要取代特定遺失檔案(例如 wp-settings.php),請喺新安裝目錄內搵返該檔案。
之後,將檔案移到你網站現有根目錄:右擊檔案 > 點擊 移動 > 輸入你網站根目錄路徑 > 點擊 移動檔案:

完成後,遺失檔案已還原,你網站應該可以正常載入。
喺取代網站所有預設 WordPress 檔案過程中,第 1-6 步同「如何取代遺失嘅 WordPress 檔案」部分一樣。
完成以上步驟並建立新嘅 WordPress 安裝後,如要取代網站根目錄所有預設檔案,請跟住以下步驟:
打開新嘅 WordPress 安裝根目錄:

喺新安裝資料夾內,刪除以下檔案及資料夾:

.htaccess
wp-config.php
wp-content
呢啲檔案及資料夾包含你網站設定同內容,必須保持不變。
然後,將其餘檔案移到你主網站根目錄。可用 全選 按鈕 > 點擊 移動 > 輸入你網站根目錄路徑 > 點擊 移動檔案:

你嘅 WordPress 核心檔案已完全取代。請瀏覽你網站確認一切正常載入。
如果網站仍然顯示錯誤,請再次檢查 error_log。大多數情況下,其他問題係因為主題或插件檔案遺失。
主題或插件檔案遺失有多種原因,但最常見係惡意程式感染並移除咗你 WordPress 安裝嘅重要組件。
如果你嘅 WordPress 插件或主題檔案有遺失,你可能會遇到:
空白頁面;
500 內部伺服器錯誤;
出現 「此網站遇到技術問題」 錯誤(WordPress 5.2.2 起新增);
頁面只載入一部分或版面「損壞」。
如需協助診斷問題,請參閱本文以下部分: 檢查你網站嘅 error_log 檔案 及 啟用 display_errors PHP 選項。
你可能會喺 error_log 或網站上見到類似以下嘅錯誤訊息:
PHP Fatal error: Uncaught Error: Call to undefined function sample_function() in /home/cPaneluser/...
以下係因插件檔案損壞或遺失而引致錯誤嘅例子:

要還原遺失檔案,只需重新安裝受影響主題或插件。
注意: 主題內 functions.php 檔案遺失通常同 wp-vcd.php 惡意程式有關,通常位於 /wp-includes 目錄。安裝新主題前,請先移除 wp-vcd.php(如有),或者如要確保完全安全,請按前述方法取代所有預設 WordPress 檔案。
有時你網站感染惡意程式後,可能會將訪客重新導向到有害或可疑頁面。呢個問題最常見原因係插件或主題唔安全,令攻擊者可以更改資料庫 URL 或修改你網站檔案。
注意: 千祈唔好點擊任何被重新導向嘅連結,否則你自己電腦都有機會中毒:

要修復惡意重新導向,請跟住以下步驟:
搵你網站嘅資料庫設定檔案-wp-config.php ,喺 cPanel > 檔案管理員 > 網站根目錄。打開檔案,搵返網站資料庫名稱:

然後,喺 cPanel 嘅 phpMyAdmin 選單打開分配畀你網站嘅資料庫,進入 wp_options 資料表(「wp_」係預設前綴,你嘅可能唔同):

檢查 siteurl 同 home 欄位嘅值,如發現有惡意或可疑網址,請改返你實際網域名稱:

請掃描你資料庫其他地方有冇類似惡意網址,並相應更換。
暫時用乾淨預設版本取代現有 .htaccess。最好將現有檔案重新命名(例如 .htaccess_old),然後重新建立新檔案。
要重新命名檔案,請雙擊 > 選擇 重新命名 > 輸入新檔名 > 按 重新命名檔案。
之後,建立新檔案,點擊 + 新檔案 > 命名為 .htaccess > 選擇 建立新檔案。
新嘅 .htaccess 建立後,右擊編輯 > 選擇 編輯 。打開編輯視窗後,將以下 WordPress 預設規則貼入檔案:# BEGIN WordPressRewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]# END WordPress
點擊 儲存更改。
如果你網站仍然被重新導向,請嘗試取代所有預設 WordPress 核心檔案。
你亦可以暫時喺 WordPress 控制台或資料庫停用所有插件,然後逐個啟用。每啟用一個插件後檢查網站,以找出導致惡意重新導向問題嘅插件。