引用 : 強化 WordPress,怎麼安全的管理網站 (下集)
WordPress 有那些管理、安全概念要知道的:
- 不要秀出 WordPress 是什麼版本:
從檢視網頁原始碼可看到 (meta name=”generator” content=”WordPress 3.5″),因為有心人士會針對此版本的弱點進行已知攻擊,隱藏了最起麻降低被攻破的機會、拉長被攻破的時間。 - WordPress 要保持最新:
會有新版本就是有東西被修正了 (漏洞等等),不過要注意新版本可能暫時會讓現在的外掛無法使用,或其它問題等,所以要升級前建議先建立一個測試環境 (同資料內容、同 WordPress 版本、同 OS、同 PHP、同 MySQL 等等)。正式升級前最好有作備份 (WordPress及資料庫),以預防有問題時還可以還原到最新原始的狀態。 - 使用 .htaccess 阻擋常見的攻擊,上網找一下都應該可以搜尋的到。
- 關閉可以從 WordPress 後台上編輯 PHP 等檔案:
通常是外掛或佈景主題,因為可能會被值入惡意程式,但前提是攻擊者能成功登入後台,我想是在多人編輯文章時,某人的帳密被猜到了吧,所以編輯權限也是要很小心控管。 - 限制 wp-config.php 檔權限:
它是 WordPress 很重要的檔案,內容包含資料庫帳號、密碼等等,所以會把它的權限讓 apache user (web user) 無法存取 (chmod 644、chown root.root 或在 .htaccess 加上 deny),還有 .htaccess 這個檔也是需要限制的。 - WordPress 有個 Authentication Unique Keys 功能:
它可以增加被截取到帳號資訊的困難度,及防字典、暴力破解攻擊。 - 換個管理者帳號:
你應該是用 admin 登入後台吧,它是預設的最高管理者,建議換個名字,管理用一組,PO 文章用另一組(權限低一點),及隨時改密碼 (英文+數字+特殊符號+長度大於14等等),如果用了太複雜的密碼,且記不得了,可以用 KeePass 這類的輔助工具。 - 資料庫的 Table 名稱的前置字元:
一般是 wp_,我們可以改變它,讓被攻擊時暫時猜不到。 - 安全掃描 :
如果擔心網站是否有問題,Sucuri SiteCheck 有一免費的,提供基本的掃描資訊 (有沒有被列入黑名單、惡意程式、掛馬等等)。
除了以上,我們也可以用 WordPress 的外掛,就比較簡單處理了,都有人寫好了怎麼可以不用一下呢:
- Limit Login Attempts
- 4 次以上嘗試失敗就鎖20分鐘,會在登入頁面顯示 “嘗試次數剩1次. “、 “嘗試過多次失敗登入 請在20分鐘後再重試。” 的訊息
- 它是鎖 ip,所以連正確的帳號密碼也不能成功登入,只能等限制時間過後才能再試著登入。
- 還可定義當被鎖 4 次以上時,會把封鎖的時間拉長到24小時(可自定)
- 會記錄 IP、登入名、被鎖幾次
- 可 Email 給管理者
- Login Security Solution
- 類似 Limit Login Attempts
- 120分鐘內會根據來源 IP、帳號、密碼作限制。
- 它每次失敗後,下一次再嘗試登入,會比上次較慢回應你是不是正確的,來讓攻擊者誤以為失敗了。
- 密碼強弱限制,會要求密碼一定要 10 個字元等等。
- 登入後限制 timeout 時間。
- Hide Login
- 假如今天帳號密碼被知道了,我們可以用另一方式防止,就是把後台的登入連結改變
- Hide Login 會幫我們產生自已自訂的連結 ( 產出 rewrite 設定寫入 .htaccess),讓人暫時猜不到正確連結。
- 但要小心使用,因為設定錯誤或不熟的時後,就可能連自已都被擋了。
- Better WP Security
- 它會給一些安全建議 (密碼太簡單、你的 WordPress 秀出版本了等等),可以照著它的說明修正。
- 啟用它後,會有一些指示要你作,它建議先備份,我會跳過它,因為我早會在這之前就已備份了。
- 也會要求可不可以讓它可以寫入 wp-config.php 或 .htaccess 設定,我是否決的,等熟悉它後再作修改即可。
- 也會問你要不要直接有一些基本的防護,我也是 no,還是等熟悉了再作修改。
- TAC (Theme Authenticity Checker)
- 我們可以用它來掃描佈景主題有沒有問題。
- 可疑的程式碼、經編譯過 (人看不懂的) 的程式碼等等。
- Sucuri Security
- 跟前面提到 Sucuri SiteCheck 同一家,它也有出 WordPress 的外掛。
- Wordfence Security
- 可以隱藏 WordPress 的版本、admin 登入錯誤訊息。
- 掃描留言有沒有惡意、釣魚連結。
- 檢查密碼強弱。
- 也有類似 Limit Login Attempts 與 Login Security Solution 嘗試登入並失敗的功能。
- 也有針對頁面可以被瀏覽幾次、被要求幾次、重複瀏覽沒有這頁面的幾次來作阻擋。
- WP-DBManager
- 除了常用的 phpMyAdmin,用這個也可以管理資料庫。
- 查看 MySQL 版本、Table 資料用量
- 備份資料庫。
- 最佳化資料庫。
- 修復資料庫。
- 查詢 SQL。
- WordPress Firewall
- 阻擋常見的攻擊 (directory traversals 等等)
- 如果誤擋,可以設白名單。
最後
說了那麼多,其實還是有很多安全性作法,這裡只能說到皮毛了,有興趣者可以自行發掘會比較有收獲。
但你千萬別有個想法,就是有沒有更簡單的方式啊,我只能說沒有 100 % 的、且一勞永逸的安全作法,只能盡力減少、降低風險,
或許只有把網路線拔掉就不受網路的迫害了 :)
這就是網路世界有趣的地方啊,你說是吧 !
參考來源 :
http://www.wordpressthemeshock.com/wordpress-security
http://codex.wordpress.org/Hardening_WordPress
留言