WordPress 安全加固全攻略:从登录到文件权限

WordPress 是全球被黑最多的建站程序,不是因为它不安全,而是用的人多、默认配置太松。小够这篇从登录保护、插件主题、文件权限、服务器层面、备份五层讲加固,每一步都能直接照做,附常见问题解答。

我是小够,只推够用的 VPS。

WordPress 驱动着全球四成以上的网站,也因此成了黑客的"提款机"。但说句公道话:WordPress 本体其实不脆弱,被黑的站,九成是配置问题——弱密码、万年不更新的插件、777 权限。今天这篇从登录、插件、文件、服务器、备份五层讲加固,全部能直接照做。

第一层:登录入口(被爆破的重灾区)

WordPress 登录页 wp-login.php 是全网扫描器的重点目标,爆破脚本 24 小时不停。守住登录入口,挡掉九成自动化攻击。

1. 用户名别用 admin。WordPress 默认的管理员用户名 admin 等于告诉黑客"我已经猜对一半了"。新建一个不常见的管理员账号,把文章作者转移过去,然后删掉 admin。新建账号的用户名也别用网站名、别用邮箱前缀,越没规律越好。

2. 强密码是底线。16 位以上随机密码(大小写+数字+符号),存在密码管理器里。不要用生日、网站名、123456 这类——爆破字典里全都有。后台所有管理员账号都要强密码,编辑、作者账号也一样,黑客不挑账号,哪个弱就进哪个。

3. 登录失败锁定。装一个登录保护插件(如 Limit Login Attempts 系列),设置 5 次失败锁定 IP 30 分钟。暴力破解脚本扫到你,会自动换下一个目标——黑客也是讲"性价比"的,难啃的骨头就跳过。

4. 给 wp-login 加第二道锁。用服务器面板的"密码保护目录"功能,给 /wp-login.php 再套一层 HTTP 认证。黑客要先过面板这层,才能看到 WordPress 登录框,爆破成本翻倍。这招对自动化脚本尤其有效。

5. 改后台地址(可选)。用插件把 wp-admin 改成自定义路径。注意:这只是"障眼法",防不住定向攻击,但能挡掉 99% 的自动化扫描。配合上面的几层用,效果叠加。

第二层:插件和主题(最大漏洞来源)

公开的安全报告年年都显示:WordPress 被黑,插件漏洞占大头。记住四条铁律:

1. 只从官方仓库装插件。别用"破解版高级插件"——破解版是挂马的重灾区。你以为省了几十块,实际上是把后门亲手装进了网站。修一次被黑的站,找人清理至少几百起步,这账很好算。

2. 定期更新。WordPress 核心的小版本更新开自动;插件每月至少检查一次更新。更新前先备份(见第五层),更新完看一眼前台正不正常。更新不是可选项——每个安全更新背后,都是一个已被公开的漏洞,黑客的利用脚本往往几天内就出来了。

3. 删掉不用的。停用的插件和主题不是"放着没事",它们照样是攻击面:代码还在服务器上,漏洞照样能被利用。不用的就删,删干净。顺手把 WordPress 自带的、用不上的默认主题也删了,只留一个备用。

4. 控制插件数量。插件不是越多越好,每多一个插件就多一个攻击面、多一份兼容风险。能用代码片段解决的,别装插件;功能重叠的插件,留一个删一个。小够的经验:个人博客 10-15 个插件是健康线,超过 20 个就要审视了。

主题同理:只用官方仓库或口碑好的商业主题,别下"免费破解主题"。换主题前同样先备份。

第三层:文件权限(很多人忽略)

VPS 上 WordPress 的文件权限,推荐这套:

  • 目录:755
  • 文件:644
  • wp-config.php:600(只有属主可读写,里面可是有数据库密码)

永远不要 777。777 等于告诉服务器"谁都能写",一个上传漏洞就能往你站里写马。用面板建站的话,面板一般会自动设好权限,重点检查 wp-config.php 和上传目录(wp-content/uploads)。

另外,在 wp-config.php 里加两行,禁止后台直接编辑主题/插件文件:

define('DISALLOW_FILE_EDIT', true);

很多挂马就是从后台"外观→主题文件编辑器"进去的——黑客拿到一个编辑账号,直接在后台写马。关掉这个入口,等于堵住一条大路。

再进一步:wp-content/uploads 目录禁止执行 PHP。在 Nginx/Apache 配置里加一条规则,上传目录只允许访问图片等静态文件。就算黑客上传了 webshell,也执行不了——这是纵深防御的经典招数。

第四层:服务器层面(VPS 自己的功课)

网站安全不只是 WordPress 的事,服务器本身也要守:

  • SSH 只用密钥登录,禁用密码登录,改默认 22 端口。服务器被入侵,WordPress 配得再好也没用。
  • 防火墙只开必要端口:80、443 和你改过的 SSH 端口,其他全关。面板端口别对全网开放。
  • 系统和软件及时更新:apt upgrade 定期跑,Nginx、PHP、MySQL 的安全更新别拖。
  • 装 fail2ban:自动封禁爆破 SSH 的 IP,和 WordPress 的登录保护是同一思路,管的是服务器大门。

这层的逻辑:服务器是地基,WordPress 是房子。地基塌了,房子装修得再好也没用。

