SuperAPI AI 工具集

api-security-spectral

安全与审计

查看项目

更新于 10-16 05:32

技能介绍

用途

api-security-spectral 用于在 API 部署前,对 OpenAPI(Swagger)或 AsyncAPI 规范进行安全审查。它借助 Spectral 对 API 规范做 lint,检查 API 设计中的认证、授权、限流和输入校验等安全实践。

主要能力

该技能会运行 Spectral 扫描 API 规范文件,并解析输出结果,按严重程度汇总问题,给出具体的规范修复建议。它关注的安全规则包括:

  • oas3-api-servers:API 服务器必须使用 HTTPS
  • operation-operationId:所有操作需要唯一 ID
  • operation-description:操作应有文档说明
  • Security scheme defined:需存在 OAuth2 / API key / Bearer token
  • Input validation:请求体 schema 需带约束
  • Error responses:需定义 401、403、429 响应
  • Rate limiting:需记录限流相关响应头
  • No eval/dynamic paths:路径参数需正确约束

使用方式

前置条件:已安装 Spectral(npm install -g @stoplight/spectral-cli),可用 spectral --version 验证。

使用步骤:

  1. 确定目标 API 规范文件(YAML/JSON)。
  2. 运行扫描:
    • spectral lint <spec-file> --format json > spectral-results.json
    • 使用自定义规则集:spectral lint <spec> --ruleset .spectral.yml --format json
    • 指定格式:spectral lint openapi.yaml --format pretty
  3. 解析结果,以表格形式呈现发现项(序号、严重程度、规则、路径、消息、行号)。
  4. 汇总:按严重程度给出问题总数,并提出具体的规范修复建议。

自定义安全规则集

可创建 .spectral.yml 定义安全规则,例如:

extends: ["spectral:oas"] rules: oas3-server-https: description: Server URLs must use HTTPS given: "$.servers[*].url" then: function: pattern functionOptions: match: "^https://"

适用场景

适用于在部署前审查 OpenAPI 或 AsyncAPI 规范的安全问题,例如检查是否强制 HTTPS、是否定义安全方案、是否声明错误响应与限流头等。

限制

资料未提供关于支持平台、收费、价格或效果保证的说明。