Agent Skills
返回列表
🔒

系统安全加固

IT 运维与安全 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/security-hardening-sh-3eisfl 这个技能。

技能介绍

解决的问题

Web 服务上线前,安全加固往往散落在各团队的经验里:有人跑过一次依赖扫描就认为完成,有人给 API 加了限流却忘了刷新令牌的存储方式。结果同类漏洞反复出现——用户输入直接拼接进 HTML 引发 XSS、裸写 SQL 导致注入、JWT 载荷塞满敏感数据且永不过期、密钥被提交进 Git。这个技能要做的,是把这些分散的实践收敛为一份可逐项核对的工程清单。

核心能力

技能按请求处理链路组织防御,覆盖以下环节:

  • 边界输入校验:每个入参校验类型、长度、格式与范围;优先用允许列表而非拒绝列表;上传文件需检查 MIME 类型、扩展名和魔数;请求体大小在服务端或代理层限制(如最大 1MB)。
  • 输出编码与 SQL 注入防护:不拼接用户输入生成 HTML,改用开启自动转义的模板引擎;SQL 一律走 ORM 或查询构造器,手写必须参数化。
  • CSRF 与安全响应头:Bearer Token 认证的 API 可豁免 CSRF;每个响应统一配置安全头(Node.js 可用 helmet);CSP 从严格起步,用 nonce 替代 unsafe-inline,先以 Content-Security-Policy-Report-Only 试运行。
  • 限流:滑动窗口算法,计数器存 Redis,超限返回 429 与 Retry-After,认证端点单独收紧。
  • JWT 实践:访问令牌短时效(15 分钟),刷新令牌(7~30 天)存入 httpOnly Cookie;微服务用 RS256 签名,单体可用 HS256;载荷不放敏感数据,每次请求校验 iss、aud、exp、nbf,通过黑名单或短时效加轮换实现吊销。
  • 密钥管理:.env 加入 .gitignore,运行时走环境变量,生产用专业密钥管理器;API Key 最长 90 天轮换,各环境密钥隔离;CI 用 trufflehog 或 gitleaks 扫描泄漏。
  • 依赖审计:每次 PR 触发审计,存在 critical/high 漏洞则阻断合并;锁定版本,用 Dependabot 每周自动更新。

部署前检查清单

技能最后给出部署前核对清单:输入通过 schema 校验、SQL 参数化、安全头配置完成、HTTPS 强制启用 HSTS、密钥外置、依赖无 critical 漏洞、公共端点限流、令牌可过期轮换、错误信息不泄漏内部细节、日志记录安全事件但不含敏感数据。

适用边界

清单面向典型 Web 服务与 API,偏重应用层防御,不覆盖主机系统加固(内核参数、服务配置)、网络层防护和审计合规流程。CSP 从严格起步意味着上线初期可能产生误报,建议先在测试环境验证;JWT 吊销依赖黑名单或短时效设计,高频撤销场景需额外存储支撑。

使用场景

  • 新 API 上线前需要核对入参校验、安全响应头、HTTPS 与 HSTS 是否逐项配置完成
  • 历史代码中存在裸写 SQL 与 HTML 拼接,需要统一改为参数化查询和自动转义模板
  • 微服务使用 JWT 认证,需要检查签名算法、声明校验、刷新令牌与吊销策略
  • 生产环境密钥散落在代码仓库,需要外置到环境变量或密钥管理器并在 CI 扫描泄漏

适合人员

  • 后端工程师:需要把输入校验、SQL 参数化和安全响应头落到正在开发或维护的服务里
  • DevOps 工程师:需要在 CI 里接入依赖审计和密钥泄漏扫描,并配置限流等运行时防护
  • 独立开发者:发布 Web 应用前没有安全团队,需要一份可逐项勾选的加固清单
  • 安全负责人:需要统一团队的上线安全标准,用检查清单作为评审和验收依据