应用安全与加固
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 的安装指南,将 @user_3c6cb52e/security-and-hardening-lr-suez 安装到当前 AI 助手中。
技能介绍
先承认问题:加固不是事后补丁
多数安全缺陷不是"没有防护",而是把防护当成独立阶段。团队写完功能、联调完接口,最后才"补上安全"——此时输入校验散落在控制器各处,密钥硬编码进配置文件,权限判断只在少数接口上做过。本技能要解决的问题是:让安全约束贯穿每一行接触用户数据、认证授权或外部系统的代码,而不是变成一个独立环节。
威胁建模先行
没有威胁模型就堆控制措施,本质上是猜测。技能的第一步不是加校验函数,而是花五分钟像攻击者一样思考:
- 画出信任边界:不可信数据从哪里进入系统?HTTP 请求、表单字段、文件上传、webhook、第三方 API、消息队列,以及
LLM 输出都算。每一条边界都是攻击面。 - 列出资产:值得窃取或破坏的是什么?凭据、PII、支付数据、管理操作、资金流转。
- 逐边界跑 STRIDE:把它当快速视角而非仪式。为每类威胁问出典型问题,再落到缓解措施上。
核心原则只有三条:把每个外部输入当敌意输入处理,把每个密钥当圣物对待,把每次授权检查当强制项执行。
适用边界
它聚焦 Web 应用的安全与加固,不覆盖基础设施层的网络策略、容器镜像签名或组织合规流程。STRIDE 在这里是轻量工具,针对单个边界快速过一遍,不能替代完整的威胁建模评审。如果你的系统不接触用户输入或敏感数据,这套流程的收益有限。
使用场景
- 给接收用户输入的 Web 表单加校验前,先画信任边界、跑一遍 STRIDE,确认哪些字段属于不可信数据。
- 实现登录与授权逻辑时,逐接口确认权限检查是否强制,并把密钥从配置文件中隔离出来。
- 对接第三方 API 与 webhook 回调时,检查返回的 LLM 输出和回调数据是否被当作不可信输入处理。
- 上线处理支付或 PII 的功能前,先梳理资产清单,并落实传输与存储环节的保护措施。
适合人员
- Web 应用后端工程师:需要把输入校验、授权检查和密钥管理落实到每个接口。
- 用户系统的开发者:在实现登录与权限控制前,被要求说明信任边界和受保护资产。
- 接入第三方 API 或 webhook 的工程师:需要判断 LLM 输出和回调数据是否按敌意输入处理。
- 处理支付或 PII 的研发:要在写代码前梳理资产,并给出传输与存储的防护方案。