一、及时升级你的WordPress
WordPress 和众多软件一样,也需要不断的完善和补充,我们在新版本的正式版或补丁出来时,要及时的安装这些更新,一旦后台提示应尽早升级完成
二、隐藏WordPress版本
编辑你的header.php模板,将里面关于WordPress的版本信息都删除,这样黑客就无法通过查看源代码的防治得知你的WordPress有没有升级到最新版本。
首先在主题的header.php文件中查找关于类似以下代码段的代码,找到后将代码删除:
<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />
<!-– leave this for stats please -->
如果我们找不到类似的代码,并且仍然在查看网站源码的meta生成器标签,可以试着在<head>标签中查找一个PHP函数调用:
<?php wp_head(); ?>
将这个函数的输出结果进行硬编码,因为输出结果不会再改变,我们可以把输出结果存入主题文件。 默认情况下,这个函数会在HTML源代码中输出以下代码:
<link rel="EditURI" type="application/rsd+xml" title="RSD"
href="http://example.com/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml"
href="http://example.com/wp-includes/wlwmanifest.xml" />
<meta name="generator" content="WordPress #versionnumber" />
只要对前面两行代码进行硬编码(如果必要的话)。 这种方法还减少了服务器的系统开销。
三、不用使用默认的WordPress帐户
安装WordPress成功之后,生成的默认的用户名是 admin,登陆到后台之后,第一件事情不是去修改密码,而是从新建一个管理员,然后把admin帐户删除。可以直接在WordPress后台完成,新建管理员帐户的时候,密码设置可以强悍一些,最好删除"admin"用户。现在的wordpress安装时都可以直接修改默认的admin的。
四、设置复杂的管理密码
建议你最好新建一个管理员账号,不要用WordPress 默认的 admin 用户,再建立一个平时仅用于写作的作者,或者后台设置你的昵称,让显示名显示为昵称。这样的话你可以在一定程度上确保你的账号被暴力破解。当然,请记得一定要设置一个复杂的密码。特别是,多个网站密码不可通用。
五、更改wordpress后台登入路径
第一步:登录后台,设置->把安装地址后面加上一个/new。例如:
第二步:在根目录下,建立一个文件夹这是我们起名"new"同时把重要核心文件移置进去(图片、附近URL,可以不用移动)
第三步:把index.php文件,和.htaccess文件,robots.tex等与wordpress没有关联的文件,再次移动根目录下!
第四步:打开index.php文件,修改"require('./wp-blog-header.php');为 require('./new/wp-blog-header.php');"
那登录后台的地址是什么呢?答案:http://你的域名/new/wp-admin;
但是注意:此方法也会有缺点:
1.升级会让人头痛,因为你必须还得把文件移回去,移回去可以升级完成,那当然不错,怕的是出现别的正常规的问题。
2.老用户图片附件会很多,移动目录更不是件轻松的事.
六、加密WordPress相关cookies
密钥生成: http://api.wordpress.org/secret-key/1.1
加密存储在WordPress cookies中的信息也可以巩固WordPress的安全性。我们可以用WordPress密钥生成工具来进行加密。从密钥生成工具中获取随机生成的代码,将代码复制到wp-config.php文件中。这样黑客就不能轻易通过cookie劫持访问我们的WordPress管理界面了。
官方的解释就是它们可以用来增强安全性,为 Cookie 中的用户信息更强有力的加密。实现的方式就是用更多的,更随机的字符串给 Cookie 中密码加密时更难以破解。其实本来的 MD5 加密就足以能防得住绝大多数人的,所以一般可对此置之不理。改了之后会要求登陆时选择了 Remember Me 的用户下次必须重新登陆。
七、安装Login Lockdown插件
安装一款Login Lockdown Plugin插件。这款插件可以记录WordPress网站尝试登陆失败的所有IP地址和时间。 如果短期内某个IP地址登陆失败超过一定次数,该插件会封锁这个IP地址并不再允许来自这个IP地址的登录尝试。
八、经常备份WordPress程序及数据库
这个是基本常识,一旦出问题,还能恢复一些数据。
备份网站资料和数据库非常重要。 我们可以定期以.sql文件格式导出MySQL数据,进行备份,把导出的文件保存到安全的地方。
推荐每天备份一次数据库。即使我们不常更新网站,但也可能随时收到用户评论和引用通告。 但手动备份实在有些无聊,而且有时我们还可能忘记备份, 这时就可以利用插件进行自动备份了。
这里介绍一款 WordPress Database Backup自动备份插件, 用户可以选择 WordPress Database Backup提供的备份周期(包括每小时、每天、每星期、每月等周期)进行资料备份,备份收取方式有多种。 备份过后即使数据库被破坏,我们也可以用备份资料来还原数据库。 目前市面上有很多数据库自动备份工具,我们要根据自己的需求选择合适的工具。(点击阅读>>利用插件全自动备份wordpress空间全站数据和数据库到Dropbox免费网盘)
九、为wp-admin文件添加多重保护
wp-admin文件是WordPress中非常重要的文件,所有关于管理页面的文件都存放在wp-admin文件中。 如果wp-admin文件安全受到威胁,后果会很严重,不仅WordPress安装文件会被破坏,域名上的其它信息也会受到影响。
我们可以用几种方法来锁定wp-admin文件,以免wp-admin文件遭到攻击。 其中一个方法是通过.htaccess文件(供Apache服务器)限制可以访问wp-admin的IP地址,降低遭到攻击的风险。 使用其它类型web服务器(比如IIS,IIS配有一个即开即用的GUI)的用户也需要为wp-admin文件设置相同的访问权限。
首先要在我们常用的文本编辑器或源代码编辑器中新建一个空白文件(Windows Notepad这样简单的文本编辑器同样奏效)。 以.htaccess为扩展名保存新建文件。
我们可以在.htaccess文件中放入以下代码:
order deny, allow
allow from 123.456.78 #Your IP Address
deny from all
然后把文件保存到wp-admin文件夹中。
这种方法相对简单,的确也加强了wp-admin文件的安全性,但如果我们在不同地方操作(于是IP地址也会不同),这种方法就不太方便了。
我们还可以用
AskApachePasswordProtect插件来保护WordPress的管理文件。 这款插件能够提供多种安全防护措施,比如访问任何管理页面都需要用户名和密码, 自动编写.htaccess文件(对不熟悉Apache服务器访问权限的用户来说,这的确非常有用)等。
查看Apache上关于使用身份验证、许可验证以及访问权限的文件,了解如何锁定各种文件。
十、更改WordPress数据库默认表前缀
默认情况下,WordPress用wp_作为MySQL数据库的表前缀。 为了防止SQL遭到攻击,我们最好更改默认的表前缀。 可以使用数字或字母作为WordPress的表前缀。
我们可以在
wp-config.php
文件中改变表前缀的值来更改表前缀。
$table_prefix = 'wp_';
注意,如果我们之前已经安装了WordPress,这时就需要将数据库的表名改成我们在wp-config.php中指定的前缀,此外还要修改options表里部分值(
方法见此),否则网站会停止运行。
十一、为WordPress文件规定正确的文件许可权限
我们要确保服务器上所有文件都具有正确的访问权限。 对于那些可以公开访问的文件,不推荐文件具备写入权限。但有些WordPress插件要求某些文件和文件夹是可以被写入的。
尽量为所有安装文件都设定最严格的许可权限。 通常我们可以将文件权限设为644(表示只读文件)。 权限是777(任何人都可以阅读、写入、执行该文件)的文件很容易成为攻击目标。
我们可以用
WP-Scan插件来监测自己的网站是否有风险。 这款插件可以扫描WordPress博客中的文件权限相关漏洞。
十二、限制搜索引擎对网站内容的索引范围
我们不必将整个网站都纳入搜索引擎的索引范围(黑客可以通过高级搜索语句从搜索引擎中找到各个网站的敏感文件)。 为了避免类似情况发生,我们可以规定搜索引擎爬虫只能够索引域名上的相关文件和文件夹,修改robots.txt文件用Disallow指令禁止引擎爬虫访问以wp-为前缀的文件,如果还有其他自己建立的敏感文件也可以同样设置,关于robots规则和设置具体网络搜下就有。
十三、访问WordPress管理界面时使用安全连接
如果你有必要的话,可以通过加密的SSL连接来登录WordPress控制板, 不过首先要看看虚拟主机商有没有为我们提供SSL证书。 大多数情况下我们需要购买SSL证书,幸好SSL证书价格不算高,而且是物有所值的。
能够进行SSL连接后,我们就可以在相关的管理界面和管理功能中使用SSL连接了,访问管理界面时也可以用
https://而不是
http://。 不过要达到以上效果,我们首先要在
wp-config.php文件中插入以下代码:
define('FORCE_SSL_ADMIN', true);
十四、限制所有人对wp-config.php文件的访问
wp-config.php文件是WordPress安装文件的内部组成部分。 该文件中包含数据库用户名、密码等敏感信息。
在Apache服务器中,我们可以通过.htaccess指令来锁定其他人对wp-config文件的访问权限。 下面的代码可以作为我们的使用范本。
<files wp-config.php>
Order deny,allow
deny from all
</files>
另外我们还可以把wp-config.php文件移到默认安装文件的上一级目录中。 这听起来有点奇怪,不过根据WordPress官方手册中“提高WordPress安全性”一文中的说法,这种做法可以降低安全风险。