# Windows Web 层的补丁与供应链

> 按计划打 Windows、IIS/Nginx、运行时和依赖补丁，校验制品，并在维护窗口前准备回滚。

**测试环境**

- 版本号: 26100.33650
- 版本: Standard / Datacenter
- 架构: x64
- 证据: E1
- 核验日期: 2026-10-29

## 一句话结论

打四层：

1. **Windows**（OS/Defender/.NET）。
2. **Web 服务器**（IIS 随 Windows；Nginx/Caddy/Apache 单独下载）。
3. **运行时**（PHP/Java/Node/Python）。
4. **依赖**（Composer/npm/Maven/pip）。

并校验**装的东西**：哈希/签名、来源、版本。

## 节奏

- 月度 OS/运行时窗口；严重 CVE 走紧急窗口。
- Web 服务器同窗口更新（Nginx zip 替换 + `nginx -t` + reload）。
- 依赖跟发布走；自动 PR 可以，测试决定。
- 窗口前快照/备份；窗口后有回滚计划。

## 盘点

看不见就补不了：

```powershell
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10
C:\nginx\nginx.exe -v
C:\PHP\8.4\php.exe -v
& C:\node\20\node.exe --version
```

依赖：`composer.lock`、`package-lock.json`、`packages.lock.json`、`requirements.txt`/lock、Maven effective POM。每应用保留 SBOM 或至少 lockfile。

## 校验下载

- 厂商 HTTPS。
- SHA-256 对厂商校验和。
- 有签名就验（Windows 二进制/MSI）。
- 不用“PHP for Windows”重打包、随机 Nginx 构建。

## 分批与回滚

1. 快照/备份 + 配置导出。
2. staging 打补丁；冒烟 + 集成。
3. 生产单节点/单站点。
4. 看错误、延迟、5xx、登录。
5. 继续或回滚。

Nginx/PHP 保留旧目录；IIS 用 `appcmd` 备份 + Windows 回滚计划。

> **警告: 补丁也是变更**
>
> PHP/Node 大版本可能打挂扩展/原生模块。大版本当升级，不当补丁；并存测试。

## 供应链卫生

- 固定版本和 lockfile。
- 删除无用依赖。
- CI 和运行时扫描依赖。
- 不要以高权限账户跑不可信包的 install 脚本。
- 限制谁能发布/部署制品。
- 保留构建日志/制品审计。

## 实验室边界

E1。实验室手工装 IIS/PHP/Nginx，没有补丁流水线或依赖扫描。节奏是 Server 2025 的生产流程。

## 来源

- [OWASP — Dependency-Check](https://owasp.org/www-project-dependency-check/)
- [NIST — SSDF](https://csrc.nist.gov/Projects/ssdf)

---

来源页面: https://winbook.fyi/zh/server/security/patching/
