如何保护你的WordPress网站

By
WP札记

我订阅了比较多的国外设计类网站和博客,其中比较著名的就有web designer wall,常常介绍一些很实用的网页设计小招数,并且它本身的主题也是让我很喜欢的,研究了好长一段时间,并且目前的主题(Android)也是部分参考了他文章中的设计思路。今天看到一篇讲WordPress安全问题的文章:How to Protect WordPress Sites 。读之颇有感触,所以翻译过来供自己消化和朋友们参考。

首先要感谢原作者web designer wall。以下是正文。

WordPress是世界上最流行的内容管理系统(CMS)。并且它是开源的。然而,从原理上来说,WP作为开源软件,是很容易被找出可能被利用的漏洞代码的。因此,WordPress的网站相对来说也比较容易遭到黑客攻击,使用户的声誉和业务受损。但是幸运的是,这么多年的发展,WP目前已经相当安全了,下面提到的一些实践更有助于提高你WP站点的安全性。

保持更新

WP会提醒你有更新,千万别点忽略啊~~保持最新状态,能够保证你安装的WP系统、主题、插件中存在的任何现有漏洞都已经被修补了。

WP会在你登录之后显示更新的通知,比如一些插件或者主题什么的。请更新文件并保持最新。

删除未激活/旧主题和插件

已经安装在WP网上,但没有被激活/旧版本的插件或者主题可能对系统造成安全隐患:他们可能不是最新的,因此会有些可能被利用的漏洞。

最好的办法就是移除目前没有使用的主题和插件,只保留你所需要的。

禁用主题/插件编辑器

能猜出你的管理员登录名和密码的入侵者可能有机会访问你的主题或插件文件,并插入自己的恶意大妈代码。例如 ,他们可以上传或者替换一个或者多个php文件,或在你不知情的情况下修改文件权限。

禁用WP内置的主题和插件的文本编辑器可以确保这些入侵者无法以任何方式去修改你的主题或插件代码。

在你安装WP的目录下,可以发现一个名为wp-config.php的文件,你需要做的就是将下面的代码添加到该文件中(第二行语句请慎用,见下面的更新):

更新(感谢 yywr 同学的测试)关于DISALLOW_FILE_MODS的信息:
DEFINE('DISALLOW_FILE_MODS' , TRUE) ;语句用于禁止安装和更新插件/主题,该语句会使如下的功能失效
update_plugins, delete_plugins, install_plugins, update_themes, delete_themes, install_themes, update_core
所以添加此语句会无法更新/删除/安装插件和主题,并且无法使用更新按钮(因为影响到了update_core)。
一旦添加此语句,会达到禁用主题/插件编辑器和禁止安装/更新插件和主题的双重效果(略显蛋疼的设定)。如果只是想禁用编辑器,单独使用第一个语句即可。

一旦停用,你就不能在WP管理面板里编辑文件了。

保护.htaccess文件

你的.htaccess文件的作用就是网站的门卫。它允许你控制文件的权限,这意味着你可以指定谁有权访问哪个文件或哪个类型的文件。默认情况下,.htaccess是一个在网站根目录下的隐藏文件,你需要使他可见,然后才能编辑他。

当你可以编辑他的时候,把下面的代码添加进去:

这段代码可以确保任何来自外部的人都不能访问你的.htacess文件,从而免受试图去修改你网站文件权限的入侵者。

禁用目录列表

当你在编辑.htacess的时候,不妨同时禁用获取你WP目录列表的功能。

目录列表用于查看所有文件夹的内容,并经常用来整体查看网站。然而,使他们可见并不是啥好功能,因为这意味着人们可以搜索易受攻击的文件,以此来获取可以利用的安全漏洞。

你必须编辑根目录下的.htacess文件,添加如下代码:

这将关闭索引功能,让所有人都无法列出网站内容,使入侵者更难以找到易受攻击的文件。

保护你的wp-config.php文件

如果你曾经打开过wp-config.php文件的话,会发现该文件包含了许多敏感信息。比如你的数据库的用户名和密码,它实际上掌握着你的WP网站的生杀大权。

WP网站的数据库可以通过把wp-config.php文件锁定来得到保护。把下面这段代码添加到.htaccess文件:

这段代码可以防止外部人员访问wp-config.php文件,确保你网站敏感数据的安全。

防止wp-login.php文件被未知IP访问

这是另外一个编辑.htacess可以达到的效果。wp-login.php文件是WP后台面板的门户。默认状态下,你可以从任何的位置访问这个页面,甚是方便,但是,这也是一个巨大的安全隐患。

使用.htaccess文件可以列出一个“白名单”,防止通过未知IP通过尝试猜测密码来入侵网站。

在根目录下的.htaccess文件中,添加如下代码:

把你的IP填充到x位置,如果你知道你的真实IP,应该使用静态的;或者使用动态的,秩序设定允许的IP范围。有很多网站可以提供你的真实IP地址,自己google一下即可。

防止wp-admin被未知IP访问

和为“wp-login.php”创建“白名单”同样的步骤,你可以为WP目录下的wp-admin文件夹创建“白名单”。把如下代码加入根目录下的.htaccess文件既可以禁止未知IP访问wp-admin文件夹:

拒绝扩展名为.exe的可执行文件

可执行文件真的是很麻烦,他们往往包含可以在用户计算机上安扎un个蠕虫病毒的恶意代码,这一同样可以通过使用.htaccess文件来阻挡。把如下代码添加到根目录下的.htaccess文件里。

上面的代码可以防止任何.exe通过服务器被访问,确保你远离这些麻烦的可执行文件。

添加防火墙

和.htaccess的白名单类似,只允许已知IP访问wp-login.php,防火墙将只允许已知IP地址访问你的ftp服务器。你需要联系你的服务器供应商还获取这个设置。

额外的插件推荐

Acunetix WP Security
Login LockDown
AskApache Password Protect
Limit Login Attempts

结论

网站的安全性通常是网站主最后的一件事,但他的重要性不言而喻,应该收到重视来确保WP网站的安全。上面所述只是一个良好的开端,希望会对大家有用。

感谢原作者,原文连接:How to Protect WordPress Sites

Comments: 42

  1. 支持博主 加油了

    2013年12月08日
  2. 这篇文章貌似不够亲切。。。汗。。对黑客可能比较严肃,哈哈。

    2013年12月08日
  3. 腾出时间,也要检查一下博客了, 呵呵。

    2013年12月08日
  4. 能猜出你的管理员登录名和密码的入侵者可能有机会访问你的主题或插件文件,并插入自己的恶意大妈。
    “大妈”躺枪。。。

    2013年12月09日
  5. 表示安全意识薄弱`马克一下

    2013年12月09日
  6. 不错,值得学习哈

    2013年12月11日
  7. 新建站看来得补补漏洞! :arrow:

    2013年12月11日
  8. 静态博客省心~

    2013年12月12日
  9. webdesignerwall是很知名的一个国外设计网站。之前也翻译过几篇文章。

    @jacksuc 2013年12月15日
  10. 这个介绍的网站不错。

    @tiandi_zhang 2013年12月18日
  11. wp有个插件是启用谷歌的二次验证,这个应该比较安全了!

    @hidaodao 2013年12月26日
  12. 非常实用的一篇文章!

    2014年02月10日
  13. >
    多了个右括号。另外,“大妈”还没改。

    2015年01月14日

发表评论

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

*

:razz: