一、保護 wp-config.php 檔案
Wp-config.php 是 WordPress 核心檔案,一旦這個檔案被訪問了,整個站點幾乎就被控制了。要想阻止此事放生,可以用到下面的程式碼:
# SECURE WP-CONFIG.PHP <Files wp-config.php> Order Deny,Allow Deny from all Allow from 123.456.789 </Files>
把這個程式碼放進站點根目錄.htaccess 檔案中或 Apache 配置檔案裡。上面的程式碼否定了所有訪問,除了 IP 是 123.456.789,當然這個 IP 是你自己的。在這裡你完全可以配置多個允許的 IP 訪問,如下:
# SECURE WP-CONFIG.PHP <Files wp-config.php> Order Deny,Allow Deny from all Allow from 123.456.789 Allow from 456.789.123 Allow from 789.123.456 # additional IP addresses </Files>
另外還可以配置一個 ip 範圍,如:
Allow from 123.456. <h3> 二、保護 install.php 檔案</h3> 在安裝 WordPress 的過程,這 install.php 檔案用於指定站點標題和 email 地址。一旦這個資訊輸入後,WordPress 顯示使用者名稱和密碼輸入介面。不幸的是,在有些資料庫中,WordPress 可能會認為還沒有安裝,所以會重新裝載 install.php 檔案。雖然這種情況非常少,但是仍然會暴露出安全問題,下面擊中方法可以解決這個問題: 1 、 最簡單的方法就是刪除 wp-admin/install.php,安裝後這個檔案就不需要了。 2 、 使用 htaccess 檔案限制訪問 把下面程式碼貼上到.htaccess 檔案中 (位於站點根目錄下) 1 # PROTECT install.php <Files install.php> Order Allow,Deny Deny from all Satisfy all </Files>
3 、替代辦法
我們可以把 install.php 重新命名如 install—demo.php, 然後建立一個 install.php 檔案,把貼上如下程式碼進去:
<?php // install.php replacement page
// http://perishablepress.com/press/2009/05/05/important-security-fix-for-WordPress/ ?>
<?php header("HTTP/1.1 503 Service Temporarily Unavailable"); ?>
<?php header("Status 503 Service Temporarily Unavailable"); ?>
<?php header("Retry-After 3600"); // 60 minutes ?>
<?php mail("your@email.com", "Database Error", "There is a problem with teh database!"); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Error Establishing Database Connection</title>
</head>
<body>
<img src="images/WordPress-logo.png" />
<h1>Error Establishing Database Connection</h1>
<p>We are currently experiencing database issues. Please check back shortly.</p>
</body>
</html>
一旦執行 install.php 檔案,就會出現一些錯誤資訊。

三、保護 wp-admin 目錄
在 wp-config.php 檔案安全之後,admin 檔案也是有必要保護的,也就是 wp-admin 目錄,我們可以採取與第一種方法一樣很容易做到。在 wp-admin 目錄下建立.htaccess 檔案,並貼上下面的程式碼:
# SECURE WP-ADMIN FILES <FilesMatch "*.*"> Order Deny,Allow Deny from all Allow from 123.456.789 </FilesMatch>
也可以使用下面的程式碼替代:
# SECURE WP-ADMIN FILES
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^123.456.789
RewriteRule ^(.*)$ - [F,L]
</IfModule>
不過第二種方法需要 Apache 的 mod_rewrite 模組支援。
四、保護登入頁面
登入頁面的安全是經常討論的話題,由於這是管理站點之門,我們要儘可能的保證這個頁面的安全。下面有一下策略可供參考:
1 、 選擇一個強大的密碼
所謂強大的密碼是指足夠長至少 8 位以上,包含字母和數字,大小寫混合以及一些特殊符合。
2 、經常修改密碼
經常修改密碼是一個好的保證安全的方法。
五、其它需要保護的檔案
下面這些檔案需要保護的:
•.htaccess • .htpasswd • php.ini • PHP scripts • Flash source files (.fla format) • Photoshop files (.psd format) • Log files
採用下面的程式碼可以起到保護作用:
# PROTECT SENSITIVE FILES BY FILE TYPE <FilesMatch ".(htaccess|htpasswd|ini|php|fla|psd|log)$"> Order Deny,Allow Deny from all Allow from 123.456.789.0 </FilesMatch>
這是透過限制副檔名來拒絕訪問。