WordPress详细安全设置

wordpress是一款PHP开源免费的博客平台系统,强大的功能及易用性,受到非常多的博主的青睐,已经成为使用者最多博客系统。虽然wordpress在安全方面已经做得不错,但我们还是有必要加强安全设置,因为漏洞是一定会存在的,只是还没有发现。所以我们必须对wordpress进一步的安全加固,以避免因为漏洞而遭到不必要的损失。

一、更新wordpress

wordpress每更新一次,大都会伴随着程序漏洞的修补和安全问题的解决,所以非常有必要及时地更新到最新版本,以免黑客利用旧版本已发现的漏洞进行入侵。

二、设置复杂的密码

提高安全意识可以避免许多潜在的安全隐患,比如密码的选取。我们有必要为wordpress后台选取一个强口令,以防止被破解。
一个强口令包括:
1、至少有15个字符
2、包含大写字母
3、包含小写字母
4、包含数字
5、包含特殊符号,如` ! ” ? $ ? % ^ & * ( ) _ – + = { [ } ] : ; @ ‘ ~ # | \ . ? /
6、不能与上次密码相似
7、不能包含你的名字
8、不能包含你朋友的名字
9、不能包含家庭成员的名字
10、不能包含你的生日,手机,身份证等信息

我们可以通过http://strongpasswordgenerator.com/网站自动生成强口令。

三、使用sftp代替ftp

sftp是通过安全加密传输文件的,防止黑客窃取到敏感文件,普通的ftp是明文传输,一旦黑客成功截取数据包,文件将明文地呈现出来。sftp是sshd的一部分,如果你拥有通过ssh帐号管理空间的权限,意味着可以使用sftp传输文件了。

四、文件权限设置

文件权限设置说明参考:https://www.centos.bz/2011/12/setup-secure-website-permissions/
wordpress文件权限设置涉及到几个目录:
根目录 /,/wp-admin/,/wp-includes/ :
所有的文件应该设置为只有自己的用户帐号有写入权限,其它的只设置有读权限。
/wp-content/:
用户目录,可以设置为所有用户可写。
/wp-content/themes/:
主题目录,如果你需要在后台使用主题编辑器,需要设置为可写。
/wp-content/plugins/ :
插件目录,设置只有你的用户帐号可写。
提示:wordpress全站目录不需要可写都可以正常运行,所以建议设置为全站不可写,当需要自动升级,安装主题或插件时,可以临时设置为可写,之后再关闭写入权限即可,这是最安全的设置。

五、数据库安全

如果服务器运行有多个网站,并且用到mysql数据库,建议为各个数据库指定一个低权限的用户。数据库用户需要的权限有:Alter,Delete,Create,Drop,Execute,Select,Update。
具体添加mysql数据库的命令为:
不需要远程连接:

  1. grant Alter,Delete,Create,Drop,Execute,Select,Update on dbname . * to 'username′@'localhost' identified by 'password';

需要远程连接:

  1. grant Alter,Delete,Create,Drop,Execute,Select,Update on dbname . * to 'username′@'client-ip' identified by 'password';

六、后台wp-admin安全设置

后台wp-admin安全的设置有人建议修改后台的地址,这虽然可行,但比较麻烦,而且升级wordpress会遇到困难。所以我们一般不建议修改后台地址。这里使用三步实现wp-admin后台的安全设置。
1、后台设置服务器端密码认证。
当访问wp-admin后台时,需要输入用户和密码才行进入后台,这阻止了黑客暴力破解wordpress后台密码的可能。
nginx设置方法如下:https://www.centos.bz/2011/12/nginx-http-auth-basic/
apache设置方法如下:https://www.centos.bz/2012/04/apache-password-access/。
2、强制使用ssl登录后台。
如果你的网络不安全,使用http明文登录后台的话,有可能被黑客监听到用户和密码。如果使用https传送密码,则可以避免这种潜在安全隐患。
设置方法:https://www.centos.bz/2012/04/force-wordpress-admin-with-ssl/
3、只允许指定ip登录后台
这应该是非常好的安全设置。如果有可能,即你的工作地址相对固定,可以设置只允许指定的ip或ip段登录后台,这将极大地增强后台的安全性。
nginx设置方法:https://www.centos.bz/2011/12/nginx-deny-or-allow-ip/
apache设置方法:https://www.centos.bz/2012/04/apache-order-deny-allow/。

七、wp-include wp-config.php

对于wp-include目录的保护,我们可以使用apache的mod_rewrite或nginx的location禁止任何用户访问wp-include的文件。
apache设置方法:

  1. # Block the include-only files.
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteRule ^wp-config\.php - [F,L]
  5. RewriteRule ^wp-admin/includes/ - [F,L]
  6. RewriteRule !^wp-includes/ - [S=3]
  7. RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
  8. RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
  9. RewriteRule ^wp-includes/theme-compat/ - [F,L]

八、隐藏式安全

1、隐藏wordpress版本
隐藏wordpress的版本好处是防止黑客根据你的版本查找相应的漏洞进而发起攻击。操作方法参考:https://www.centos.bz/2012/04/wordpress-hide-version/
2、重命名管理者账号
为了防止黑客暴力破解后台密码,最好还是不要使用默认的admin帐号。修改默认帐号的方法可以通过mysql命令行执行命令:

  1. mysql> UPDATE wp_users SET user_login = 'newuser' WHERE user_login = 'admin';

或者可以直接使用phpmyadmin可视化操作。
3、更改 table_prefix(表名前缀)
更改默认的表名前缀wp_可以防止sql注入攻击。

九、数据备份

不要指望把上面的设置完成就可以高枕无忧了,我们还是必须保持对数据的备份,以便数据丢失或黑客挂马时能迅速地恢复。对于数据备份的方法,可以参考:https://www.centos.bz/category/backup/
参考:http://codex.wordpress.org/Hardening_WordPress

标签:WordPress 发布于:2019-11-23 20:35:18