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

2012/08/27

一、保护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文件中(位于站点根目录下)



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

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

发表评论

邮箱地址不会被公开。 必填项已用*标注