WordPress站点安全解决方案–你的WordPress站点安全吗?
随着WordPress由博客系统转型为CMS系统,再加上无限的资源和个性化主题、插件可供用户选择,国内越来越多的用户开始使用 WordPress搭建自己的博客、CMS站点,甚至于企业站点。但是搭建一个站点没有想象中的那么容易,你的站点是否经常备份、是否针对站点进行了安全 设置?如果你想知道自己的站点是否安全,请仔细检查以下几条:
1、打开浏览器,在地址栏中输入http://你的WordPress安装地址/wp-admin/images/ ,看看有什么效果?
解决方案:在这个目录下放入一个空白的index.html。同样也可以在其他你不想让别人看到的目录中放置index.html,例如wp-content目录。
2、打开浏览器,在地址栏中输入http://你的WordPress安装地址/wp-admin/ ,随意输入用户名和密码,看看你的博客允许你输错多少次?
解决方案:使用Login Lockdown插 件。使用Login Lockdown插件在一定程度上阻止别人测试你的密码,如果探测到一个 IP 段在一时间段内登录失败的次数超过了某一数目,就会自动锁定其登录功能,并禁止此 IP 段的使用者登入系统。这个登录失败的次数和限制登录的时间间隔等,都可以在你的后台设置。
3、是不是任何人都可以打开你的WordPress后台登陆页面?
解决方案:
方法一:限制所有但除了自己的 IP (适用于静态IP用户)
如果你的是一个单一用户博客,你可能需要限制通过 IP 连接 WP‐ADMIN 的权限。请确保你所使用的是静态 IP。WP-ADMIN 中的 .HTACCESS 文件如下:
1 |
Order deny,allow |
2 |
Allow from a.b.c.d #That’s your static IP |
3 |
Please add some example for allowed ip ranges |
4 |
Deny from all |
保存文件,然后试图通过代理访问 wp-admin 目录,应该会被限制连接,然后使用自己的IP 再次连接。如果设置的一切正常,WP‐ADMIN 会被限制连接,除了通过你所设置的 IP。
方法二:需要密码 .htpasswd (推荐解决方案)
当然,推荐的选项是设置密码保护,这意味着你仍然可以在任何地方连接到 wp-admin 目录,但我们增加了一道防线,以防越权操作。
.htaccess 文件 WP‐ADMIN 中的 .HTACCESS 文件如下:
1 |
#this file should be outside your webroot. |
2 |
AuthUserFile /srv/www/user1/.htpasswd |
3 |
AuthType Basic |
4 |
AuthName “Blog” |
5 |
require user youruser #making this username difficult to guess can help mitigate password brute force attacks. |
.htpasswd 文件 正如已经说明的,该文件可以放到网站目录之外的地方,上层目录是个很好的选择。
1 |
$ htpasswd ‐cm .htpasswd blog |
2 |
New password: |
3 |
Re‐type new password: |
4 |
Adding password for user blog |
.htpasswd 文件已经在当前目录中创建了,请确保本文件的地址符合 wp‐admin/.htaccess 中 AuthUserFile 所设置的地址。
现在测试一下看看是否已经工作了。当你试图登录博客时会要求你输入用户名和密码以获得连接权限。如果没有出现的话,查看一下加密密码文件,然后查看所提供的地址是否正确。
4、WordPress后台 – 用户,你的用户列表中是否包括 admin ?
解决方案:你应该把默认的管理员用户名删除或者从 admin 修改为一个更难被猜到的名字,因为现行的 WordPress 版本都很容易因为用户枚举而被攻击。这样做可以缓和暴力破解密码的攻击。注意:你应该假设袭击者会知道你的用户名,所以确保密码足够的复杂。
5、在你博客前台的某个地方是否可以找到你的WordPress后台的登录用户名?
解决方案:WordPress 中有一个很好的方法,就是可以隐藏你的登录名。在“用户”设置中,你可以把你的“对外显示为”更改为你的昵称,这样在你发布文章的时候,给访客回复的时候,显示的就是你的昵称,而不是你的后台登录名。
6、WordPress根目录 wp-config.php 中,以下内容代码中的**部分是否已经包含安全码,或者仍是默认的提示语句(put your unique phrase here)?
1 |
define( 'AUTH_KEY' , '**' ); |
2 |
define( 'SECURE_AUTH_KEY' , '**' ); |
3 |
define( 'LOGGED_IN_KEY' , '**' ); |
4 |
define( 'NONCE_KEY' , '**' ); |
解决方案:使用WordPress.org 私钥生成服务(https://api.wordpress.org/secret-key/1.1/salt/),生成安全码。
7、你的博客是否经常备份,以确保出现意外能够第一时间恢复?
解决方案:使用WordPress Database Backup插件可以很方便的备份你的博客数据库,并定时自动发送到你的邮箱,这样可以防止网站服务器挂了,备份也没了。切记,切勿把备份文件放到服务器!
8、是不是通过查看页面源代码就能够知道你的博客使用了哪些插件?
解决方案:这个要去修改代码源文件,比较麻烦,难度较大。
9、是不是通过查看页面源代码就能知道你使用的WordPress版本?
解决方案:很多的袭击者或自动程序会在实施攻击以前 试图获取软件的版本,去除 WordPress 的版本信息可以使某些基于特定版本进行袭击的袭击者们失去信心。BlogSecurity WordPress Noversion 插件 (bs‐wp‐noversion) 可以防止 WordPress 版本漏洞,是一个简单但超级实用的插件。
注意:该插件可能对那些依赖于 WordPress 版本信息的插件产生影响。
10、你是否给你的博客空间配置了监控,以确保你的博客挂掉了,你也能第一时间获得通知?
解决方案:你可以使用第三方的博客监控服务。你可以自己使用PHP轻松监控你的网站运行状态,具体参考这里。
11、你的WordPress和插件是否都是最新版?
解决方案:如果你的博客程序或插件是直接从开发者的站点获得的,那么你可能已经使用了最新版本,你可以安装 WordPress Plugin Tracker 插件来跟踪插件,查看是否使用了最新版本。安装并激活插件之后,运行该插件查看你是否正在使用最新的插件,截图如下:
如果插件的版本过时了,你会被该插件提醒,点击左边的插件标题就会直接转到对应的插件页面,然后选择是否升级。很简单的保持插件最新的方法。
12、你的WordPress博客是否搭建于免费空间?
解决方案:免费空间,说不定睡一觉做个梦后就挂掉了。现在虚拟主机费用也不是很高,每年一两百元就可以为自己找到一个稳定的住所,童鞋可以考虑一下老薛主机。
13、你的博客空间上是否放置了类似PHP探针的东西?
解决方案:删除或者设置访问权限吧…
14、你的博客页面能否看到这么一句话:Powered By : WordPress
解决方案:该代码一般位于WordPress主题的footer.php文件中,找到对应的代码,删除!
15、你的人品好不好?
解决方案:这个…暂时没有解决方案。
来源:http://www.oome.org/wordpress-site-security-solutions-and-of-your-wordpress-site-safe.html