WordPress安全终极指南

前段时间,Wordpress4.8发布之前,一天早上我打开自己一个网站,发现莫名多出两篇文章,英文一篇,另一篇应该是俄文,英文那篇大概是和某个不知名化妆品有关。

知道被黑了,于是去Google解决方法,删文章,重置管理员账号,装WordFence一扫,发现系统里多出一个文件,瞻仰其中代码,删之。升级Wordpress到4.8,重置主机所有Linux账号,重置ssh认证密钥,以防万一。

折腾了一阵,学到了东西,下面是Wordpress安全终极指南,参考了网上一些文章。

用靠谱主机

为什么

不靠谱的主机之所以不靠谱,是因为投入少或无投入。物理机放在低端机房,拿个裸机挣钱,要防火墙没防火墙,系统不更新,软件不更新,漏洞不补,找个月薪八百块的小孩儿维护,或者长期放羊,无人维护。

现在互联网上的Wordpress攻击已经高度自动化,再小的网站都是目标,主机公司更是大目标。世界上有哪些主机公司,位置,IP段,防护措施,黑客人手一份,主机公司一水,黑客自动脚本一扫,一死一大片。

怎么做

永远不用“免费”主机,这种服务商自己就是半个黑客。

用具备安全措施的主机,没钱就用基本款,对普通网站也够,如国外的 FastcometSiteGround,有钱的大户就用全托主机如国外的WPEngine

 

WordPress靠谱主机

 

自动更新WordPress核心,插件和主题

为什么

WordPress安全吗?安全。WordPress完美吗?不完美。越流行,越容易被盯上,越被盯上暴露的问题越多,这既是坏事也是也是好事。

重要的是保持更新。

核心代码,流行插件和主题,几乎每天都在迭代,不少都是修复安全漏洞,曾经就有极速修复的例子

长期不更新,版本落后会留下安全隐患,理论上被黑只是时间问题。保持核心,插件,主题自动更新,能防患于未然,更新不只填补漏洞本身,有时还强迫黑客程序重写,更改攻击机制,从而增加攻击难度。

怎么做

安装自动更新插件Companion Auto Update,可实现无人值守的WordPress核心,插件和主题自动更新。

 

配置自动备份

为什么

作最坏打算,定期自动备份整站,一旦网站被黑,至少有数据可以恢复,留得青山在。

最糟糕的情况是受了攻击,网站彻底变鸡,却发现无法备份,之前也没有留任何备份。

怎么做

安装自动备份插件 UpdraftPlus

可设置日备,并将备份数据加密上传到多种第三方存储平台。

 

自动安全扫描

为什么

黑客程序搞定你的网站后,是不会发邮件通知你的。

网站有没有安全渗透,不能靠肉眼,因为很多渗透没有现象也没有征兆,更不能靠感觉。

安全渗透应该用专业的工具“扫”出来。

怎么做

装安全插件 如 WordFence。安全插件能做的事,除了自动扫描还有很多,可以仔细查看插件配置页面。

用扫描工具 如漏洞测试工具

没事扫一扫。

 

过滤垃圾评论

为什么

多数垃圾评论的目的并非打广告这么简单,而是把评论内容写得像广告,实际嵌入了恶意代码进行XSS攻击,这样的评论如果流入正常用户的浏览器,就有可能带来危害,如果是权限较高的用户,网站就可能被渗透。

怎么做

装好WordPress立即打开Akismet插件。

审核用户评论,在设置->讨论中可以配置。

 

降低插件使用风险

为什么

非官方的插件危险系数高,不可随便下载安装,先确认插件源可信。

安装的插件不激活,不代表没有风险,因为代码漏洞不依赖插件是否激活。

怎么做

尽量从官网安装插件,避免从不明来历第三方网站下载插件。

及时删除不用的插件,尽量避免在生产环境测试插件,控制插件使用数量。

 

用安全性更高的管理员帐号

为什么

你的网站有了一点流量,每天几百IP,如果有请求监控,你会发现总有几个熟悉的IP反复访问/wp-admin,这些访问一般来自黑客的肉鸡,请求是肉鸡上的自动脚本在猜你的登陆帐号密码。

