WordPress安全部署教程禁止访问敏感文件

一、保护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.

二、保护install.php文件

在安装wordpress的过程,这install.php文件用于指定站点标题和email地址。一旦这个信息输入后,wordpress显示用户名和密码输入界面。不幸的是,在有些数据库中,wordpress可能会认为还没有安装,所以会重新装载install.php文件。虽然这种情况非常少,但是仍然会暴露出安全问题,下面击中方法可以解决这个问题:

  1. 最简单的方法就是删除wp-admin/install.php,安装后这个文件就不需要了。
  2. 使用htaccess文件限制访问

把下面代码粘贴到.htaccess文件中(位于站点根目录下)

# 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>

这是通过限制扩展名来拒绝访问。

我们将在15分钟内联系你

免费提供行业网站方案以及海外推广计划