安全是永恒的话题,在互联网上更是如此,本文将为大家介绍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文件前请先备份,然后打开并粘贴下面代码: order allow,deny deny from all 修改后会拒绝任何对 wp-config.php 文件的访问。 4.建立访问黑名单。 是不是常被一些垃圾评论制造者所烦恼?如果是,需要做的就是屏蔽他们的IP,让他们再也无法访问你的博客。 解决:修改.htaccess文件添加以下代码,事前别忘备份。 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 修改后上面这些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错误。 安全是永恒的话题,在互联网上更是如此,本文将为大家介绍10个小诀窍来提高WordPress博客的安全性。昨天介绍了前5个,今天继续后5个。 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文件夹下,进入后台开启这个插件。
/* 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 注意修改后并不会影响用户正常的访问这些文件。 |