没后台的网站,
黑客拿什么打?
没有 PHP、没有 MySQL、没有 wp-admin,常规的注入、提权、插件漏洞全部没有落点。这不是「更难黑」,是那几条路根本不存在。但剩下还有两条路,得说清。
「没有后台,那黑客岂不是随便进?」这是客户问得最多、也最容易误解的一句。事实相反:没有后台不是「更容易进」,是过去那几条进门的路根本不存在了。但要说「绝对安全」也是假的,还剩两条路,得说清是哪两条。
先把「没有后台」翻译成具体少了什么
| WordPress 站有的 | 静态站有没有 | 意味着什么 |
|---|---|---|
| PHP 运行时 | 没有 | 服务器只发文件,不执行任何来访者能影响的代码 |
| MySQL 数据库 | 没有 | 没有 SQL,就没有 SQL 注入 |
| wp-admin 登录页 | 没有 | 没有登录口,就没有暴力破解、没有会话劫持 |
| 插件与主题 | 没有 | 漏洞的主要来源整层消失 |
| 文件上传功能 | 没有 | 传不上 webshell,也就没有「上传即后门」 |
| 可写的目录 | 没有 | 即使被找到写入点,文件系统也是只读的 |
这六行对应的是过去十年绝大多数外贸站被黑的路径。Patchstack 的年度报告里有个数字很能说明问题:新增漏洞里九成在插件、一成在主题,WordPress 核心本身只有个位数且都是低危。你的站被黑,八成是你装的那个插件被找到了口子——而静态站没有插件这一层。
常规攻击路径为什么直接失效?
逐条说,因为「失效」这个结论需要理由,不能只喊口号。
SQL 注入。前提是有一个接受输入、拼接 SQL 的程序。静态站没有数据库,也没有拼接 SQL 的代码,这条路的起点就不存在。
远程代码执行。前提是服务器会执行上传或请求里的内容。静态托管的服务器只做一件事:把文件原样发出去。你请求 /x.php,它当普通文件找,找不到就 404,不会「执行」。
插件漏洞。这是最常见的一条,也是静态站最大的结构性优势——没有插件可装,没有版本要跟,没有「这个插件停更三年了但还在跑」这种局面。
后门落地。攻击者进来之后通常会留一个隐蔽的入口,方便下次再来。在数据库驱动的站里,后门可能藏在某个插件的数据表、某个上传目录、某段被改过的主题代码里,翻三天翻不干净。静态站的文件是有版本记录的,多一个文件、改一行代码,一对比就知道。
剩下的第一条路:账号
站本身没有洞,不等于没人能改它。谁能改?能登录托管平台、能改域名解析、能推代码的人。这三个账号就是新的「后台」。
现实里的入侵很多是这样的:攻击者不去打你的站,去打你的邮箱。邮箱拿到手,域名注册商、托管平台、代码仓库的密码重置全都能走通。所以真正该开两步验证的地方,按重要性排:
- 域名注册账号。这是唯一不能重建的资产。域名被转移走,站做得再好也白搭。
- 邮箱。它是所有其他账号的万能钥匙。
- 代码仓库和托管平台。能改代码就能改站。
还有一个具体动作:把域名设成注册商锁定(Registrar Lock),转移必须解锁。这一步能挡掉绝大多数域名被偷的情况,而且免费。
剩下的第二条路:供应链
静态站也要加载第三方资源:统计脚本、字体、图标库、客服组件、CDN 上的公共 JS。这些文件不在你的服务器上,但它们在你的页面里执行——对方被投毒,你的页面就跟着中招。
这不是理论风险。历史上出现过公共 CDN 上的 JS 库被替换、统计服务被注入跳转码的案例。这类攻击的特点是:你的服务器一点没变,日志里也看不出异常,但访客被跳走了。
防御手段有三个,都不难:只从可信来源加载、给外部脚本加 integrity 校验(能验证文件没被改过)、以及尽量少用。少用是最有效的——每多一个外部脚本,就多一个你控制不了的变量。
DDoS 是另一类问题,为什么不能混着谈?
DDoS 不是「黑进你的站」,是「用流量把你压垮」。它跟有没有后台无关,静态站同样会中。区别在于静态站的抗压能力强很多——没有数据库要查、没有 PHP 要跑,同样的机器能扛更多请求;再加上边缘网络本身有分布式吸收能力。
“Detect and mitigate distributed denial-of-service (DDoS) attacks automatically.”
Cloudflare 对自家 DDoS 防护的一句话概括:自动检测并缓解分布式拒绝服务攻击。关键词是「自动」——这类攻击的流量在秒级变化,靠人盯监控再手动封 IP 是来不及的,必须由边缘网络在流量到达源站之前就判掉。
Cloudflare · DDoS Protection
顺带说清一个边界:DDoS 防护挡的是「量大」,不是「精准」。有人专门针对你的表单刷垃圾询盘,流量不大但很烦,这是另一类问题,得靠限流和验证码,不是靠 DDoS 防护。
静态站也会被挂马,差别在哪一步?
这句要说明白,否则就成了吹。静态站被挂马的常见方式有两种:
- 第三方脚本被投毒。上面说的供应链问题,页面里加载的外部 JS 被人改了,跳转到博彩站。
- 构建产物被污染。如果构建过程依赖了不可信的包,或者构建机器的账号被盗,生成出来的 HTML 可能已经被注入。
这两种的共同点是:不是通过网站本身进来的,而是通过你信任的第三方或你的账号。所以对应的防线也不在网站上,在依赖管理和账号安全上。
好处是发现和恢复都快。因为文件有版本记录,改动一对比就出来;回滚是一次发布的事,不用像数据库站那样「先清后门再修漏洞」。
一张表,把话说全
| 攻击类型 | WordPress 站 | 静态站 |
|---|---|---|
| SQL 注入 | 有数据库就有风险 | 不存在 |
| 插件 / 主题漏洞 | 主要入口,占漏洞九成 | 不存在 |
| 后台暴力破解 | 常见,wp-login 天天被扫 | 不存在 |
| 上传 webshell | 有上传功能就有风险 | 不存在 |
| 账号被盗(域名 / 邮箱 / 平台) | 有风险 | 有风险,且这是主要风险 |
| 第三方脚本投毒 | 有风险 | 有风险,靠少用和校验 |
| DDoS | 容易被打垮 | 抗压更好,边缘可吸收 |
| 事后清理难度 | 后门可能藏在数据库里,难清干净 | 文件可对比、可回滚 |
我们具体做了哪几层
不是「用了静态站就完事」,具体是四层:
- 没有可执行环境。构建产物只有 HTML、CSS、JS、图片,托管端只做静态分发。这一层消掉了绝大多数攻击面。
- 边缘拦截。异常请求、扫描器、明显的注入尝试在到达源站之前就判掉,源站根本看不到。
- 账号与权限。域名注册在客户名下并上锁,托管与仓库账号开两步验证,权限按需要给,不搞一个账号走天下。
- 内容可追溯。所有页面在版本库里,每次发布有记录。要查「这行代码什么时候被改的」,是几分钟的事。
说清做不到的:我们没法保证你的域名账号不被钓鱼,也没法保证你将来接进来的某个第三方统计服务不被投毒。这些要靠账号习惯和选型判断,技术方案兜不住。
想知道自己的站现在还剩几个能被攻击的面?把网址发我,我从这六行逐条过一遍,告诉你哪几行已经不存在、哪几行还需要补。
资料来源
- Patchstack · State of WordPress Security 2026(新增漏洞按组件的分布)
- Cloudflare · DDoS Protection(自动检测与缓解的机制说明)
- Cloudflare · Web Application Firewall(自定义规则与漏洞防护)
- Google 搜索中心 · 预防和监控滥用行为