这几年来,我听过很多外贸人抱怨自己辛苦建的 WordPress 网站被黑了!甚至有人质疑 WordPress 这种开源的程序是否是建站的最佳选择,因为开源程序总是更容易被黑客研究以及开展攻击手段。
不可否认,开源的建站程序的确存在这种情况,就像任何事物都两面性一样。
被黑客攻击的 WordPress 网站,可能会对公司的业务造成严重损害。黑客可以窃取用户信息,密码,安装恶意软件,甚至是勒索软件。
2016 年 3 月,一份来自谷歌报告称,超过 5000 万网站用户被警告他们访问的网站可能包含恶意软件或窃取信息。此外,谷歌每周月记录 20,000 个恶意软件网站和大约 50,000 个网络钓鱼网站。
所以无论是自建站还是外包建站,一定要特别注意 WordPress 网站的安全性。
一、首先,注意更新 PHP 版本 和 WordPress 版本
为了安全起见,建议 PHP 至少升级到 7.2 版本。当然,参考这篇文章升级到最新的 7.3 版本也 OK。
关于原因,前面写过一篇文章:
WordPress,尽量安装最新版本。如果一直没怎么更新的,建议更新一下。
题外话:关于 Gutenberg(古腾堡)编辑器
WordPress 5.0 起,使用了一个基于 Block 布局的 Gutenberg(古腾堡)编辑器。虽然 WordPress 官方极力推荐这种编辑器,但是 90%以上的用户试用过一阵子后都是感觉非常不习惯。对于很多的 WP 使用者来说,都已经使用习惯了老版本默认的经典的编辑器,使用这种新的编辑器会非常不方便。
于是我们需要安装一个额外的编辑器插件来解决这个问题。在 WP 后台菜单里找到 Plugins(插件),选择安装插件,在弹出的搜索页面输入 Classic Editor,找到这款插件。
安装之后,启用即可。这样编辑器就又变成以前的经典编辑器了。
二、其次,隐藏版本号。
这一步你可以按照下面的代码手动添加代码,也可以使用第四部分所说的 WordFence 插件来完成。对我这种熟练的 WP 用户甚至半个 Developer 来说,肯定是代码搞定,节省一个插件调用。
在你的主题文件夹(如果有子主题并启用了子主题,则在子主题文件夹下)找到 functions.php 文件,使用 FTP 或 XFTP 等工具下载到本地。
使用 notepad++(还没下载安装的去下载安装一下),鼠标右键选择 edit with notepad++。
添加一段代码:
function liao_remove_version() { return ''; } add_filter('the_generator', 'liao_remove_version');
代码的作用是在系统默认显示版本的地方,显示为空。
三、禁止修改 config.php 文件
config.php 文件是 WordPress 的重要配置文件,里面包含了数据库名称,数据库用户名和密码等敏感信息。如果不加以保护,可能会被黑客掌握。
在 WordPress 网站根目录下,wp-config.php 文件内最后添加这行代码,来禁止通过线上方式修改设置:
define('DISALLOW_FILE_EDIT', true );
保存,上传覆盖原 wp-config.php 文件。
但如果你需要安装一些缓存加速插件,则需要把这条代码去除。因为如 WP Rocket 等缓存插件会默认要在 wp-config.php 文件里加上缓存环境所需的代码。
四、安装 All in One WP Security & Firewall 插件
之前在文章中我介绍了 Wordfence 这个插件,但是它设置起来比较繁杂,而且也比较耗费主机资源。
所以,这里换用另外一款插件,All in One WP Security & Firewall。
最新更新:更推荐这款安全插件,不会过多耗费资源拖慢网站速度:Sucuri
这款插件能够帮你完成本文中提到的多个方面的安全防御,并且它的仪表板很整洁,易于操作。
主要特点:
- 防止“暴力破解登录攻击”
- 自动锁定尝试使用虚假信息访问的用户的 IP 地址
- 监控登陆失败行为(尝试登陆的时间和登陆者 IP)
- 一键自动备份数据库
- 开启 Captcha(谷歌验证码)登录
- 阻止访问 wp-config.php 等文件
- 按 IP 和国家/地区阻止用户访问
五、开启 CouldFlare CDN 服务
CouldFlare 是全球知名的 CDN 服务商。CDN 是一种内容分发机制,简单来说就是可以把你网站上的内容预读到离访客国家最近的 CDN 服务器上,加快读取网页的速度。
虽然 CDN 起不到防止黑客侵入的作用,但是可以防范一些扫描和流量攻击。SiteGround 虚拟主机后台自带一键开启 Cloudflare CDN 的功能。不过建议等你建站全部完成之后,再开启。
另外,如果预算充足,还可以开启或升级付费的 Cloudflare CND 服务。
六、其他重要的防黑步骤
还有一些防范措施是 WP 安全插件没有做到的,比如你的用户名和密码。用户名太简单,密码太简单,很多时候都是你网站被轻易攻陷的直接原因。
建议再次耐心阅读之前写过的这篇文章,这里面的一些防范方法,你仍然需要参考,有些是 All in One WP Security & Firewall 插件没有涉及到的防范措施。
当然,上面介绍的 WP 安全插件基本功能中已经覆盖的安全措施,就没必要重复做了。
如此一来,你的网站即可安全无忧。
当然,凡事没有绝对,定期备份才是王道!
本站所有文章除注明“转载”的文章之外,均为原创。未经本站允许,请勿随意转载或用作任何商业用途,否则依法追究侵权者法律责任的权利。
All in One WP Security & Firewall 还是谨慎使用,就在刚刚,这个插件把我拒之门外了,完全无法访问 wp 后台,后续我是通过宝塔禁用了插件才能重新登录后台。看了下上一条信息,才过去一周而已,昨天开始被封,今天才解封。
有个问题可能是因为我的网站被小黑客盯上了,国内的网络环境比起国外真的要差很多,之前我在 siteground 建站,不管不顾几年下来都没人攻击,换到国外三个月让我瞬间学会 N 多防御知识。
所以如果用防护程序,真的还是得留一手,至少要能给自己留一个禁用插件的手段。如果出现拒绝后台访问拒绝的情况,别怀疑,禁用插件就好。
吓得我赶紧卸载 wordfence 换成 All in One WP Security & Firewall
还推荐装 wordfence,做数据库表前缀的修改,不要用默认的 wp_
wordpress 本身不断的升级版本所以安全方面问题不会太大,反倒是各主题插件,特别是那些为了贪图小利而选择免费破解版的主题和插件容易有被侵入的安全隐患,所以支持正版真的是很有必要的。此外很多人的后台登录地址都是默认的域名+wp-admin,可能登录账户密码也是 admin,123456 之类的,再加上又没有 wordfence 等安全防护插件的暴力试错破解防护机制,很容易就被技术人员入侵。
Hello Sam, 自己建的 wordpress 网站,后台取消了 membership 注册,但还是有人能注册为 subscriber,并且如果不删除这个陌生用户的话,过段时间网站就会出现问题,输入网址会自动跳转或者数据库直接停掉,请问您碰到过这种情况吗?怎么解决的呢?
请教几个问题, 料神:
二、其次,隐藏版本号。
这一步你可以按照下面的代码手动添加代码,也可以使用第四部分所说的 WordFence 插件来完成。对我这种熟练的 WP 用户甚至半个 Developer 来说,肯定是代码搞定,节省一个插件调用。
在你的主题文件夹(如果有子主题并启用了子主题,则在子主题文件夹下)找到 functions.php 文件,使用 FTP 或 XFTP 等工具下载到本地。
使用 notepad++(还没下载安装的去下载安装一下),鼠标右键选择 edit with notepad++。
添加一段代码:
function liao_remove_version() {
return '';
}
add_filter('the_generator', 'liao_remove_version');
--------------------------------------------------
请问这段代码是直接复制进去吗 ?
@Ryan 可以装个 code snippet,然后新建一个 snippet,把它黏贴进去。主题的 functions.php 会在更新主题之后被覆盖。
辛苦了, 料大. 每次来逛, 总有收获. Wordfence 以前用过好久, 后面卸载了. 感觉体量太大, 吃内存. 不过用一个好的服务器还是可以的. 一般的 shared hosting 比较吃力.
@Liaosam 谢谢料大. 找时间试试.
还有就是购买正版主题和插件,然后定期更新,很多人为了省钱去某宝上买汉化主题,都是潜在的危险。
推荐一款插件自动更新插件 Companionupdate,不用手动更新插件和主题,可以自动更新。
料神又出干货,WordPress 终极安全防护策略!能否出一篇 CloudFlare 的设置教程?
对于料神的建站技术,必须点 100 个赞。
还是习惯 wordpress 的经典编辑器,虽然新版也有这个选项,但是确实太麻烦,用起来不方便~安装下料神推荐的插件试一下,谢谢!