您在這裡

這些年玩的WordPress:安全篇

jack 在 三, 12/09/2015 - 11:53 發表

WordPress由於使用簡單,因此也成為全世界最受歡迎的內容管理系統(CMS),地球上的網站大約有1/4都使用WordPress。幾乎,只要有人要架站,一定會想到WordPress,特別是如果要架的是部落格網站的話。

雖然Drupal是我最為熟悉的CMS,不過幫朋友架站也用了WordPress,因此在WordPress的使用上也遇到過許多問題,有些實在是不該犯的錯(不過都是事後諸葛),在這裡零零碎碎的記錄下來,讓也遇到同樣問題的新手架站同好可參考。

安全第一

架網站很容易,最難的是維護,而維護中最重要與最麻煩的當屬安全。偏偏,「安全」問題是新手最容易輕忽的一件事。

最近我的一個WordPress網站被駭而中毒,網站還被Google通知警告,並人工介入。由於這件事讓我重新檢視我的WordPress安裝,這裡要為新手提供一些在這慘痛教訓下的建議與心得。

1 簡單是美

在架好一個WordPress網站之後,你可能會搜尋該安裝什麼外掛,然後一堆「必裝的XX款WordPress外掛」文章,琳瑯滿目的外掛功能,然後說的好像你不裝就落伍了似的,於是你就依文章指示,全都裝了。

……然後過一陣子,你可能完全忘了你裝了三小,還有那些主控台上的已安裝外掛到底有三小路用。

如果你是新手,那麼我會強烈建議,見到諸如此類的文章,十之八九都可以忘了它。

或者在安全上你不知採取什麼措施,但第一個架站的原則就是「簡單」,網站簡單就能夠把問題也變簡單,然後你就比較有能力處理。

具體來說,就是把你的網站的功能性降到最精簡的狀態,如果只要WordPress核心就能夠應付的,那麼就不需要加裝什麼有的沒有的外掛。如果裝一個外掛就解決你的需求,那麼就不要裝兩個。

未來網站在維護上,定期更新是最基本的。WordPress核心有自動更新功能,因此安全狀況好一些。但一些外掛,經常都是要手動更新的,有些甚至已經沒有更新的,那麼就等於在增加網站的漏洞,讓駭客有可乘之機。

裝外掛時,更是要注意來源是否合法正確,評價及安裝人數是否夠多夠好(有些評價很高但一看只有幾個人安裝及評價,那就顯然是操作出來的,是最危險的),另要注意的則是維護狀態,甚至要看看維護者。缺乏維護的外掛,就絕對不要裝。

2. 做好使用者管理

首先,承續前一概念,如果你的使用者很簡單,只有你自己,那麼就別開啟一些有的沒有的使用者相關功能。像是留言(迴響)功能,還有使用者注冊功能,都是能省則省,這兩項功能是攻擊者最愛的弱點,我的網站不論是WordPress及Drupal架的,先前出重大問題都是在這方面沒處理好。

其次,這裡也強烈建議,在架好網站之後為自己另開一個作者或編輯權限的帳號,寫文時使用作者或編輯帳號,而維護管理則使用管理員帳號。這可免於管理員帳號名稱曝露,讓網站成為暴力破解密碼的肉靶。建議管理員帳號名稱也別太簡單,更別使用諸如admin一類的。

3. 真正的必裝外掛

個人經驗,真正必裝的外掛是CAPTCH,也就是圖片驗證機制,它可以幫你阻擋一些可能的帳號暴力破解攻擊以及垃圾內容攻擊。 

該機制建議用在使用者登入時。而如果你有開啟使用者注冊功能,那麼也應當在注冊頁面上加入該機制,另外還可用於各種線上表單上。 

其中最建議的就是BestWebSoft所提供的Google reCAPTCHA外掛,雖然啟用上有些麻煩,需要先向Google申請,然後取得兩把鑰匙:網站金鑰(Site key)與密鑰(Secret Key),但在總體使用經驗上是最好也最安全的。

另外,在e-mail功能上,則建議使用Postman SMTP,同樣的,設定是也是比較麻煩一些,若選擇OAuth 2.0認證,要先向Google申請金鑰才能夠與你的Gmail串接,然後讓你的網站透過Gmail來發信。發信功能之所以重要,在於網站許多狀況都可透過e-mail來得知,像是如果你要安裝一些安全監控軟體。或者是在你忘記或遺失密碼時,就可透過e-mail發出重設的通知。

PHP寄信功能雖然也算是相當簡單,不過,先前網站搬家時每次老是在e-mail設定上瞎忙,因此還是建議使用諸如Postman SMTP的方式。

而如果你有安裝廣告,或者是流量追蹤的需求,也是建議可採用Google的機制即可。

而如果你想為網站做些基礎的安全功能,當然也可再安裝一套相關外掛,如WP Antivirus Site Protection算是評價及安裝數都很高的安全外掛。 

4. 做好備份

備份幾乎是安全上的一條金科玉律之一,但卻是許多使用者經常忘記的,因為這涉及到一個日常的使用習慣問題。

如果你的網站代管業者有提供備份服務,那麼建議不要省這筆錢,因為這在關鍵時刻能夠幫你救回網站。

另外,不管你有沒有購買網站備份服務,建議定期做好離線備份。分兩部份,一是匯出並下載資料庫,其次是網站資料的下載。並依日期做好分門別類。如果你有購買備份服務,定期的離線備份或者可以頻率低一些,如果沒購買,那麼頻率就要高一些。至於頻率怎樣算是高?可能依你的網站更新頻率而定。

前些日子WordPress網站被駭中毒就是靠備份救回來的。

5. 互動功能多利用FB等社交網路

過去在架站時必需考慮的許多互動功能其實都可以轉到臉書或LINE等社交網路上。

因此,你所需要的就是把臉書按讚,以及分享等功能加上WordPress網站即可。

至於加入的方法很多,像是加一個外掛,或者甚至可直接把臉書API寫到主題版型裡……。

接著就是或者可以透過網站標籤把使用者導引到你的臉書帳號了,如此一來像是連絡站長的表單,或者是留言版等,建議都可以不要。有人甚至就是以顯眼的訊息公布自己的LINE群組。諸如此類的社交功能,都比在WordPress網站上想一堆互動功能還強,而且更加安全。

 

這方面我並不是專家,只是這些年來自玩架站時邊做邊學的一些心得。至於更多艱深的技術問題,建議還是上Google多搜一些如何強化WordPress安全的文章。