一、保護 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 文件,就會出現一些錯誤信息。

WordPress安全

三、保護 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>

這是通過限制擴展名來拒絕訪問。