9 個提升 WordPress 網站安全性的方法



本文參考資料為 How to Improve the Security of your WordPress Blog, 已取得原作者 Amit Agarwal 授權。

大約一個月前,這個部落格被黑客入侵(編按:Amit Agarwal 的網站)。而其他托管於相同主機商的網站像是 ctrlq.org 和 hundredzeros.com 也深受其害,黑客成功從網路上拿下了這些網站。

托管網站的主機商表示這可能發生於某些使用舊版的 WordPress 網站,導致密碼不幸洩漏,這段時間雖然歷經一些艱難,但幸運的是被刪除的網站已經回復,且流量也回到正常。

9 個提升 WordPress 網站安全性的方法9 個提升 WordPress 網站安全性的方法

以下是我所做的變更,用來提高我的 WordPress 網站安全性,縱使這樣的意外可能再次發生。

#1 使用你的 Email 作為登入帳號

當你安裝完一個 WordPress 網站時,預設的第一位用戶為 “admin”。你應該建立不同的使用者名稱來管理你的 WordPress 網站,並將預設使用者 “admin” 刪除,或是將它的權限從「系統管理員」降級為「讀者」。

你也可以建立一個完全亂數(難以被猜中)的使用者名稱,然後使用你的 Email 來登入 WordPress。外掛 WP-Email Login 可以加入此支援,使用你的 Email 取代帳號登入。

#2 不要向全世界展示你的 WordPress 版本

WordPress 網站會在原始碼顯示版本號,讓其他人能夠知道你正在執行舊的 WordPress。

要從網頁裡移除 WordPress 版本是很簡單的一件事,但你需要做一些額外的補強,從你的 WordPress 目錄將 readme.html 檔案刪除,因為它也會把你所使用的 WordPress 版本展示給全世界。

#3 別讓其他人擁有”寫入”你 WordPress 目錄的權限

登入你的 WordPress 網站 Linux 系統列,執行以下指令來取得所有「公開」、其他用戶皆能寫入的目錄清單。

find . -type d -perm -o=w

你也許可以執行以下兩行指令,來將你 WordPress 內的檔案和目錄設定為正確的權限(參考資料)。

find /your/wordpress/folder/ -type d -exec chmod 755 {} \;
find /your/wordpress/folder/ -type f -exec chmod 644 {} \;

對目錄來說,755(rwxr-xr-x) 意味著只有擁有者具備寫入權限,其他人只有讀取和執行的權限。對檔案來說,644 (rw-r–r–) 意味著只有檔案擁有者具備讀取和寫入權限,其他人為唯讀。

#4 重新命名你的 WordPress 資料表前綴

如果你使用預設選項來安裝 WordPress 的話,你的 WordPress 資料表應該會像是 wp_posts 或 wp_users。將資料表的前綴(wp_)更改為其他隨機值是比較好的作法,外掛 Change DB Prefix 可以讓你在彈指之間重新命名你的資料表前綴。

#5 防止使用者瀏覽你的 WordPress 目錄結構

這很重要。開啟你 WordPress 根目錄底下的 .htaccess 檔案,然後在最上方加入這行。

Options -Indexes

這能夠防止其他人在能建立檔案清單時看到你資料夾內的所有檔案。例如目錄下缺少預設的 index.php 或 index.html 時。

#6 更新 WordPress 安全密鑰

開啟此網頁來為你的 WordPress 網站產生八組安全密鑰。開啟 WordPress 目錄下的 wp-config.php 檔案,將預設的密鑰以產生的密鑰取而代之。

這些隨機的字串能使你儲存於 WordPress 的密碼更加安全,另一個好處是,當有人在你不知情的情況下登入 WordPress,他們將會被立即登出,使他們的 cookies 失效。

#7 保留 WordPress PHP 和資料庫錯誤記錄

從錯誤記錄有時候可以發現針對你 WordPress 所發出的無效資料庫查詢或檔案查詢。我更喜歡外掛 Error Log Monitor,因為它能定期透過 Email 發送錯誤日誌到你的信箱,也能顯示於你的 WordPress 控制台。

要在 WordPress 啟用錯誤日誌功能,將以下程式碼加入你的 wp-config.php 檔案,記得要把 /path/to/error.log 替換為你的日誌文件實際路徑。error.log 應該放在無法直接從瀏覽器存取得到的目錄。(參考資料)

define('WP_DEBUG', true);
if (WP_DEBUG) {
 define('WP_DEBUG_DISPLAY', false);
 @ini_set('log_errors', 'On');
 @ini_set('display_errors', 'Off');
 @ini_set('error_log', '/path/to/error.log');
}

