7.10.2010

高WordPress博客的安全性的10個小技巧

本文將為大家介紹10個小訣竅來提高WordPress博客的安全性。WordPress用戶都知道wp-config.php文件的重要性,它保存了所有的配置信息:用戶名、密碼等等。所以控制對 wp-config.php 的訪問權限就變得尤為必要。
安全是永恒的話題,在互聯網上更是如此,本文將為大家介紹10個小訣竅來提高WordPress博客的安全性。

1.刪除錯誤提示。
當我們登錄WordPress後台失敗時會顯示錯誤信息。如果有人想攻擊你的博客那麼他們會從錯誤提示裡得到很多有用的信息,我們需要做的就是不顯示任何信息。
解決:打開 functions.php  文件並添加如下代碼:
add_filter('login_errors',create_function('$a', "return null;"));
這段代碼可以讓返回的錯誤信息為空。
2.使用SSL。
如果你擔心數據泄露或被截獲,那就使用SSL連接方式吧。但是之前請確保博客主機支持SSL,如果不支持請直接跳過本條。
解決:打開 wp-config.php 文件(一般位於根目錄)添加以下代碼:
define('FORCE_SSL_ADMIN', true);
我們定義了FORCE_SSL_ADMIN常數,其值設置為true。這樣就在WordPress裡開啟了SSL。
3.用.htaccess 保護配置文件。
WordPress用戶都知道wp-config.php文件的重要性,它保存了所有的配置信息:用戶名、密碼等等。所以控制對 wp-config.php 的訪問權限就變得尤為必要。
解決:在修改.htaccess文件前請先備份,然後打開並粘貼下面代碼:
order allow,denydeny from all
修改後會拒絕任何對 wp-config.php 文件的訪問。
4.建立訪問黑名單。
是不是常被一些垃圾評論制造者所煩惱?如果是,需要做的就是屏蔽他們的IP,讓他們再也無法訪問你的博客。
解決:修改.htaccess文件添加以下代碼,事前別忘備份。
order allow,denyallow from alldeny from 123.456.789deny from 93.121.788deny from 223.956.789deny from 128.456.780
修改後上面這些IP就會被限制訪問。
5.防止腳本注入。
腳本注入往往用來竊取用戶信息,如果攻擊者一旦得逞大多數情況下造成的損失很難挽回。
解決:依舊是.htaccess 文件添加以下代碼,事先備份。
Options +FollowSymLinksRewriteEngine OnRewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})RewriteRule ^(.*)$ index.php [F,L]
修改後所有的請求都會被檢查是否包換腳本段,如果包含就會拒絕請求返回403錯誤。
6.防止圖片盜鏈。
大多數虛擬主機和VPS都是限制流量的,而圖片往往會消耗絕大部分流量。我們在希望自己文章被更多人訪問和傳播的同時又不得不去面對圖片鏈接帶來的巨大流量。所以防止圖片外鏈是絕對必要的。
解決:修改 .htaccess 文件添加以下代碼,之前一定記得備份。
RewriteEngine On#Replace ?mysite\.com/ with your blog urlRewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]RewriteCond %{HTTP_REFERER} !^$#Replace /images/nohotlink.jpg with your "don't hotlink" image urlRewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
修改完成之後只有你的網站可以引用圖片,而其他外部引用都會被替換為nohotlink.jpg 文件。你可以在nohotlink.jpg 裡展示版權信息。當然你也可以指定替換為一個不存在的文件。
7.創建一個插件來阻止惡意請求。
黑客往往使用惡意查詢來修着博客的薄弱點用來攻擊,雖然WordPress自身有比較完善的防護機制,但也不是沒有提高的余地。
解決:創建一個文本文件粘貼以下代碼,並保存為 blockbadqueries.php 。上傳到你博客的wp-content/plugins文件夾下,進入後台開啟這個插件。
/*Plugin Name: Block Bad QueriesPlugin URI: http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/Description: Protect WordPress Against Malicious URL RequestsAuthor URI: http://perishablepress.com/Author: Perishable PressVersion: 1.0*/
global $user_ID;
if($user_ID) {if(!current_user_can('level_10')) {if (strlen($_SERVER['REQUEST_URI']) > 255 ||strpos($_SERVER['REQUEST_URI'], "eval(") ||strpos($_SERVER['REQUEST_URI'], "CONCAT") ||strpos($_SERVER['REQUEST_URI'], "UNION+SELECT") ||strpos($_SERVER['REQUEST_URI'], "base64")) {@header("HTTP/1.1 414 Request-URI Too Long");@header("Status: 414 Request-URI Too Long");@header("Connection: Close");@exit;}}}?>
修改後如果有過長請求(超過255個字符)或者URI中存在PHP函數就會返回一個414錯誤。
8.刪除你的WordPress版本號,切記!
WordPress會在頭文件裡顯示版本號。告訴攻擊者你版本號往往意味着他們可以少走很多彎路,為了不讓他們長驅直入為什麼不隱藏版本號呢?
解決:粘貼如下代碼至 functions.php 文件,保存並刷新你的博客。
remove_action('wp_head', 'wp_generator');
現在看,是不是沒有版本號了。
9.修改默認管理員名。
蠻力攻擊是破解一個密碼最簡單的辦法之一。 該方法很簡單:盡可能多的嘗試不同的密碼。如果他們知道的用戶名,他們只需要破解密碼。 這就是為什麼你應該改變默認的“管理員”用戶名——“admin”的原因。請注意,WordPress的3.0版本會讓您選擇您想要的默認用戶名。 但是這個方法依然適合3.0以前的版本。
解決:打開數據庫執行如下SQL語句,“Your New Username”為你想修改的用戶名。
UPDATE wp_users SET user_login = 'Your New Username' WHERE user_login = 'Admin';
修改後使用新的管理員名戶名登陸。
10.防止目錄瀏覽。
默認情況下,大多數主機允許目錄列表。 因此,如果在瀏覽器的地址欄鍵入www.yourblog.com/wp-includes,就會看到在該目錄下的所有文件。 這無疑是一個安全風險,因為黑客可以看到上一次進行了修改的文件並訪問它們。
解決:修改 .htaccess 文件添加以下代碼,之前一定記得備份。
Options -Indexes
注意修改後並不會影響用戶正常的訪問這些文件

0 留言:

發佈留言

您使用留言則表示同意及遵守使用條款及守則

建議: 為方便留言回覆,請不要用匿名方式 留言。