提高WordPress安全性的十个要点

发表时间:2010-07-05内容来源:站长资讯收集整理

安全是永恒的话题,在互联网上更是如此,本文将为大家介绍10个小诀窍来提高WordPress博客的安全性。

1.删除错误提示。

当我们登录WordPress后台失败 时会显示错误信息。如果有人想攻击你的博客那么他们会从错误提示里得到很多有用的信息,我们需要做的就是不显示任何信息。

解决:打开 functions.php 文件并添加如下代码:

add_filter(‘login_errors’,create_function(‘$a’, “return null;”));

这段代码可以让返回的错误信息为空。

2.使用SSL。

如果你担心数据泄露或被截获,那就使用 SSL连接方式吧。但是之前请确保博客主机支持SSL,如果不支持请直接跳过本条。

解决:打开 wp-config.php 文 件(一般位于根目录)添加以下代码:

define(‘FORCE_SSL_ADMIN’, true);

我 们定义了FORCE_SSL_ADMIN常数,其值设置为true。这样就在WordPress里开启了SSL。

3.用.htaccess 保护配置文件。

WordPress 用户都知道wp-config.php文件的重要性,它保存了所有的配置信息:用户名、密码等等。所以控制对 wp-config.php 的 访问权限就变得尤为必要。

解决:在修改.htaccess文件前请先备份,然后打开并粘贴下面代码:

<files wp-config.php>
order allow,deny
deny from all
</files>

修改后会拒绝任何对 wp-config.php 文件的访问。

4.建立访问黑名单。

是不 是常被一些垃圾评论制造者所烦恼?如果是,需要做的就是屏蔽他们的IP,让他们再也无法访问你的博客。

解决:修改.htaccess文 件添加以下代码,事前别忘备份。

<Limit GET POST PUT>
order allow,deny
allow from all
deny from 123.456.789
deny from 93.121.788
deny from 223.956.789
deny from 128.456.780
</LIMIT>

修 改后上面这些IP就会被限制访问。

5.防止脚本注入。

脚 本注入往往用来窃取用户信息,如果攻击者一旦得逞大多数情况下造成的损失很难挽回。

解决:依旧是.htaccess 文 件添加以下代码,事先备份。

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

修改后所有的请求都会被检查是否包换脚本段,如果包含就会拒绝 请求返回403错误。

6.防止图片盗链。

大多数虚拟主机和 VPS都是限制流量的,而图片往往会消耗绝大部分流量。我们在希望自己文章被更多人访问和传播的同时又不得不去面对图片链接带来的巨大流量。所以防止图片 外链是绝对必要的。

解决:修改 .htaccess 文件添加以下代码,之前一定记得备份。

RewriteEngine On
#Replace ?mysite\.com/ with your blog url
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Replace /images/nohotlink.jpg with your “don’t hotlink” image url
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

修改完成之后只有你的网站可以引用图片,而其他 外部引用都会被替换为nohotlink.jpg 文件。你可以在nohotlink.jpg 里展示版权信息。当 然你也可以指定替换为一个不存在的文件。

7.创建一个 插件来阻止恶意请求。

黑客往往使用恶意查询来修着博客的薄弱点用来攻击,虽然WordPress自身有比较完善的防 护机制,但也不是没有提高的余地。

解决:创建一个文本文件粘贴以下代码,并保存为 blockbadqueries.php 。 上传到你博客的wp-content/plugins文件夹下,进入后台开启这个插件。

<?php
/*
Plugin Name: Block Bad Queries
Plugin URI: http://perishablepress.com/press/2009/12/22/protect-WordPress-against-malicious-url-requests/
Description: Protect WordPress Against Malicious URL Requests
Author URI: http://perishablepress.com/
Author: Perishable Press
Version: 1.0
*/

global $user_ID;

if($user_ID) {
if(!current_user_can(‘level_10′)) {
if (strlen($_SERVER['REQUEST_URI']) > 255 ||
strpos($_SERVER['REQUEST_URI'], “eval(“) ||
strpos($_SERVER['REQUEST_URI'], “CONCAT”) ||
strpos($_SERVER['REQUEST_URI'], “UNION+SELECT”) ||
strpos($_SERVER['REQUEST_URI'], “base64″)) {
@header(“HTTP/1.1 414 Request-URI Too Long”);
@header(“Status: 414 Request-URI Too Long”);
@header(“Connection: Close”);
@exit;
}
}
}
?>

修 改后如果有过长请求(超过255个字符)或者URI中存在PHP函数就会返回一个414错误。

8.删除你的WordPress版本号,切记!

WordPress 会在头文件里显示版本号。告诉攻击者你版本号往往意味着他们可以少走很多弯路,为了不让他们长驱直入为什么不隐藏版本号呢?

解决:粘贴如下 代码至 functions.php 文件,保存并刷新你的博客。

remove_action(‘wp_head’, ‘wp_generator’);

现在看,是不是没有版本号了。

9.修改默认管理员名。

蛮力攻击是破解一个密码最简单的办法 之一。 该方法很简单:尽可能多的尝试不同的密码。如果他们知道的用户名,他们只需要破解密码。 这就是为什么你应该改变默认的“管理员”用户名——“admin”的原因。请注意,WordPress的3.0版本会让您选择您想要的默认用户名。 但是这个方法依然适合3.0以前的版本。

解决:打开数据库执行如下SQL语句,“Your New Username”为你想修改的用户名。

UPDATE wp_users SET user_login = ‘Your New Username’ WHERE user_login = ‘Admin’;

修改后使用 新的管理员名户名登陆。

10.防止目录浏览。

默 认情况下,大多数主机允许目录列表。 因此,如果在浏览器的地址栏键入www.yourblog.com/wp-includes,就会看到在该目录下的所有文件。 这无疑是一个安全风险,因为黑客可以看到上一次进行了修改的文件并访问它们。

解决:修改 .htaccess 文件添加 以下代码,之前一定记得备份。

Options -Indexes

注意修 改后并不会影响用户正常的访问这些文件。

  • 站长资讯刊登此文只为传递信息,并不表示赞同或者反对作者观点。
  • 如果此内容给您造成了负面影响或者损失,本站不承担任何责任。
  • 如果内容涉及版权问题,请及时与我们取得联系。

文章评论

共有 位CH网友发表了评论 查看完整内容