加強 WordPress 安全性 - 保護 WordPress 網站的完整指南
已發表: 2021-03-28當您完成這篇文章後,我會保證您的 WordPress 網站將免受黑客攻擊和攻擊。
等等,我不能保證。 這麼說吧,您將掌握必要的知識,以確保您的網站相對安全。
沒有萬無一失的安全性。 您可以採取一些具體措施來大大降低您的網站成為黑客或攻擊受害者的機會。
我之前寫了一篇關於 WordPress 網站如何受到攻擊以及為什麼應該投資於良好的安全實踐的小文章。 您可以在這裡閱讀它,或者在我們討論加強您的 WordPress 網站的具體措施之前,我會給您一個 WordPress 漏洞的小摘要。
WordPress 本身幾乎沒有漏洞,當它們被發現時,它們會通過更新迅速修補。 但是,當您考慮到您的網絡主機的安全措施或缺乏安全措施以及通常在 WordPress 網站上運行的第三方軟件時,您的網站更有可能因其他人的錯誤而成為黑客攻擊的受害者。
2021 年所有被黑網站中有 51% 受到它們運行的主題或插件的危害。 41% 被利用是因為他們選擇了錯誤的網絡主機,結果他們的網站被黑客入侵。
運行一個普通的 WordPress 網站並確保其安全並不太難。 但是,當您添加第三方軟件的混合物並且必須使用正確的主機維護您的域時,它變得有點困難。
我讀過很多成功的網絡企業家的博客文章,他們基本上是在網上開展業務的商人。 當他們的在線企業取得成功時,他們就成了目標。 儘管如此,您的網站不一定要成功,甚至不需要一定的流量才能成為目標。
黑客網站的人使用自動化工具,使他們能夠搜索成百上千的網站以查找漏洞。 您的網站可能是這數百個網站之一。 因此,即使您的網站不受歡迎,您仍然可能成為目標。
現在,許多網絡企業家都了解保持其網站和在線業務安全所需的必要安全標準和措施。 但是今天關於 WordPress 和網絡的偉大之處在於,您不再需要成為技術專家或網絡開發人員來創建網站。 創建一個網站一點也不難,非常容易,我什至在 Colorlib 上寫了一篇關於它的文章(對於那些在構建第一個 WordPress 網站時尋求幫助的人)。
創建一個網站並不太難,讓它受歡迎是一個稍微複雜的命題。 但是要確保它的安全,特別是對於那些主要關注非基於網絡的產品/服務的非技術嫻熟的網絡企業家來說,這是相當具有挑戰性的。
當然,他們可以聘請網絡開發人員來幫助他們。 但是,許多小型網絡企業之所以蓬勃發展,肯定與其保持低成本的能力直接相關。 僱用一個每小時收費 100 美元的網絡開發人員,並不會因為他們的財務能力而下降。
網絡安全專業人員始終是首選,但不幸的是,並非每個人都有必要的業務收入來支付這筆費用。 也許那沒問題,也許不是。 但關鍵的事實是我們必須認識到,即使是小型企業也會收集敏感的個人信息,包括您的居住地址、信用卡詳細信息、電話號碼和電子郵件 ID。
由於可能疏忽的安全實踐,不僅您的客戶信息面臨風險,而且您已經建立或將花費大量時間建立的業務也將面臨風險。 在線開展業務是一項相當艱鉅的工作,您的成功取決於多種因素,其中包括品牌聲譽和 Google 對您網站的看法。 相信我,如果您的網站關閉或成為攻擊/黑客攻擊的受害者,那麼沒有人會對您的業務或服務有好感。
鑑於所有這些以及所涉及的風險,作為網絡企業家的“您”可以採取哪些步驟來確保您的網站安全?
這篇文章主要面向主要職業不是經營在線業務的人。 它針對的是來自各行各業的創業者,他們部分或嚴重依賴在線業務。 由於超過 65% 的網絡由 WP 運行,而 WordPress 是精通技術的網絡企業家的首選 CMS,我將集中精力為您提供知識,以確保您的 WordPress 網站安全可靠.
#1. 選擇合適的主機服務提供商
由於網站服務器端產生的問題,存在很大一部分漏洞。 我發現這個事實相當令人驚訝,您的託管服務可能是您網站漏洞的最大來源。
使用第三方主機,您無法修補保護您的網站。
因此,您可以做的下一件最好的事情是選擇合適的網絡託管服務提供商。
有太多的網絡主機提供商在過時的軟件或當前未維護的軟件上運行他們的系統。 不再維護的軟件的問題是,雖然過去可能不存在漏洞,但無法保證未來的安全。 如果檢測到幾乎可以肯定的漏洞,則可能不再修補它,因為核心團隊沒有積極維護舊版本的軟件。
當我談到軟件時,我指的是在您的服務器上運行以保持您的站點活躍和正常運行的任何東西。
- 阿帕奇
- PHP
- MySQL
- 瑪麗亞數據庫
- PostgreSQL
- PHPMyAdmin
- SSL 證書
即使他們在發佈軟件補丁時稍有延遲地更新了他們的軟件。 黑客利用僅在最近的更新中修補的漏洞的機會窗口擴大並使您的網站面臨風險。
共享託管是大多數新開始的在線業務的託管選擇,但確實存在一些問題,
- 對服務器上任何一個 IP 的 DOS 攻擊都可能影響該特定服務器上託管的所有網站。
- 共享 IP 地址是一個大問題。 與您相鄰的 IP 地址會影響您的網站,如果共享 IP 被列入黑名單,您的網站將遭受後果。
- 共享服務器上加載的某些軟件總是有可能危及整個服務器,即使共享託管服務提供商確實採取措施防止這種情況發生。
我選擇共享主機,
- 共享主機 – SiteGround – 它們提供帳戶隔離,保護您免受同一服務器上可能易受攻擊的網站的侵害。 WP 核心和插件的自動更新、免費 SSL 證書和 Grow Big Plan 及更高版本的每日備份、通過過濾系統、防火牆、入侵防禦系統和實時監控防止垃圾郵件。 使用 CloudFlare 等 CDN 系統將保護您的網站免受 DDoS 攻擊。
SiteGround 在對過去暴露的漏洞做出快速而敏銳的響應方面有著良好的歷史。 2013 年,當從超過 90,000 個 IP 地址實施暴力攻擊時,SiteGround 甚至阻止了請求到達他們的服務器。
蠻力攻擊可能會使服務器負載不堪重負,但如果您無法向服務器發送足夠數量的請求,則無法影響它。 在攻擊期間,在不到 12 小時內對他們服務器上的網站進行了超過 1500 萬次嘗試,但他們的服務器都沒有遇到任何性能問題。
事實上,一些人在自己客戶的網站上進行暴力破解後,發現服務器上的許多網站都使用了弱密碼和不安全的密碼。 他們通過強制執行強密碼來跟進,並通過郵件通知他們的客戶。 他們似乎真的很關心他們的安全性,即使在受到攻擊的情況下也能確保其共享服務器環境的性能。 對於一些最大的共享網絡託管公司來說,情況並非如此。
如果您想要 SiteGround 共享託管的替代選項,我在上一篇文章中列出了很多。
但是,如果您不想擔心 WordPress 安全性以及幾乎任何其他有關創建、維護和發展網站的遠程技術,那麼使用託管的 WordPress 主機會更好。 我更喜歡託管託管,但成本要高得多。
一個月的託管託管價格也將為您購買為期 8 個月的共享託管。 如果您經營一家現金拮据的企業,這將對您企業的可持續性產生非常重大的影響。 但是如果他們負擔得起的話,任何人都會愚蠢地忽視託管 WordPress 主機的好處。
WPEngine 安全措施-
- 磁盤寫保護,任何創建可被利用的漏洞的惡意代碼都受到磁盤寫限制的嚴重限制。 使用帶有漏洞的插件和主題突然變得更安全,因為它們無法將代碼寫入您的服務器,從而使您的 WP 不再容易受到攻擊。
- 登錄到 WP dash 的用戶的磁盤寫入權限擴展到標準功能,例如編寫和編輯帖子、主題添加新樣式表以及激活/禁用插件。
- 要刪除和寫入新文件,您需要通過 SFTP 客戶端登錄。
- 不允許添加通用 PHP 代碼。
- 無法將具有已知漏洞的腳本添加到 WordPress。
- 某些插件可能會被禁止甚至禁用,如果它們的掃描儀在插件代碼中發現了一些使您的網站不那麼安全的東西。
- WPEngine 中的基本計劃仍然會涉及一些服務器共享。 在任何專用託管計劃中,主機都會提供一個完整的服務器,專門為您的網站提供資源。
- 通過 Amazon S3 備份,您無權訪問它們。 即使您嘗試過,您也無法破壞備份。 您網站的保險單始終到位。
- 對服務器的物理訪問僅限於必要人員。 他們的數據中心聽起來就像 Fort Knox 剛剛讀到的。
- 他們專注於 WP,了解創建安全 WordPress 網站的來龍去脈。
- 在帳戶被黑的情況下恢復很容易,並且可以免費保證。
- WP 安全解決方案提供商——Sucuri 的定期代碼審計。
以這種方式考慮 WPEngine,它會花費您一顆炸彈,但比被黑客入侵的網站花費的要少得多。 它使成本合理化變得更加容易。
請不要忽視這樣一個事實,即使用 WPEgnine 您的網站不僅會更安全,而且很可能會更快。 即使像 Colorlib 這樣使用虛擬專用服務器的網站也發現很難與 WPEngine 運行網站的速度相匹配。
如果您仍然有疑問並且無法在共享 Web 主機和託管 WP 主機之間進行選擇,那麼這本身就是一個巨大的話題。 請閱讀我不久前寫的一篇文章。 希望這將回答您有關網站託管計劃適用性的所有問題。
#2. 使用受信任的第三方軟件 - 高級主題和插件
插件和主題總是令人懷疑,要持懷疑態度,尤其是當它們維護不善且很少更新時。 現在,您可以通過基於安全漏洞來區分插件來採取多種措施,但始終需要通過 WP 安全審核日誌記錄您的插件所採取的操作。
安全日誌對 Web 開發非常有幫助,安全專業人員在處理客戶需求時會在多站點的基礎上跟踪更改。 每個用戶的每一個動作都可以用插件來解釋。 日誌還有助於密切關注插件、主題和其他第三方軟件行為。 此插件可能無法防止安全問題,但如果出現問題,您會發現很容易追踪問題的根源。
另一個好的做法是讓安全專家審核插件。 如果您負擔不起,請尋找 Sucuri(Sucuri 是 WordPress 用戶安全解決方案的領先供應商)對插件的信心印記。 許多插件/主題自願提交他們的產品進行代碼審計。
優雅的主題已經審核了他們的旗艦主題 Divi。 Elegant Themes 是 WP 細分市場中最大的主題屋之一,即使不是最大的主題屋,但他們的旗艦主題已針對安全問題進行了審核。
遠離沒有大量下載的免費插件和主題。 有時,下載次數和收視率極高的插件會吸引更多惡作劇者。 數字保護並不真正適用。 更多的人使用插件使其成為更大的目標,但同時擁有數千名用戶可能會通過快速更新幫助識別和防止零日漏洞。
使用高級插件和主題並不意味著可以保證您網站的安全。 但您可以肯定,如果發現任何零日漏洞,響應通常會很快。 主題屋和插件開發商對他們的產品有很大的依賴,他們最不想要的就是漏洞的出現。
堅持使用 WordPress.org 目錄中列出的免費插件。 更高的評級和下載次數在某種程度上使該插件成為更安全的賭注。 查看過去由同一作者創建的插件的歷史,這是程序員血統的一個很好的指標。 您還會看到某些作者特別注意確保他們的插件/主題的安全性。
最後更新日期是另一個值得考慮的因素。 確保插件的最新版本與 WordPress 的最新版本兼容是在安裝和激活插件之前勾選檢查清單上的另一個要點。
正如您可能已經猜到,插件也適用於主題。 在使用插件和主題時要記住一些事情。
- 高級插件在某種意義上更好,他們的團隊可能比免費插件更快地響應任何安全漏洞。
- 使用 WP 安全審計日誌並跟踪在您的網站引擎蓋下運行的所有內容。
- 數量肯定是安全的,因為安全威脅更有可能被報告和處理。 但我不禁覺得這是一把雙刃劍,插件/主題下載量大也更容易成為黑客的目標。
- 可以操縱 WP.org 的插件目錄,為下載量和評分較少的插件提供出色的評分。
- 查看插件的作者、他們的歷史和以前的產品。 如果他們過去遇到過安全問題,他們不一定表示他們的插件/主題很糟糕,但這不是一個好兆頭。
- 無情地歧視插件/主題,閱讀評論,尤其是那些在 Envato 等市場上為產品提供不良評級的評論(一定要調查這些產品評級不佳的原因),即使是高級插件也是如此。 從插件和主題的產品評論中閱讀評論部分。 在撰寫有關特定 WordPress 產品的評論或創建主題列表帖子時,我總是查看評論部分,了解已下載/購買該產品的用戶的投訴。 這個練習總是富有成效的,您幾乎總能學到一些關於您打算購買或下載的產品的信息。
- 如果插件/主題的代碼已由 Sucuri 或其他信譽良好的 WP 安全解決方案提供商審核,則增加了產品在安全性方面非常可靠的可能性。
- 您可以使用 Wordfence 或 iThemes Security 等安全插件來保護自己免受流氓插件的侵害。 此外,您可以使用 Sucuri 免費站點掃描功能,該功能可通過您的 WP 代碼查找惡意腳本。
上述步驟都不能保證您永遠不會下載壞插件或主題,但它確實減少了您受到安全問題影響的機會。
現在,假設您使用了正確的主機、主題和插件。 我將描述和解釋您需要採取的必要安全措施,以確保您的網站安全。
在描述個別安全措施時,請注意,我推薦為特定安全應用程序設計的獨立插件。
在這篇文章的後面,我將討論 Wordfence 一個成熟的免費增值安全插件以及 Sucuri 的安全解決方案。 您應該知道,兩者都完成了之前可能在帖子中討論過的幾乎所有安全功能,在某些情況下還可以完成更多功能。
因此,除非您想詳細了解各個安全措施,否則您可以跳到最後一部分,我將討論安全插件的功能和 Sucuri 等安全解決方案提供商。
但是,如果您是 WordPress 的第一次用戶,我強烈建議您通讀整篇文章,以充分了解每種不同安全措施的重要性。
#3. 保護您的登錄頁面
WordPress 登錄頁面是暴力攻擊的主要目標。 如果您沒有採取適當的安全措施來阻止攻擊者,您的登錄頁面絕對是您網站的一個易受攻擊的部分。
我將討論使用多種安全措施維護強大且安全的登錄頁面的重要性,這些措施使您的站點安全並防止暴力攻擊。
強密碼和不尋常的用戶名
Admin 不是一個好的用戶名。 WordPress 以前將 admin 作為主管理員帳戶的默認用戶名。 然而,今天,當您安裝 WordPress 時,您可以選擇不同的用戶名。 但是當人們開始使用 WordPress 時,尤其是第一次使用時,許多人仍然堅持使用 admin 作為用戶名。 “admin”是一個非常可預測的用戶名,它使您的網站更容易被入侵。
您還可以嘗試 Admin Renamer Extended 插件,它可以更改您的用戶名。
密碼,選擇不尋常的隨機字符串將有助於創建第一道防線,以防止那些有意損害您的網站或獲取存儲在您網站服務器上的敏感信息的人。
由 SpashData 編譯的 5 個最常見密碼的列表。
- 123456
- 密碼
- 12345
- 12345678
- 質量
一個積極進取的 13 歲孩子可以猜出 admin 和 123456。使用上述密碼,您的網站尤其會消失,如果您收到任何體面的流量。
最好的密碼是帶有標點符號和特殊字符的大寫和小寫的混合體。 最好使用沒有任何意義的東西,並確保它至少超過 10 個字符。 10 個字符沒有特別的原因,但請記住,如果密碼更長,破解它們的難度會成倍增加。
如果您的密碼沒有任何意義,並且您的密碼背後沒有邏輯原因或情感原因,那麼猜測顯然要困難得多。 請記住,Sherlock 是如何猜測 Irene Addler 的手機密碼的——“I AM _ _ _ _ LOCKED”。 好吧,即使是 Sherlock 也很難猜出一個無法推理的密碼!
如果您在確定要使用的密碼時遇到困難,請嘗試使用 Strong Password Generator 或 Secure Password Generator 等工具,它們都是免費提供的在線工具,可以為您的網站管理員登錄找出合適的密碼。
安全插件還為管理員和所有用戶強制使用強密碼。 這很重要,即使您的用戶沒有管理員身份和隨附權限,在 WordPress 上可以訪問受損編輯級別帳戶的人也可能會做很多惡作劇。
另一個永遠記住的好提示,經常更改您的密碼。 如果您很難記住所有密碼,請使用密碼管理器。 您可以嘗試使用 One Password、Last Pass、KeePass 或 DashLane 來安全地存儲所有密碼。
就用戶名和密碼而言,它們的意義越小,隨機性越大,它們為您的網站提供的安全性就越好。
限制登錄嘗試次數
暴力攻擊針對 WordPress 網站的登錄頁面。 如果您不知道,大多數蠻力攻擊都涉及嘗試不同的字母數字組合來破解特定用戶名的站點密碼。
現在,即使您假設暴力攻擊不成功,您也需要認識到它會消耗大量服務器內存和處理能力的事實。 這幾乎肯定會減慢您的網站速度並使其陷入困境。 許多主機還提供防止暴力攻擊的保護。 這是因為在共享服務器上,您的站點消耗過多資源可能會影響到每個人。
但是,抵禦蠻力攻擊的最簡單技術是限制登錄嘗試的次數。 如果有人不能用多個用戶名和密碼組合重複攻擊您的服務器,那麼暴力攻擊將不起作用。
登錄鎖定、登錄安全解決方案和暴力登錄保護都旨在防止通過暴力破解嘗試訪問您的網站。 Brute Protect 已被 Automattic 團隊收購,現在是 Jetpack 的一部分,它提供針對蠻力攻擊的保護。
幾乎所有的登錄保護插件都有類似的界面。
所有這些插件基本上都是通過跟踪反复嘗試登錄但無法登錄的 IP 地址來工作的。 在多次登錄嘗試失敗後,特定 IP 將無法訪問您網站的登錄頁面。
如果確定當前登錄的用戶相當可疑,登錄安全解決方案會強制通過電子郵件進行 WordPress 電子郵件身份驗證和密碼更改。
該插件可以強制執行強密碼並要求用戶頻繁更改密碼。 此外,黑客嘗試通過 IP 範圍進行跟踪,這些 IP 範圍反复嘗試非法獲取訪問權限,被鎖定更長時間以阻止他們嘗試闖入您的網站。
兩步登錄認證
除了強密碼、不尋常的用戶名和有限數量的失敗登錄嘗試之外,驗證登錄還增加了額外的安全層。
兩步登錄身份驗證過程使您的網站不僅僅是雙重安全。 登錄您的 WordPress 站點需要一個只能通過移動消息接收的身份驗證代碼。 鑑於此,您的手機不太可能在準備過程中被黑客竊取,您的網站將保持安全,以防止暴力破解和其他依賴於通過您網站登錄頁面的黑客技術。
Google Authenticator 是一個有用的插件,它依賴於安裝在您的 Android/iPhone/Blackberry 上的應用程序,該應用程序為您提供必要的身份驗證代碼以在您的網站上成功登錄。 您可以僅為管理員權限級別啟用此應用程序,也可以按用戶使用它。
我非常喜歡下一個插件,他們打算將嘗試在沒有身份驗證代碼的情況下登錄的人發送到具有可自定義 URL 的重定向。 隱形登錄頁面也完全阻止了機器人。
如果用戶未能遵守完整的登錄順序,則登錄嘗試將被拒絕。 另一種可用於阻止機器人的技術是在登錄頁面上使用驗證碼,您可以使用 Login No Captcha reCaptcha 來阻止機器人登錄。
更改您的 WordPress 登錄頁面 URL
我們已經討論了限制登錄嘗試、驗證登錄以及使用強密碼和不尋常用戶名的重要性。
現在我們要隱藏或更改登錄頁面,這種類型的安全模塊也稱為隱匿性安全。 我知道這似乎有點矯枉過正。 但請留在這裡,因為這一步並不比之前建議的保護登錄頁面的安全措施更困難。
蠻力攻擊只有在他們可以找到登錄頁面時才有效。 讓您的登錄頁面保持不變,黑客會找到您的登錄頁面。
讓我們嘗試對他們隱藏登錄頁面。 您可以通過使用 WPS 隱藏登錄更改登錄頁面的 URL 來實現此目的。 該插件並沒有真正改變任何東西,它只是攔截頁面請求並使 wp-admin 目錄和 wp-login.php 頁面無法訪問。 您需要記住在激活插件期間設置的新登錄頁面。
更改登錄頁面 URL 的替代選項包括另外兩個插件,Protect Your Admin 和 Rename wp-login.php。
安全證書
雖然,我在保護您的登錄頁面時提到了 SSL,但 SSL 是您處理敏感信息的任何頁面的極其重要和必要的功能。 這幾乎包括許多網站上的每個頁面,好像所有網頁上都有博客訂閱表格。
如果您或您的訪客/客戶曾與您分享敏感的私人信息,如地址、信用卡詳細信息,甚至與您分享他們的電子郵件 ID。 那麼你應該保護他們的信息。
SSL 是一個額外的保護層(安全套接字層),它將 http 轉換為 https,並在此過程中使所有共享的信息更加安全。
這就是我處理的編輯帖子頁面的方式,因為 Colorlib 使用 SSL 看起來。 注意到 URL 欄上的綠色“https:”了嗎?
SSL 基本上是將您的信息打亂為無法像我們處理純文本那樣讀取的內容。 因此,當信息在您的服務器和任何瀏覽器之間傳輸時,任何能夠訪問它的人都無法理解它。 有一個私鑰和一個公鑰。 一旦 SSL 使信息流動變得有趣和難以辨認,我們需要在瀏覽器端再次理解它。 這就是私鑰的用武之地,使事情再次可讀。 遊戲中的機制與數學鎖和鑰匙非常相似。
我們推薦的共享主機 SiteGround 免費提供 SSL 保護。 您還可以從證書頒發機構購買 SSL 證書。 如果您運行 Wordfence 等安全插件,則可以啟用 SSL。
我建議使用站點範圍的 SSL,包括 ColorLib 在內的許多 WordPress 站點都使用站點範圍的 SSL。 如果不是站點範圍的 SSL,您絕對應該至少為登錄頁面強制使用 SSL。
像 Chrome 這樣的瀏覽器甚至會阻止對 SSL 證書錯誤/過期的網站的訪問。
您可能需要弄清楚您的 CDN 是否可以輕鬆地通過 SSL 提供內容,有時廣告網絡在通過 SSL 提供服務時可能會出現問題。 在站點範圍內添加 SSL 可能會帶來很大的困難,您應該閱讀這篇關於啟用站點範圍 SSL 的困難的非常有見地的文章。
如果您在網站上使用 SSL,Google 會讓您的搜索排名略有提升 (1%)。 這一事實本身就應該保證使用 SSL。 為什麼 ? 谷歌和大多數網絡開發專業人士一樣理解確保讀者/訪問者數據安全的重要性。
SSL 也可以通過 Wordfence 安全插件在您的登錄屏幕上強制執行。 預計安全證書將在 2015 年的某個時候免費提供。
在 WordPress.org 上閱讀有關 SSL 管理的更多信息。
#4. 保護您的 WP 核心、數據庫和使用正確的文件權限
在許多這些安全措施中,我們將修改您的 WP 核心,您需要熟悉如何使用和 FTP 客戶端進行更改和上傳。 而且由於這些安全提示中的大多數都涉及更改或修改您的 WP 核心,因此它可能只會破壞您的網站。 在繼續之前備份您的 WordPress 核心及其所有內容,通過備份可以輕鬆消除錯誤。
WordPress 安全密鑰
WordPress 使用 cookie 來識別和驗證登錄用戶以從 WP dash 進行評論和進行更改。
這些 cookie 包含登錄信息和您的身份驗證詳細信息。 密碼被散列,這意味著應用了數學公式使其難以辨認,並且如果不再次應用數學使其可讀就無法讀取。
我們可以使用 WP 安全密鑰為這個 cookie 添加額外的保護層。 這些是一組隨機變量,可提高存儲在用戶 cookie 上的信息的安全性。 有 4 個鍵,分別是 AUTH_KEY、SECURE_AUTH_KEY、LOGGED_IN_KEY 和 NONCE_KEY。
如果有人可以重建身份驗證 cookie,那麼 WordPress 或 12345 等未加密的密碼很容易被破解。 但是使用 WP 安全密鑰加密使這變得更加困難。
您如何添加 WP 安全密鑰?
- 打開 wp-config.php 文件。
- 搜索“身份驗證唯一鍵和鹽”。
- 使用在線自動密鑰生成器工具。
- 從在線工具複製密鑰並替換現有的密鑰集,在 wp-config.php 中覆蓋它。
- 保存。
- 您可以每個月左右重複相同的過程。
請記住,每次更改安全密鑰時,用戶都將被註銷,他們將不得不再次登錄他們的帳戶。
iThemes Security 提供了從 WP dash 執行此操作所需的工具。 他們還會每個月提醒您更改安全密鑰。
密碼保護您的 WP 目錄
這可以從您的 cPanel 或任何網絡主機的儀表板完成。 在 cPanel 中,打開安全 > 密碼保護目錄。 您將找到站點上所有文件夾的列表。 從一個重要的文件夾開始,比如 wp-admin。
您將找到一個對話框,要求通過提供用戶名和密碼來創建用戶。 現在創建新用戶。 此後,如果您需要訪問您網站上的 wp-admin 文件夾,則需要輸入用戶名和密碼才能訪問該網站。
這為您網站最重要的部分增加了一層額外的基於密碼的保護。
使用安全 FTP (SFTP)
當您添加要合併的新更改時,需要文件傳輸系統將您網站的數據傳送到您的網絡主機。 使用普通的文件傳輸協議或 FTP,有人可能會攔截並發現漏洞來利用您的網站的機會增加。
您需要合適的客戶端才能使用 SFTP 連接上傳新文件和修改後的代碼。 您可以使用 FileZilla 來幫助您入門。
此外,您還需要有關您的網絡託管帳戶的一些特定詳細信息。 通常,每個主機都會提供特定信息來幫助您設置安全的文件傳輸協議。 您通常會擁有一個由主機生成的 SSH 密鑰,必須將此密鑰添加到您的 SFTP 客戶端(如 FileZilla),並且從那裡設置文件傳輸的安全連接很簡單。
使用正確的文件權限
訪問您的文件需要有正確的權限。 可以從 Web 服務器在您的 WordPress 上進行編寫。 當您與多個網站共享該環境時,問題就出現了,這些網站的網站也可能位於共享服務器上。
通常,WordPress 文件夾和 WordPress 文件在不同的主機上具有特定的權限。 通過 shell 訪問,您可以運行以下兩個命令,以確保您的 WordPress 文件夾和文件安全並且只有正確的用戶才能訪問。
find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \; find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;
Protecting WordPress using .htaccess
While editing .htaccess file, please add code before # BEGIN WordPress or after # END WordPress. Any code added within these two hashtags can be overwritten by WordPress and we wouldn't want any new security protocols we've added to disappear. So when you add any code to the .htaccess file, please remember to stay out of the section starting with # BEGIN and ending with # END.
The wp-includes contains files that aren't necessary for any user, but it contains files necessary for running WP. We can protect it by preventing access and adding some text to the .htaccess file. Keeping in mind to stay out of the code within hashtags.
Add this little snippet of code to the .htaccess file.
# Block the include-only files. <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule> # BEGIN WordPress <-- Always add code outside, before this line in your .htaccess file -->
This wouldn't work for wp multi sites. Remove this line – RewriteRule ^wp-includes/[^/]+\.php$ – [F,L], this will offer less security but it will work for multisite.
Your wp-config.php file contains sensitive information about your connection details and the WP security keys we previously discussed. Modifying your .htaccess will protect your website against hackers, spammers and significantly beef up your website's protection.
This process involves moving your .htaccess file out of your WP install and to a location accessible only with an FTP client or cPanel or from the web server.
Add this to the top your .htaccess file.
<files wp-config.php> order allow,deny deny from all </files>
This will essentially prevent access to anyone who surfs for the wp-config.php file and only access from the web server space will be permitted.
All this added protection is great, but remember all of this was accomplished from your .htaccess file. That means if someone can access your .htaccess file, all your added security isn't helpful.
Add the following to the top of your. htaccess file. It will prevent access to your .htaccess file.
<files .htaccess> order allow,deny deny from all </files>
You can add more modifications to .htaccess file, if you'd like.
You could, restrict files, by file types and extension. This piece of code will not only restrict access to your wp-config but it will prevent access to ini.php and your log files.
<FilesMatch "^(wp-config\.php|php\.ini|php5\.ini|install\.php|php\.info|readme\.html|bb-config\.php|\.htaccess|\.htpasswd|readme\.txt|timthumb\.php|error_log|error\.log|PHP_errors\.log|\.svn)"> Deny from all </FilesMatch> #Code courtesy - WPWhiteSecurity
Next we can disallow browsing of the WP directory contents.
Options All -Indexes
Apart from that we can add a few other changes to improve security by making changes to the .htaccess file in WordPress.
- Block IPs and IP ranges. You can limit access to your login pages by IP range, I would have covered it in the Login section but login page protection plugins already block IP ranges which try to access login pages through brute forcing techniques.
- Keep bad bots at bay.
- Prevent hot linking.
This is quite extensive and we are starting to get off point. If you'd like to do the other stuff as well, for which I haven't presented the code here, you can use this piece of custom code from WP White Security.