为什么这些自动脚本这么有信心有恒心?

这是我随便google到的地球上用得最多的密码组合,2016年“123456”的风头盖过了“password”:

怎么做

避免使用“admin”作为管理员账号,这是黑客程序必试的账号,用只有自己知道的账号名,这个小小的改变,能让猜密码的黑客程序头痛指数增加N倍,理论上猜账号和猜密码一样难。

用安全性更高的密码,不复用密码。

限制密码尝试次数,安装登陆重试次数限制插件Login LockDown

保护wp-admin目录,再设一道密码保护,在你的虚拟主控制面板里找“目录密码保护”的选项。

 

替换默认登录入口

为什么

WordPress默认登录地址为 /wp-admin 和 /wp-login.php,网上大量黑客程序以它们为渗透目标。

怎么做

安装 WPS Hide Login 插件,可以禁止 /wp-admin 和 /wp-login.php 访问,并把登录入口修改成自定义URL。

 

强制用户使用https协议

为什么

后台登录输入的用户名密码不应明文传输,尤其当你使用代理时,敏感信息可能被中间人截获。

怎么做

配置web服务器,打开SSL证书,虚拟主机一般都提供免费SSL证书,点点鼠标就能搞定。如果用VPS也可以用Let’s Encrypt生成,把所有http流量自动重定向到https。

 

避免使用默认数据库前缀

为什么

有一类工具叫SQL注入,黑客利用某个插件输入框的安全漏洞,通过恶意SQL语句直接修改网站数据库。这类语句通常假设数据库表前缀为wp_,这是WordPress安装时的默认前缀。

怎么做

安装WordPress时,避免使用默认的wp_数据表前缀,可以使大量SQL注入工具失效。

 

关闭文件编辑

为什么

WordPress默认允许管理员帐号修改主题或插件源文件,一旦管理员帐号被渗透,理论上黑客可以通过这个功能修改这些文件,执行任何他想执行的代码,比如注入木马,留后门。

怎么做

彻底关闭这个功能,通过在wp-config.php中加入:

define('DISALLOW_FILE_EDIT', true);

 

关闭.php文件直接访问权限

为什么

一旦黑客发现某个php源文件有漏洞,就可以通过直接访问之反复尝试渗透,尤其是上传文件夹这样的敏感位置(/uploads)。如果关闭,那么即使漏洞存在,黑客也无能为力。

怎么做

在.htaccess文件里添加针对敏感目录的规则,禁止直接访问.php文件:

<Directory "/var/www/wp-content/uploads/">

  <Files *.php>

    Order Allow, Deny

    Deny from all

  </Files>

</Directory>

 

关闭XML-RPC

为什么

XML-RPC是WordPress向外暴露的调用,Pingback和Trackback功能依赖这组调用,但会被黑客程序拿来来做蛮力攻击或者DDos。

怎么做

安装Disable XML-RPC插件,可彻底关闭XML-RPC。普通网站Pingback和Trackback功能意义不大,所以关掉XML-RPC也没有关系,除非你确定它需要打开。

 

总结

WordPress安全最重要的事,一是保持自动更新,二是使用安全插件定期扫描,三是备份。做到这三点,基本可保网站不被渗透。剩下的措施可以根据网站情况决定是否配置。

 

(2 votes, average: 5.00 out of 5)
Loading...

 

 

有问题请评论留言,或加微信:itlangren

6 thoughts on “WordPress安全终极指南

  1. 用安全性更高的管理员帐号

    有个方案叫Two-factor authentication,几乎可以杜绝恶意登录。有对应插件,但是需要管理员安装Google Authenticator。

    过滤垃圾评论

    过滤是发生在垃圾评论后了。装个验证码插件可以在垃圾评论来之前拦截掉大部分机器人Poster。比较靠谱的是Google的验证码。但是为了照顾国内的放我者,我的博没用Google的验证码。

    暂时补充这两点。

Leave a Comment

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