暂无菜单项

WHMCS 安全加固清单:12 个必查项

发布于
1

WHMCS 不只是一个”计费系统”。它装着客户的身份证、支付记录、工单往来,以及你所有服务器的开通凭据。

一旦它被打穿,攻击者拿到的不是”一个网站”,而是整个客户关系的控制权。

WHMCS 官方其实有一份加固清单(docs.whmcs.com/Further_Security_Steps),但它是按”功能文档”组织的,不好逐条核对。我把它整理成 12 项可执行的动作,你可以直接照着查。


1. 升级到最新的 LTS 版本

这是性价比最高的一条。

WHMCS 只在当前 LTS 版本上发布安全补丁。如果你 12 个月以上没升级,那你的站点里几乎一定有已被公开的、可被直接利用的漏洞。

升级前:备份文件 + 数据库、确认模块兼容、确认 PHP 版本支持、在测试环境先跑一遍。

2. 加固 configuration.php

这个文件里有你的加密密钥、数据库账号、授权信息。它一旦泄露,攻击者可以解密数据库里所有已保存的支付凭据和密码。

三层防护,按顺序做:

chmod 400 configuration.php      # 只允许属主读取
# 或者:把它移出网站根目录,用中转文件引用
chattr +i configuration.php      # 加不可变标志,连 root 都改不了(解除用 chattr -i)

3. 重命名 admin 目录

WHMCS 默认后台路径就是 /admin,全网扫描器都在扫这个路径。

// 改完目录名后,在 configuration.php 里同步:
$customadminpath = '你的新目录名';

这属于”隐藏”而非”防护”,但能把绝大多数自动化爆破直接挡在门外。

4. 给 admin 目录加 IP 白名单

如果团队有固定办公 IP 或固定出口的 VPN,直接在 Web 服务器层限制:

location /你的后台目录 {
    allow 203.0.113.5;
    allow 198.51.100.0/24;
    deny all;
}

这样即便有人找到了你的后台路径,也得先拿下你的办公 IP。

5. 全站强制 HTTPS + HSTS

Strict-Transport-Security: max-age=31536000; includeSubDomains

HTTPS 在 2026 年不是可选项。配置里要保证所有 HTTP 请求 301 到 HTTPS,并且证书到期前自动续期(Let’s Encrypt 可以自动化)。HSTS 要在 HTTPS 完全稳定之后再开。

6. 把可写目录移出网站根目录

attachments/、templates_c/、downloads/ 这类可写目录是上传漏洞的重灾区。

把它们移到 Web 根目录之外的非公开位置,再同步修改文件存储设置和模板缓存路径。WHMCS 官方有专门的文档说明这一步。

7. 把 crons 目录移出网站根目录

crons/ 目录同样不应该能被直接 web 访问。移到 web root 之上的私有目录即可。

8. 数据库权限最小化

只给 WHMCS 日常运行必需的那几个权限。安装、升级、模块激活时才需要临时提权。

不要图省事给数据库账号 ALL PRIVILEGES——那等于把数据库的钥匙和保险箱一起放在门口。

9. 禁止直接访问 vendor 目录

vendor/ 里是一堆第三方库,不应该被直接当静态文件请求。

  • 用 Apache:自带的 .htaccess 已处理;
  • 用 Nginx:必须手动加规则禁止访问该目录。

用 Nginx 又没配这条,是个很常见的疏漏。

10. 防点击劫持(CSP)

确保站点始终发送正确的 CSP frame-ancestors
响应头,避免你的客户区被外部页面 iframe 套住做钓鱼。

Content-Security-Policy: frame-ancestors 'self'

11. 员工账户:2FA + 独立账号 + 最小权限

后台是整个系统的钥匙串,这里必须严:

  • 所有管理员强制开启两步验证(2FA);
  • 一人一号,绝不共用账号(否则出了问题无法追责);
  • 按角色分配权限,客服不需要有”服务器管理”权限。

12. 防垃圾注册与社工攻击

攻击者先从”注册一个账号”开始。几条立刻能生效的措施:

  • 禁止用你公司自己域名的邮箱注册客户账号(防冒充内部人员的社工);
  • 开启邮箱验证,确认客户邮箱真实可达;
  • 开启 reCAPTCHA v3 或 hCaptcha,挡住批量机器人下单;
  • 配置风险评分与订单人工复核,可疑订单先审后开。

附:一张自检表

# 项目 状态
1 WHMCS 为最新 LTS ☐
2 configuration.php 已加固(400 / 移出 / 不可变) ☐
3 admin 目录已改名 ☐
4 admin 目录有 IP 白名单 ☐
5 全站 HTTPS + HSTS ☐
6 可写目录已移出 web root ☐
7 crons 目录已移出 web root ☐
8 数据库权限已最小化 ☐
9 vendor 目录禁止直接访问 ☐
10 已发送 CSP frame-ancestors ☐
11 员工 2FA / 独立账号 / 最小权限 ☐
12 邮箱验证 + 验证码 + 欺诈防护 ☐

12 项全绿,才算”基本安全”。 任何一项是红的,都是一个已经敞开的口子。

常见问题(FAQ)

WHMCS 最容易忽视的加固项是哪个?
升级到最新 LTS 版本。WHMCS 只在当前 LTS 版本上发布安全补丁,12 个月以上未升级的站点,几乎一定存在已被公开、可被直接利用的漏洞。
为什么 configuration.php 必须重点保护?
它保存着加密密钥、数据库账号和授权信息。一旦泄露,攻击者可以解密数据库中所有已保存的支付凭据和密码。
用 Nginx 部署 WHMCS 有什么必须手动添加的规则?
必须手动配置禁止直接访问 vendor 目录。Apache 由自带 .htaccess 处理,Nginx 不会自动生效,这是很常见的疏漏。
0 点赞
0 收藏
分享
0 讨论
反馈
0 / 600
0 讨论
热门最新
总结
暂无总结