第五层:备份(最后的救命绳)

前面四层是"防",这一层是"万一防不住"。备份要做到:

  • 文件 + 数据库都要备。只备文件没有数据库,恢复出来是个空壳;只备数据库没有文件,主题插件全丢。
  • 异地备份。备到对象存储或另一台机器,别只放本机——服务器要是整个挂了,本地备份跟着陪葬。
  • 自动化。手动备份坚持不过三个月,用面板计划任务或 cron 定时执行,每天凌晨自动跑。
  • 定期演练恢复。备份了不等于能恢复,每季度拿测试环境恢复一次,确认备份包是好的。没演练过的备份,等于没备份。

第六层:CDN 与 WAF(锦上添花)

前面五层是"自身硬",这一层是"借外力":

  • CDN:把网站套上 Cloudflare(免费版就行),能挡掉海量自动化扫描和 DDoS。很多爆破脚本扫的是源站 IP,套上 CDN 后它们连你的真实 IP 都找不到。
  • WAF 规则:Cloudflare 免费版自带基础 WAF,能拦 SQL 注入、XSS 这类常见攻击特征。宝塔的 Nginx 防火墙也有类似功能,开基础规则就行。

注意顺序:CDN 是第六层,不是第一层。见过太多人 CDN 套得飞起,密码还是 123456——本末倒置。先把前面五层做到位,CDN 只是让你"更省心",不是"可以不做"。

另外套上 CDN 后,记得在服务器防火墙里只允许 CDN 回源(Cloudflare 会公布它的 IP 段),把 80/443 对全网的直接访问关掉。不然攻击者绕过 CDN 直连你的源站 IP,CDN 等于白套——这是很多人配了 CDN 还是被打的原因。

第七层:供应链安全(进阶,但值得知道)

前面都是"你的站",这一层是"你用的别人的代码":

  • 插件/主题的来源:只从官方仓库或可信的商业渠道获取。网上流传的"破解版"“汉化版”,经常被植入后门——你以为装的是插件,其实是给黑客留的门。
  • 更新渠道:保持 WordPress 官方更新通道畅通,别用"去版权版"“优化版"这类改过的核心程序——改过的代码,你不知道它改了什么。
  • 第三方 JS:主题/插件引用的外部 JS(统计、字体、广告),如果那个第三方被黑,你的站跟着中招。定期检查外链 JS,该本地化的本地化。

供应链攻击是"防不胜防"的类型,但把来源管住,就挡掉了九成。

Q:安全做到什么程度算"够了”? A:小够的标准:上面七层里,前五层做到位,第六七层按需做。做到前五层,你已经超过了 95% 的 WordPress 站。安全的本质是"成本博弈"——攻击者也是讲投入产出的,当你的站比周围难啃一个数量级,攻击者就去啃别人了。安全不是做到"攻不破",是做到"不值得攻"。

Q:多人协作的站,账号怎么管? A:按最小权限分配角色:写手给"作者"(只能发自己的文章),编辑给"编辑"(能管所有文章),管理员账号越少越好,最好就 1-2 个。每个人独立账号,别共用一个 admin——出问题查不到是谁干的,离职交接也麻烦。人员变动时第一时间删账号、改密码。

小够总结

WordPress 安全就五句话:登录加锁、插件管住、权限收紧、服务器打底、备份异地。做到这五层,你的站已经比 90% 的 WordPress 站安全了。剩下的 10% 是 0day 级别的真·高端攻击——真遇上了,那是 WordPress 官方和全网一起扛的事,轮不到你一个人焦虑。把能做的做到位,剩下的交给概率——而概率,站在有准备的人这边。

常见问题

Q:装安全插件(如 Wordfence)是不是就够了? A:不够。安全插件是"报警器",上面五层是"防盗门+围墙"。只装报警器不换防盗门,等于掩耳盗铃。插件可以装,但别指望它替代基础配置。而且安全插件本身也有性能开销,配不好还会误杀正常访客。

Q:我的站已经被挂马了怎么办? A:四步:1)立刻备份现状(留证据,也防清理过程中二次破坏);2)从干净备份恢复,或重装 WordPress 核心+插件后逐一排查主题文件;3)改掉所有密码(面板、数据库、FTP、WordPress 后台、服务器 SSH);4)查一遍定时任务、可疑文件和新增的管理员账号。恢复后按本文五层重新加固,别急着上线。

Q:小站点也需要做这么全吗? A:需要,而且小站点更需要——黑客的扫描器不分大小,专挑软柿子下手。上面这些配置,一次做好,以后就是顺手维护的事。安全投入和网站大小无关,和"被扫到的概率"有关,而这个概率对所有联网的站都一样。

Q:CDN 能防黑客吗? A:CDN(如 Cloudflare)能挡掉大量扫描和 DDoS,免费版就有效果。但它挡的是"进门的人",你屋里门没锁(弱密码、777 权限),CDN 也救不了。两者是叠加关系,不是替代关系。正确姿势:CDN 开着,五层加固也做着。

Q:多久检查一次安全状态? A:小够的建议节奏:插件更新每月看一次;备份恢复每季度演练一次;服务器系统更新每月跑一次;每年做一次全面复查(权限、账号、定时任务)。把这四件事写进日历提醒,安全就从"运动式"变成"习惯式"。