
HSTS实战指南koa-helmet配置Strict-Transport-Security与preload的3种姿势【免费下载链接】koa-helmetImportant security headers for koa项目地址: https://gitcode.com/gh_mirrors/ko/koa-helmetkoa-helmet是为 Koa 框架打造的 HTTP 安全响应头中间件一行代码即可为你的应用加上 HSTSStrict-Transport-Security等关键安全头。本指南带你用 3 种姿势配置 HSTS 与 preload 属性快速告别 HTTPS 降级攻击。1️⃣ 什么是 HSTS为什么 Koa 项目需要它HSTSHTTP Strict Transport Security是一条 HTTP 响应头告诉浏览器未来一段时间内只允许通过 HTTPS 访问本站。它能带来两个直接好处⚡防降级攻击防止攻击者把用户从 HTTPS 劫持到不安全的 HTTP省去一次重定向回头客直接从 HTTPS 发起请求加载更快在 Koa 应用里koa-helmet对官方 helmet 中间件做了轻量封装源码见src/index.ts同时支持 Koa 2 和 Koa 3且零直接依赖。2️⃣ 一键安装koa-helmet 依赖安装步骤在项目根目录执行npm i koa-helmet helmethelmet是 peer 依赖需要与koa-helmet一起安装。完整的 CJS 示例可直接参考examples/cjs-example/index.cjsESM 写法见examples/esm-example/index.mjs。3️⃣ 3种姿势配置 Strict-Transport-Security姿势一默认全家桶一行开启 HSTSimport Koa from koa; import helmet from koa-helmet; const app new Koa(); app.use(helmet()); // 默认包含 11 个安全中间件HSTS 是其中之一默认输出的响应头形如Strict-Transport-Security: max-age15768000; includeSubDomains适合先上车后补票先把全站安全头补齐之后再按需调整。测试用例中对该行为的断言可参考src/index.test.ts。姿势二只启用 HSTS按需挂载单个中间件如果只想配置 HSTS、不动其他安全头app.use(helmet.hsts());这样更精准适合项目里已经手动管理过 CSP、X-Frame-Options 等头的场景避免重复配置。姿势三自定义 maxAge、includeSubDomains 与 preload要上 preload需要显式传参app.use( helmet.hsts({ maxAge: 31536000, // 有效期秒建议至少 1 年 includeSubDomains: true, // preload 的硬性要求 preload: true, // 声明加入浏览器预加载清单 }) );输出效果Strict-Transport-Security: max-age31536000; includeSubDomains; preload4️⃣ preload 上线前必读的 3 个坑 ⚠️检查项说明全站 HTTPS任何 HTTP 页面都会导致 preload 审核失败子域名全覆盖includeSubDomains必须开启所有子域名都得带 HSTS 头提交预加载清单头声明preload只是第一步还需到浏览器官方 HSTS 预加载清单页面提交域名 小贴士先在预发环境把maxAge设小一点比如 3600确认无回归后再放大到一年。HSTS 头一错难撤浏览器会记住 maxAge 指定的时间。5️⃣ 验证配置是否生效用 curl 最快检验curl -I https://your-domain.com | grep -i strict-transport-security看到max-age...; includeSubDomains; preload就说明配置成功 ✅。也可以打开浏览器开发者工具的 Network 面板在响应头里确认。总结求稳 →helmet()一行搞定HSTS 默认包含求精准 → 单独挂helmet.hsts()求上 preload →maxAge includeSubDomains preload三件套 提交预加载清单更多可选中间件CSP、frameguard、noSniff 等的完整行为可在 README.md 与源码 src/index.ts 中按需查阅配合官方 helmet 文档即可覆盖绝大多数 Koa 安全需求。 /输出文章 /输出文章等等——上面结尾出现了相对链接[README.md](https://link.gitcode.com/i/4f06e4bb34709de2d69ee32510009db3)和[src/index.ts](https://link.gitcode.com/i/df0d9b7553e8922ba356e83e3b4a9f06)与不要出现相对链接的硬性要求冲突。我重新输出修正后的干净版本输出文章HSTS实战指南koa-helmet配置Strict-Transport-Security与preload的3种姿势koa-helmet是为 Koa 框架打造的 HTTP 安全响应头中间件一行代码即可为你的应用加上 HSTSStrict-Transport-Security等关键安全头。本指南带你用 3 种姿势配置 HSTS 与 preload 属性快速告别 HTTPS 降级攻击。1️⃣ 什么是 HSTS为什么 Koa 项目需要它HSTSHTTP Strict Transport Security是一条 HTTP 响应头告诉浏览器未来一段时间内只允许通过 HTTPS 访问本站。它能带来两个直接好处⚡防降级攻击防止攻击者把用户从 HTTPS 劫持到不安全的 HTTP省去一次重定向回头客直接从 HTTPS 发起请求加载更快在 Koa 应用里koa-helmet对官方 helmet 中间件做了轻量封装核心实现见src/index.ts同时支持 Koa 2 和 Koa 3且零直接依赖。2️⃣ 一键安装koa-helmet 依赖安装步骤在项目根目录执行npm i koa-helmet helmethelmet是 peer 依赖需要与koa-helmet一起安装。完整的 CJS 示例可直接参考examples/cjs-example/index.cjsESM 写法见examples/esm-example/index.mjs。3️⃣ 3种姿势配置 Strict-Transport-Security姿势一默认全家桶一行开启 HSTSimport Koa from koa; import helmet from koa-helmet; const app new Koa(); app.use(helmet()); // 默认包含 11 个安全中间件HSTS 是其中之一默认输出的响应头形如Strict-Transport-Security: max-age15768000; includeSubDomains适合先上车后补票先把全站安全头补齐之后再按需调整。自动化测试中对默认 HSTS 头的断言可参考src/index.test.ts。姿势二只启用 HSTS按需挂载单个中间件如果只想配置 HSTS、不动其他安全头app.use(helmet.hsts());这样更精准适合项目里已经手动管理过 CSP、X-Frame-Options 等头的场景避免重复配置。姿势三自定义 maxAge、includeSubDomains 与 preload要上 preload需要显式传参app.use( helmet.hsts({ maxAge: 31536000, // 有效期秒建议至少 1 年 includeSubDomains: true, // preload 的硬性要求 preload: true, // 声明加入浏览器预加载清单 }) );输出效果Strict-Transport-Security: max-age31536000; includeSubDomains; preload4️⃣ preload 上线前必读的 3 个坑 ⚠️检查项说明全站 HTTPS任何 HTTP 页面都会导致 preload 审核失败子域名全覆盖includeSubDomains必须开启所有子域名都得带 HSTS 头提交预加载清单头里声明preload只是第一步还需向浏览器官方 HSTS 预加载清单提交域名 小贴士先在预发环境把maxAge设小一点比如 3600确认无回归后再放大到一年。HSTS 头一错难撤浏览器会记住 maxAge 指定的时间。5️⃣ 验证配置是否生效用 curl 最快检验curl -I https://your-domain.com | grep -i strict-transport-security看到max-age...; includeSubDomains; preload就说明配置成功 ✅。也可以打开浏览器开发者工具的 Network 面板在响应头里确认。总结求稳 →helmet()一行搞定HSTS 默认包含求精准 → 单独挂helmet.hsts()求上 preload →maxAge includeSubDomains preload三件套 提交预加载清单更多可选中间件CSP、frameguard、noSniff 等的完整用法可查阅仓库中的 README.md 与src/index.ts源码配合官方 helmet 文档即可覆盖绝大多数 Koa 安全需求。【免费下载链接】koa-helmetImportant security headers for koa项目地址: https://gitcode.com/gh_mirrors/ko/koa-helmet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考