Please remember to keep track of which files you have moved to root directory of WP. You'll need to be aware of where each file/folder is, so that you can not only edit them but also be sure not create multiple copies in different locations which again jeopardizes the point of the entire exercise.
Turn Off PHP Error Reporting & PHP execution
PHP executions need to be kept to a minimum. 為什麼 ? A good example of a hack would be the Mailpoet Newsletter hack which could be used to add files which are run from the wp-content/uploads folder.
To prevent such vulnerabilities, we can deny PHP any room to run on WordPress. Add this code snippet to the .htaccess file.
https://gist.github.com/puikinsh/c8bf229921dbf6af4625
This code detects PHP files and denies access. You need to add it to the following wp folders.
- wp-includes
- wp-content/uploads
- wp-content
You'll need to create a .htaccess in the other folders. By default, it may be available in the root directory but to prevent PHP execution the .htaccess file needs to be created and added to the aforementioned folders. The three folder mentioned are primarily folders where content is uploaded and is particularly vulnerable to a PHP script that can cause a lot of problems.
PHP error reporting is a signal to all hackers who are looking for vulnerabilities that there is something not working on your website.
Adding these two lines of code to your wp-config.php file should resolve the problem.
error_reporting(0); @ini_set('display_errors', 0);
Although having read multiple threads and discussions about PHP error reporting, it may not work. In which case your best option is to contact your web host and ask for instructions on how you can accomplish the same.
Change the wp_ table Prefix
All WordPress tables begin with a wp_ prefix. Change this wp table prefix across your entire website and make it more difficult for a hacker to infiltrate your website.
In your wp-config.php, you'll find this line of code.
$table_prefix = 'wp_';
Change that to something completely random,
$table_prefix = 'jrbf_';
Now every table like, wp_posts, wp_users, etc will change to jrbf_posts, jrbf_users and so on.
Almost all security plugins do this for you and furthermore changing wp table prefixes may be time consuming. You can do this with PHPMyAdmin or other database managers, but I'd much rather use a security plugin like iThemes Security to accomplish it.
Similarly, you can take it a step further by changing the name of your WordPress database. This way, not only do you change the prefix but you will also be changing the names of what follows the prefix. This will make it nearly impossible for hackers to randomly guess your database name and you can not access what you can not find.
Disable XMLRPC
Generally, DDOS attacks target all web pages of WordPress websites indiscriminately. But this particular part of WordPress can become a target for DDOS attacks. I'll explain, XMLPRC is used for pingbacks and trackbacks. But it has, in the past been exploited to launch DDOS attacks on websites.
You can use a plugin like Disable XMLPRC. But you will not need it, if you use security plugins or a login protection plugin. They generally provide protection against this particular vulnerability.
#5. Security Plugin – Wordfence/iThemes Security/ Sucuri
An effective security plugin is absolutely essential in ensuring your WordPress site's security, for the non-tech savvy at least. Security plugins perform the various functions many of which have already been discussed here, all of these added security measures add up to build a fortress around your website and its contents.
Wordfence performs a number of functions crucial to site security on a WordPress powered site,
- Real time blocking of attackers, blocking entire malicious networks and certain countries.
- Limit crawlers, bots and scrapers.
- Block users who trespass on your security rules.
- Two factor authentication via SMS, greatly improves security on login pages.
- Strong password enforcement for all users (non-admins).
- Protect against brute force attacks.
- Scan site for malicious scripts, back doors and phishing URLs on your site masquerading as comments on your website.
- Compare plugin/theme core files with files of the same listed on WordPress.org's directory.
- Run heuristics for Trojans, suspicious scripts and other potentially security endangering activities on your site.
- Firewall to block fake Google bots sent by hackers to scan for vulnerabilities.
- Real time awareness and live content access monitoring to enhance situational awareness.
- Geo-located down to a city level the threats to your website to find out the point of origin of threats to site security.
- Monitor DNS for unauthorized access.
- Keeps an eye on disk space consumption to prevent and react to Denial of Service attacks.
- It is multisite compatible.
- Falcon caching system to reduce server load.
- Full IPv6 compatibility for WHOIS lookup, location and security functions.
Some features are restricted to the premium version of the plugin. The premium version of the plugin is priced at $3.25/mo.
That being said, the free version of this plugin is a very capable site defender for your WordPress website. And you shouldn't be too apprehensive about the free version of the plugin, given that it has a rating of 4.9 on a five point scale and has been downloaded nearly a million times.
Security plugins require configuring and this can be an elaborate and long process. With Wordfence, you can to an extent at least customize all your security settings from Options under WordFence on your WordPress site menu.
Other options you can consider, if you still haven't settled on a security plugin for your WordPress site.
- Bullet Proof Security
- iThemes Security (Previously known as Better WP Security)
- Sucuri Security & Sucuri Cloudproxy For Firewall
- 多合一 WP 安全和防火牆
I do not think Wordfence is the best overall security system out there. What I mean by this is, there are better security solution providers/ managed hosting services that offer better overall security solutions for WordPress sites. But when it comes to simple security plugins that enforce good protection and security protocols, Wordfence is certainly one of the best. The not too distant second position would probably go to iThemes Security.
In the coming weeks, I'll probably write a post about all the security solutions available for WordPress, so stay tuned to Colorlib But right now, we'll stick to Wordfence as the recommended security plugin.
#6. Update ! 更新! 更新! And not just your WordPress
There are hundreds of WordPress vulnerabilities in the previous/non-current versions of WordPress.
Websites tend to be slow, when it comes to updating their WordPress platform. For example, in February of 2015 only 7.4% of websites had updated to WordPress 4.1, despite the fact that it had been released more than two months prior to February.
Whenever a software vulnerability is discovered, typically the vulnerability is reported to the software vendor. The software vendor then modifies the software and adds some added protection or merely deletes some unnecessary code. This is released as a software update or a patch. This is the best possible case, but if someone with less than noble intentions discovers a vulnerability in any web based or non web based software, then he/she is likely to exploit it to the fullest.
July 2014, Mail Poet Newsletters previously known as Wysija Newsletters, a plugin which had been downloaded over 2 million times was compromised as a result of which 50,000 websites were made vulnerable to attack. An automated attack where in, an injected PHP backdoor would allow for eventual control of the site by the hacker.
December 2014, 100,000+ websites were compromised by the Revolution Slider plugin which was targeted by the SoakSoak.ru campaign. This particular malware injected JavaScript into the wp template-loader.php file. A thousand themes were affected as they had been sold with this plugin as an add-on via Envato and other WordPress marketplaces.
The XSS vulnerability in WP Super Cache, a plugin I included in my round up for the Top 6 Caching Plugins. The list of vulnerabilities in top notch free plugins is quite concerning. But there are a number of steps you can take to decrease your chances of using a vulnerable piece of code theme or plugin on your website.
You should know that most plugins with vulnerabilities have been patched. But you need to stay fully updated at all times. Updating your site to the latest versions is an extremely important part of your site defense strategy. All the previously mentioned security measures are useless, unless you update as and when the updates for WordPress and other third party software are available.
Enable Automatic Updates For Your WordPress, Plugins & Themes.
You do not want your website's update page looking like this page on a test site.

