安全是永恆的話題,在互聯網上更是如此,本文將為大家介紹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檔前請先備份,然後打開並粘貼下面代碼:
<files wp-config.php>
order allow,deny
deny from all
</files>
修改後會拒絕任何對 wp-config.php 檔的訪問。
4.建立訪問黑名單。
是不是常被一些垃圾評論製造者所煩惱? 如果是,需要做的就是遮罩他們的IP,讓他們再也無法訪問你的博客。
解決:修改.htaccess檔添加以下代碼,事前別忘備份。
<Limit GET POST PUT>
order allow,deny
allow from all
deny from 123.456.789
deny from 93.121.788
deny from 223.956.789
deny from 128.456.780
</LIMIT>
修改後上面這些IP就會被限制訪問。
5.防止腳本注入。
腳本注入往往用來竊取使用者資訊,如果攻擊者一旦得逞大多數情況下造成的損失很難挽回。
解決:依舊是.htaccess 檔添加以下代碼,事先備份。
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{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 url
RewriteCond %{HTTP_REFERER} !^HTTP://(.+\.)? mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Replace /images/nohotlink.jpg with your "don't hotlink" image url
RewriteRule .*\. (jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
修改完成之後只有你的網站可以引用圖片,而其他外部引用都會被替換為nohotlink.jpg 檔。 你可以在nohotlink.jpg 裡展示版權資訊。 當然你也可以指定替換為一個不存在的檔。
7.創建一個外掛程式來阻止惡意請求。
駭客往往使用惡意查詢來修著博客的薄弱點用來攻擊,雖然WordPress自身有比較完善的防護機制,但也不是沒有提高的餘地。
解決:創建一個文字檔粘貼以下代碼,並保存為 blockbadqueries.php 。 上傳到你博客的wp-content/plugins資料夾下,進入後臺開啟這個外掛程式。
<?php
/*
Plugin Name: Block Bad Queries
Plugin URI: HTTP://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/
Description: Protect WordPress Against Malicious URL Requests
Author URI: HTTP://perishablepress.com/
Author: Perishable Press
Version: 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
注意修改後並不會影響使用者正常的訪問這些檔。
來源:HTTP://www.littlear.com/post/2010/07/0270/