Home > wordpress支持, 今日一点 > 学习 WordPress安全白皮书

学习 WordPress安全白皮书

August 12th, 2008

酋长的Blog中看到介绍 WordPress安全白皮书

关于WordPress的安全性,一直有组织在研究,比如BlogSecurity,他们发布的《WordPress安全白皮书》更是关于WordPress安全的一次总结,让人高兴的,国内热心的朋友把白皮书翻译成了中文,所以各位朋友可以很轻松的阅读。白皮书写的很详细,WordPress介绍,安装,使用WordPress的细节等等,详细而系统的讲解了如何做一个安全的WordPress博客。中文版《WordPress安全白皮书

这里不是把内容重复一遍,而是结合实际(比如偶)来记录下学习笔记 :)

安装WordPress

对于虚拟机的用户来说 “安装WordPress” 中自己先使用root创建数据库,然后创建限制用户来给Wordpress的步骤就可以免了,因为你大多情况下就是使用的限制用户!

编辑wp-config.php文件,添加AUTH_KEY ,SECURE_AUTH_KEY和LOGGED_IN_KEY 的值。内容可以到http://api.wordpress.org/secret-key/1.1/ 来生成!

手动修改数据库表前缀,这个建议在安装的时候就搞好,要不你已经安装过想改的话就用里边介绍的直接用phpmyadmin来操作数据库,或者用他给的插件WP Prefix Table Changer 来搞。Alpha 版本的插件,难免存在 bugs。酌情使用 :o

创建非管理员权限用户日常使用,修改默认管理员名字(默认为admin)。其实不用像文档里说的那样复杂的操作数据库改名,你只要在创建个用户设为管理员,然后直接进去把admin删掉就可以啦,要还想弄个假体的,就在创建个普通的admin用户或者直接修改权限为普通的用户来。

im-web-gefunden 的 Role manager 插件功能的确很了得,哇哈哈,见识ing。

强化安装WordPress

主要是对管理区域进行限制操作。

限制 wp­content 和 wp­includes

限制目录权限,拒绝所有的东西,除了对图片,CSS 和一些 JavaScript文件的请求。

考虑到性能问题,不建议使用.htaccess来做限制,使用.htaccess文件, 则Apache需要在每个目录中查找.htaccess文件,因此,无论是否真正用到,允许使用.htaccess文件都会导致性能的下降。另外,每次请求一个页面时,都需要读取.htaccess文件。

把以下的代码放到你的 .HTACCESS 文件中,这些 .HTACCESS 文件应该放在 WP‐CONTENT 和
WP‐ INCLUDES 目录下:
Order Allow,Deny
Deny from all
<Files ~ “.(css|jpe?g|png|gif|js)$”>
Allow from all
</Files>
这个办法很了得,学习啦 ,嘿嘿,

限制 wp­admin

限制所有但除了自己的 IP
如果你的是一个单一用户博客,你可能需要限制通过 IP 连接 WP‐ADMIN 的权限。请确保你所使用
的是静态 IP(注意ing)。WP-ADMIN 中的 .HTACCESS 文件如下:
Order deny,allow
Allow from a.b.c.d #That’s your static IP
Please add some example for allowed ip ranges
Deny from all
保存文件,然后试图通过代理访问 wp-admin 目录,应该会被限制连接。

经测试这个方法很准很有效 呵呵,以前还真不知道这也能限制ip哈哈。不知道有没有办法绕过去呢。

需要密码 ­ .htpasswd

当然,推荐的选项是设置密码保护,这意味着你仍然可以在任何地方连接到 wp-admin 目录,
但我们增加了一道防线,以防越权操作。

.htaccess 文件

WP ‐ ADMIN 中的 .HTACCESS 文件如下:
#this file should be outside your webroot.
AuthUserFile /srv/www/user1/.htpasswd
AuthType Basic
AuthName “Blog”
require user youruser #making this username difficult to guess can help mitigate password
brute force attacks.

.htpasswd 文件

正如已经说明的,该文件 可以放到网站目录之外的地方,上层目录是个很好的选择。
$ htpasswd ‐cm .htpasswd blog
New password:
Re‐type new password:
Adding password for user blog
.htpasswd 文件已经在当前目录中创建了,请确保本文件的地址符合 wp‐admin/.htaccess 中
AuthUserFile 所设置的地址。

当你试图登录博客时会要求你输入用户名和密码以获得连
接权限。如果没有出现的话,查看一下加密密码文件,然后查看所提供的地址是否正确。

这个办法我暂时不测试啦,

SPAM(垃圾留言),有很多的插件可供选择,我们建议你使用以下的一种或两种:
Akismit – Automattic 的防垃圾留言插件(需要提供 API key)
SpamBam – BlogSecurity 的防垃圾留言插件

Blog 加密

这个一般人用不起呢,呵呵

需要注意的是:一旦安装了 SSL(HTTPS),我们还需要安装一个插件,使得我们登录时自动转向对应的 HTTPS 协议地址。

去除 WordPress 版本信息

可以不使用他介绍的插件,而仅仅在模板的functions.php中添加hook调用就可以,代码如下:

<?php remove_action(’wp_head’, ‘wp_generator’); ?>

安全扫描

在blogsecurity上边提供啦个WordPress 在线安全扫描( WordPress Scanner)如果有兴趣可以去看看,呵呵。

总的来说收获不少,呵呵,希望大家能亲眼看看那文档,虽然有些东西对自己不适用,不过那个整体的安全思考还是可以要领会一下的。

, ,

转载原创文章请注明,转载自:Lin’s空间|Only[http://clin003.com]

本文链接: http://clin003.com/wp-use/learning-wordpress-security-whitepaper-1438/

你有啥想法就说出来吧,只要不是ad就不会k掉你的o(∩_∩)o...哈哈

Google比较注重原创性和时效性,若非需要的内容可以尝试下以下搜素。

  1. August 12th, 2008 at 20:46 | #1

    不错的介绍 :)
    看似挺简单了点,不过还是挺实用的

  1. No trackbacks yet.