一、保护 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>
这是通过限制扩展名来拒绝访问。