WordPress introduced automatic background updates with the release of WordPress version 3.7.
You can enable auto updates for WP, by making a change to the WP_AUTO_UPDATE_CORE constant. This change needs to be made in the wp-config.php file.
define( 'WP_AUTO_UPDATE_CORE', true );
This will ensure that all updates major or minor are updated as soon as they are made available.
Change the update core constant to “false” and you will disable all updates. Changing it to “minor” will enable auto updates for minor changes, normally includes security patches.
You can update plugins and themes in the same manner, by editing the auto_update$type filter.
For automatic plugin updates,
add_filter( 'auto_update_plugin', '__return_true' );
And to enable automatic theme updates,
add_filter( 'auto_update_theme', '__return_true' );
如果您不喜歡擺弄代碼,可以使用插件來幫助自己。 您還有另一種選擇,即插件形式,以確保您的 WP 和網站上所有主題/插件的順利更新。 高級自動更新允許您單獨啟用主要更新和次要/安全更新。 並且該插件還提供了主題和插件的自動更新解決方案。
對於多站點更新解決方案,如果您需要幫助處理 WordPress 插件和主題的更新,您可以試用 Easy Updates Manager。 WP Updates 還提供高級服務,為高級插件和主題提供自動更新解決方案。
使用 ManageWP 等插件或 WPEngine 等託管 WP 主機也將有助於解決更新 WordPress 和您在網站上使用的第三方軟件的問題。
當事情開始出現問題時,更新 WordPress 核心會自動成為問題。 這可能是因為自定義代碼在更新過程中被刪除或第三方軟件(插件和主題)出現的兼容性問題。 這是可能讓您暫停的一個原因,也許啟用次要更新可能是一個更好的主意。
如果您的 WordPress 自動更新有問題,那麼我建議您嘗試使用後台更新測試器。 該插件會檢查並解釋任何兼容性問題。
在更新之前始終運行備份。 總是! 這是為了保護您的網站免受嚴重錯誤的影響,在這種情況下,您最終會把網站弄得一團糟。 一個值得遵循的好習慣,以防止自動更新因插件、主題和 WP 核心上的有時自定義代碼的兼容性問題而造成嚴重破壞。
#7. 關於 WP Security 的更多信息 - 防火牆、審計日誌和惡意軟件掃描程序
我還沒有討論過 WordPress 的防火牆。 一個好的防火牆將完成很多工作並減輕對您網站的最常見的攻擊形式。
- 減輕 DDoS 攻擊的影響。
- 蠻力攻擊停止在他們的軌道上。
- 防止軟件漏洞。
- 阻止代碼注入攻擊,如 SQL 或 XSS 攻擊。
- 修補和防禦零日漏洞。
只是為了說明,這裡是 Sucuri 防火牆為 WordPress 網站所做的快照。
防火牆不是 Sucuri 用來描述其保護系統的術語,他們將其稱為 CloudProxy,它是 Web 應用程序防火牆和入侵檢測系統的組合。 過濾掉所有惡意流量並監控異常活動。
防火牆傳統上是為了監控連接而開發的,但是 Sucuri 的 CloudProxy 不僅可以阻止壞人,而且還可以針對漏洞創建虛擬補丁。 一旦來自訪客的請求通過防火牆,它就會到達入侵防禦和檢測系統,在那裡系統會篩選可能的攻擊模式的請求。
我認為用於保護您免受漏洞侵害的虛擬修補功能對於任何定製過多的網站來說都是一種高效且無價的資產(意味著當出現兼容性問題時,很多網站可能會出錯)。 最好在暫存區將更新應用到 WordPress 並檢查您的網站是否運行順利。 如果是這樣,您可以使用網站的更新版本。 但在此期間,您的網站確實處於危險之中。 只有通過更新修復漏洞才能防止零日漏洞利用,但在使用 Sucuri CloudProxy 時並非必須如此。
除此之外,他們還維護您網站上所有活動的日誌,並尋找可能的惡作劇跡象。
將防火牆視為最後的措施,它是黑客需要突破以訪問您網站的敏感內容的牆。 良好的實踐在很大程度上旨在使您不需要過多地使用防火牆。
惡意軟件掃描軟件或諸如 Sucuri SiteCheck 之類的網站可以掃描您的網站以查找漏洞和可能的安全漏洞。 安全插件還具有惡意軟件掃描軟件,可跟踪任何看起來異常且是潛在安全問題來源的更改。
我之前也提到過 WP 安全審核日誌,同時指出它是跟踪您網站上所有更改的必要插件。 我想重申這一點,它是一個非常有用的插件,不僅可以跟踪受主題和插件影響的更改,還可以跟踪其他用戶的操作。 使用 WP Security Audit Log 或運行其他一些數據記錄插件來跟踪所有更改非常重要。
日誌記錄也是 Sucuri 保護系統的一個關鍵功能。 儘管他們為確保安全做出了過分熱心的嘗試,但有時還是會發生不好的事情並且網站被黑客入侵。 當這種情況發生時,他們的日誌系統對於幫助挖掘網站擺脫困境非常有用。
防火牆、惡意軟件掃描程序和審計日誌對於應對無法預測的威脅和零日漏洞利用非常方便。 它們不能替代良好的 WordPress 安全實踐。
#8. 隱藏您的 WordPress 版本 – 有必要嗎?
我在一些網站上讀到,隱藏您的 WordPress 版本會增加您對惡意黑客的安全性。 問題是,有一種假設是,對與特定 WordPress 相關的漏洞的了解,使有人更有可能利用它們。 這不一定是真的。 通常,從網站竊取信息的人會使用自動化工具來掃描網站以查找已知漏洞。 如果您的 WordPress 版本易受攻擊,那麼他們就會知道。 這不像黑客一次檢查一個站點並按 WordPress 版本對其進行排序。
如前所述,請盡快更新您的 WordPress、主題和插件。 黑客不會區分顯示 WordPress 版本的網站和不顯示 WordPress 版本的網站。
萬一黑客手動訪問每個網站並檢查 WordPress 版本,然後嘗試查找漏洞,您可能會發現隱藏 WordPress 版本很有成效。
使用刪除版本插件刪除您的 WordPress 版本。 如果這對您不起作用,那麼您需要進行一些小的修改,這篇博文應該會對您有所幫助。
#9. 備份 – 網站安全的最後一道防線
儘管您採取了所有安全措施,但您應該始終為 WordPress 網站遭到破壞的可能性做好準備。 如果發生這種情況,您需要介入並解決問題。 現在有多種方法可以完成站點恢復。 假設安全漏洞或漏洞已經修復,一鍵恢復的備份對於受損網站來說是一種簡單的修復。
自動備份是每個 WordPress 網站安全庫中必不可少的一部分。 將安全插件視為您的劍,將備份視為您的盾牌。 如果你的進攻失敗了,你的盾牌在這種情況下備份,成為你的最後一道防線。
請記住,我假設只有您的 WordPress 受到威脅,而不是您的服務器,這是一個完全不同的蠕蟲袋。 但大多數託管服務提供商都擁有強大的安全團隊,不斷保護他們的服務器免受惡意元素的侵害,尤其是在全球攻擊期間。 如果您有興趣,我在幾週前寫了一篇關於共享託管服務的不同提供商的帖子。
備份 - 如果您決定想要一個免費插件而無需為備份服務支付一角錢,那麼我想說您可以從 Updraft Plus 開始,它是一個免費增值插件。
使用此插件,您可以備份網站副本並將其保存在許多不同服務提供的存儲中。 它包括 Google Drive、Amazon S3、Dropbox、Rackspace Cloud、FTP 和 SFTP 以及電子郵件。 您還應該注意,免費插件只允許在任何一個位置進行備份。 如果您希望利用該插件將您的網站保存在多個位置,則您需要一個高級插件。
這個插件像大多數 WordPress 備份的備份提供商一樣,保存所有內容,包括您的內容、主題和插件設置,它還可以運行與正常備份分開的 WordPress 數據庫備份。
如果您想使用高級 WordPress 備份服務,我建議您查看 BackUp Buddy、VaultPress 或 BlogVault(我過去曾與他們合作過,他們的服務很棒)。
保留一份以上的網站副本,並始終在不依賴互聯網連接的物理驅動器上保留一份。 即使從非安全的角度來看,備份也是一個好主意。 當您嘗試主題和插件時,當您更新主題、插件或 WordPress 時,總是存在出現兼容性問題並破壞您網站的可能性。
根據我在自動備份方面的經驗,您需要以與不斷添加新內容和不斷製作備份副本的頻率一致的方式不斷刪除備份副本。
談到我的 PC,我總是更喜歡提供增量/差異備份的備份解決方案,而不是完整備份,但您也注意到,使用前者進行恢復需要更長的時間。 這同樣適用於 WordPress 備份系統。 雖然,除非您的備份提供商對數據存儲限制有嚴格限製而收取額外費用,否則您不必擔心。
結論
我忍不住了,哈利波特系列中的這句話似乎很貼切。
“時刻保持警惕!” – 瘋眼漢穆迪
如果您想知道,穆迪是該系列中的黑巫師捕手。
正如我之前已經提到的那樣,網絡上沒有完全證明安全性這樣的東西。 您可以採取多種安全措施,但您的網站仍然會被黑客入侵。 但是,確保您的網站在 SSL 上運行、您的登錄頁面得到強化、您的密碼和用戶名非常陌生、您的網站完全更新並抵禦已知威脅並每天進行全面備份,這大大提高了對您有利的機率.
如果您想要一個完整的 hack/exploit free WordPress,遵循上述所有安全措施將確保您的網站具有嚴密的安全性。 但即便如此,您也無法防範零日漏洞攻擊或一心想破壞您網站的聰明黑客,儘管這是極不可能發生的事件。
這麼想吧。 如果我的網站被黑客入侵,我會損失多少業務和收入? 我會讓我的客戶信息處於危險之中嗎? 這會讓我承擔訴訟責任嗎? 當您發現網站被黑的成本相當高時,我建議您使用託管的 WordPress 託管服務或以 Sucuri 安全服務形式提供的真正大型網絡保鏢。
您的網站不一定需要流行才能成為目標。 如果它不斷成為黑客和攻擊的受害者,它永遠不會成為高流量網站。
正如我之前所說的關於託管。 如果您相當確定自己有能力創建一個能夠支付最佳託管/安全服務費用的創收網站,那麼請選擇最好的。 如果您能夠負擔得起最好的網絡託管/安全服務,那麼從長遠來看,這將是值得的,假設您不是專業的網絡開發人員。
如果您負擔不起最佳管理的虛擬主機或一流的安全性,請採取上述安全措施。 很有可能,您的網站將是安全的。
如果您對 WordPress 安全有一些額外的了解,或者對如何保護您的 WordPress 網站有不同的想法,我很樂意在下面的評論中聽到您的想法。 乾杯