#8 以密碼保護 Admin 控制台

使用密碼來保護 wp-admin 目錄是一個不錯的方法,因為瀏覽你的公開 WordPress 網站並不需要用到這目錄下的任何檔案。一旦設定完成,即使是授權的用戶也需要輸入兩道密碼才能登入他們的 WordPress 控制台。

#9 追蹤你的 WordPress 伺服器登入動態

你可以在 Linux 下使用 “last -i” 指令來列出所有登入你 WordPress 伺服器的使用者,包括他們的 IP 位址。如果你發現清單內有未知的 IP 來源,那肯定要修改密碼了。

此外,下面的指令將顯示較長時間區間的登入動態,並使用 IP 位址分組(將 USERNAME 改為你的使用者名稱)。

last -if /var/log/wtmp.1 | grep USERNAME | awk '{print $3}' | sort | uniq -c

使用外掛來監控你的 WordPress 網站

WordPress.org 外掛庫包含不少好用的安全相關外掛,可以持續監控你的 WordPress 網站是否有被入侵,或是其他可疑活動。這些是我會建議使用,也較為基本的安全外掛。

  1. Exploit Scanner – 它會迅速掃描你的所有 WordPress 檔案和文章,並列出潛藏惡意程式碼的。例如垃圾鏈結可能會使用 CSS 或 IFRAME 方式隱藏在你的 WordPress 網誌文章裡,而這個外掛可以將它們找出來。
  2. WordFence Security – 這是一個非常強大、且應該使用的安全外掛。它會比對你 WordPress 的核心檔案和原始檔案間是否已被修改。而且,該外掛會鎖定嘗試登入你的網站卻失敗的使用者。
  3. WordPress Sentinel – 另一個實用的外掛,可以監控你的 WordPress 檔案,當有任何檔案被加入、刪除或修改時會發出警告。
  4. WP Notifier – 如果你不常登入你的 WordPress 控制台,那這外掛適合你。它會在你安裝的佈景主題、外掛和 WordPress 核心有新的更新時以 Email 通知你。
  5. VIP Scanner – “官方”安全外掛將掃描你的 WordPress 佈景主題有無任何問題,它也能檢測出有無任何的廣告程式碼被注入你的 WordPress 佈景主題裡。

小技巧:你也可以使用以下 Linux 指令來列出近三天被修改的檔案清單。將 mtime 改為 mmin 可以看到 “n” 分鐘前被修改的檔案清單。

find . -type f -mtime -3 | grep -v "/Maildir/" | grep -v "/logs/"

提高 WordPress 登入頁面安全性

你的 WordPress 登入頁面是每個人都可以存取的,但如果你想防止未授權的使用者登入 WordPress,你有以下三種選擇。

  1. 使用 .htaccess 加入密碼保護 – 在 WordPress 認證以外加入另一道帳號密碼來保護你的 wp-admin 目錄。
  2. Google Authenticator – 這出色的外掛能為你的 WordPress 加入兩步驟驗證功能。除了輸入正確的密碼外,還必須搭配手機應用程式來輸入隨機產生的驗證碼。
  3. Login Dongle – 這個外掛使用一個非常獨特的方法來保護你的 WordPress。它能產生一個書籤列(加上秘密問題),你可以將它加入瀏覽器。當你要登入 WordPress 時,輸入你的密碼並按下書籤列才能登入 WordPress – 登入頁面的按鈕將無法使用。

深入閱讀:

  • 安裝 WordPress 後你應該做的 25 件事

Ten articles before and after

安裝 WordPress 後你應該做的 25 件事

Glacier 為你的 Mac 更換新圖示教學,更優雅細緻的免費 Icon 包(程式、資料夾)

Valley Folders 一套重新設計的免費資料夾圖示包,讓你的 Mac 看起來很不一樣

Muir 重新設計符合 Yosemite 風格 Mac 圖示包,Adobe 全系列圖示替換

在 Google 雲端硬碟設定分享權限,禁止檢視者下載、列印或複製檔案

8 個免費增加 Dropbox 容量教學總整理

找尋失竊的 Android 手機,Google 搜尋「Find My Phone」即時定位顯示位置

以 Google Chrome 瀏覽器移除 PDF 密碼保護設定

快速下載 YouTube 影片字幕、轉檔 SRT 字幕檔教學

在 Yelp 台灣版免費登錄商店資料,收集顧客評語、提高品牌曝光率!