SuperAPI AI 工具集

security-checklist

安全与审计

查看项目

更新于 10-15 13:58

技能介绍

用途

security-checklist 用于对 Micronaut/Kotlin 后端代码执行安全审计。它适合在以下场景使用:为接口添加认证或授权、校验新增或变更接口上的用户输入、在合并前审查代码中的安全问题、检查常见漏洞(SQL 注入、XSS、IDOR),以及配置密钥管理。

主要能力

该技能按固定流程逐项检查以下类别:

  • 认证检查:每个 controller 是否都有 @Secured,当前用户是否来自安全上下文。
  • 授权检查:在返回资源前是否验证用户对该资源的访问权限。
  • 输入校验检查:controller 参数是否使用 @Valid,请求 DTO 是否使用 Jakarta 注解。
  • SQL 注入防护检查:是否使用 Exposed ORM(自动参数化),是否避免使用字符串拼接的原始 SQL。
  • 常见漏洞检查:SQL 注入、XSS、CSRF、认证绕过、IDOR、批量赋值、数据暴露、限流。
  • 密钥管理检查:是否存在硬编码密钥,是否使用环境变量,是否记录令牌/密码/PII,是否提交 .env。
  • 响应脱敏检查:响应 DTO 是否控制暴露内容,是否避免返回原始实体。

交互风格上,该技能始终检查所有类别、不跳过任何部分,优先标出最危险的问题,并针对每项修复给出代码示例,而不只是描述;它会同时说明问题所在与修复方式。

使用方式

该技能以审计流程方式运行,具体代码示例、漏洞表和 SAFE/DANGEROUS 模式参见 audit-reference.md。执行后会输出一份清单报告,对每个类别给出通过/未通过标记,例如:所有接口都有 @Secured 注解、管理接口使用 OAuthSecurityRule.ADMIN、用户只能访问自己的资源(或管理员可访问全部)、输入使用 @Valid 与 Jakarta 注解校验、没有字符串拼接的原始 SQL 查询、敏感字段从响应 DTO 中排除、令牌/密码从不记录日志、错误信息不泄露内部细节、认证接口有限流。

规则

  • 每个接口必须有 @Secured 注解。
  • 管理接口使用 OAuthSecurityRule.ADMIN。
  • 用户只能访问自己的资源(或管理员可访问全部)。
  • 输入使用 @Valid 与 Jakarta 注解校验。
  • 不使用字符串拼接的原始 SQL 查询。
  • 敏感字段从响应 DTO 中排除。
  • 令牌/密码从不记录日志。
  • 错误信息不泄露内部细节。
  • 认证接口启用限流。

适用场景与限制

该技能面向 Micronaut/Kotlin 后端,围绕上述安全类别进行审计与清单输出。资料未提供其支持的平台范围、收费方式、价格、具体安装命令或效果保证等信息,暂未提供。