問題描述
我負責大量共享託管服務器的安全性。他們大多數都在使用 WordPress 網站。每個服務器至少有 500 個 WordPress 網站。
在我看來,WordPress 的問題開始於弱密碼。大多數的網站管理員密碼很弱,使用弱密碼網站被利用並用於各種惡意活動。
現在我的計劃是找出 WordPress 網站的弱密碼,並強制將管理員密碼更改為其他強大的密碼。所以 WordPress 可以保護,我的服務器不會有麻煩。
知道存儲的 WordPress 密碼的強度是什麼?
最佳解決方案
Bruteforce 哈希
您可以強制存儲在數據庫中的哈希值。
WordPress 使用 phpass 進行散列。默認情況下,WordPress 不使用 blowfish 或類似的,但只是 md5 的迭代計數為 8192. 如果你只想找到真正不好的密碼,強制是肯定可行的。
但我認為這是一個相當大的違反用户對您的信任,所以我不會推薦這種方法。
登錄時分析其密碼
您可以添加一個腳本來截取對 WordPress 登錄腳本的所有請求,並記錄或分析密碼,因為它們是純文本的。
當然,一旦用户實際登錄,這隻會獲得較弱的密碼。如果他們已經放棄了自己的網站或者非常活躍,可能需要一段時間才能發現他們使用了弱密碼。
我認為這是一個比強制哈希更大的違規行為,它也帶來了一些安全問題 (如果你以明文方式存儲密碼,這顯然是一個問題,但即使不是這樣,你可能會不小心將一些信息存儲在可能有助於攻擊者的分析) 。
實施密碼策略 (強制用户更改密碼)
您可以實施密碼策略。當用户提交新的密碼時,您會檢查是否符合您的策略 (理想情況下,這將發生在 server-side,而不是 client-side 通過 JavaScript) 。
編寫良好的密碼政策很困難,所以請看現有的政策來幫助你。
當然,老密碼也不受策略的影響,所以您需要強制用户更改舊密碼以符合該策略
限制傷害
執行強密碼當然可以是一個好主意,但理想情況下,被黑客攻擊的 WordPress 實例不應該真正影響您作為網站管理員。
一旦攻擊者獲得了 WordPress 安裝的訪問權限,您應該想限制這些損害。理想情況下,您只希望只有一個實例受到影響,而不是整個服務器 (因此您可能會擔心攻擊者將不雅內容放在網站上 – 就像有效的用户可能會這樣做 – 但不是關於代碼執行或其他惡意活動) 。
這是一個相當廣泛的話題,但有一些要點包括:DISALLOW_FILE_EDIT,限制了插件的使用 (因為它們遠遠不如 WordPress 本身安全地編碼),不允許使用 JavaScript(例如,使用多種功能,只有 super-admins 有權發佈 JavaScript,而不是管理員) 等
次佳解決方案
我不知道這是甚麼可能的。當您選擇密碼時,它會在數據庫中存儲散列。來到哈希算法時沒有反向的工作。
根據我的經驗,密碼強度的腳本位於 www.example.com/wp-admin/js/password-strength-meter.js 中,this 是指向它的鏈接。
您可以在此處更改密碼的級別和百分比,因此您可以將強制密碼設置為 100/100 。
而且,如果您希望客户端檢查密碼強度,可以使用 application 來提供密碼。
這裏不可能做一些逆向工程,另外還有很少的插件強制用户獲得強密碼。
第三種解決方案
好消息是,您可以更改用户密碼,壞消息是您無法看到它們.Wordpress 是如此強大,即使在數據庫中,它使用單向加密存儲密碼,它不只是一個 md5 哈希,您可以轉換,它不是即使是序列化數據,對於密碼 test123,您將獲得類似 $P$BjW8o9Dm1vC5bwAcP1iAdNVm0lbvn 的內容,即使您更改數據庫中的密碼字段而不使用加密,也不會工作。
如何更改密碼
我相信你知道這一點,但我會把它留在這裏。您可以使用管理員權限輸入您的 wordpress 信息中心,去用户,找到一個用户,這部分是為了您的目的是壞的,因為您必須點擊生成新密碼,它會給你一些隨機的字母和符號湯,你可以用自己的編輯,即使這樣你也看不到密碼。
第四種方案
隨着密碼的散列,測試其安全性的唯一方法是強制強制他們。收集常用的弱密碼列表,並對數據庫中存儲的哈希進行測試。
除非您使用非常詳盡的密碼列表,否則這將不會捕獲所有弱密碼,但會濾除最弱的密碼。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。