使用 .htaccess 簡單防護 WordPress 的管理程式

本站曾用過 Limit Login Attempts 這個 WordPress 的外掛程式,用以防止被暴力破解登入密碼。當有人一直以錯誤的密碼進行登入時,就會對其 IP 進行幾個小時的封鎖,然後 mail 通知你又有什麼 IP 被封鎖了,效果其實也還不錯。

不過其實只要用「.htaccess 的權限認證方式」,就可以針對 wordpress 的 wp-login.php 這個單一檔案做防護,也可以達到很好的效果。

.htaccess 認證

首先找一個安全的地方放置 .htusers 這個檔案。所謂的「安全」,是指至少不要在網頁可以被下載到的路徑.htusers 的設定方式請參考本站另一篇文章:

密碼請不要用跟 WordPress 原本的登入密碼一樣。

編輯 wordpress 目錄下的 .htaccess,在檔案最後如入:

AuthType Basic
AuthName "Restricted Area"
AuthUserFile "/path/to/.htusers"
<Files wp-login.php>
require valid-user
</Files>

如果你想進一步針對整個 wp-admin 目錄做防護,則進到 wordpress 下的 wp-admin 目錄,新增或編輯 .htaccess,一樣在檔案最後如入:

AuthType Basic
AuthName "Restricted Area"
AuthUserFile "/path/to/.htusers"
require valid-user

參考網頁

網站套件的「設定檔」安全性問題

這是我在 Facebook 上看到的安全資訊,我覺得很重要,也適用在任何的網站套件上。

以 WordPress 為例,首先,請查看你的 WordPress 目錄下是否有這些檔案:

  • wp-config.php~
  • wp-config.php.2
  • wp-config.php.bak
  • wp-config.php.old
  • wp-config.php.ori
  • wp-config.php.orig
  • wp-config.php.original
  • wp-config.php.sav
  • wp-config.php.save
  • wp-config.php.swp
  • wp-config_php
  • wp-config.php_2
  • wp-config.php_bak
  • wp-config.php_old
  • wp-config.php_ori
  • wp-config.php_orig
  • wp-config.php_original
  • wp-config.php_sav
  • wp-config.php_save
  • wp-config.php_swp

繼續閱讀

WordPress 的錯誤訊息: You don’t have permission to access post.php ...

如果你在上傳圖片時,出現:

 Http Error

或是發表文章時,出現

You don’t have permission to access /wordpress/wp-admin/post.php on this server.

這是 Apache 的 mod_security 造成之錯誤,這時候你可以在 wp-admin 的目錄下新增 .htaccess 檔案,內容如下:

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>

這樣應該就可以輕鬆解決了。

參考網頁

  1. 窄多之Blog: PHP post error: Forbidden - You don't have permission to access
  2. Hongkiat: WordPress 2.5 Image Upload Error [Wordpress Fix]