返回顶部
g

graceful-boundaries-audit优雅边界审计

>

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.2.0
安全检测
已通过
134
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

graceful-boundaries-audit

优雅边界合规审计

该技能的作用

通过直接HTTP检查评估URL的优雅边界合规级别,然后提供具体的实施计划以达到下一级别。输出是一份可操作文档,包含用户可立即实施的代码示例。无需特殊工具或依赖——该技能可与任何HTTP客户端配合使用。

何时使用该技能

  • - 用户提供URL并询问其速率限制通信情况
  • 用户要求检查服务的优雅边界合规性
  • 用户想知道API处于哪个级别
  • 用户询问如何改进其API的429响应
  • 用户希望从一个合规级别提升到下一个级别
  • 用户在速率限制或边界的上下文中说审计此API

评估流程

按顺序执行以下阶段。每个阶段都建立在前一个阶段的基础上。

阶段1:发现获取

直接获取限制发现端点。尝试两个标准路径:

GET /api/limits
GET /.well-known/limits

使用当前环境中可用的curl、fetch或任何HTTP客户端。无需特殊工具。

如果任一路径返回JSON响应,记录:

  • - 响应是否包含service字段
  • 响应是否包含limits对象
  • 限制条目是否格式良好(每个都有type、maxRequests、windowSeconds、description)
  • 是否存在conformance字段(自我声明的级别)
  • 响应是否包含带有s-maxage的Cache-Control头部
  • 是否存在changelog或feedURL(v1.1变更发现)
  • resource-dedup条目是否包含returnsCached: true(v1.1)

如果两个路径都没有返回有效响应,则该服务没有发现端点,无法达到级别2或以上。

可选加速器: 如果本地克隆了graceful-boundaries仓库,自动化检查器可提供结构化报告:

bash
node evals/check.js --json

这是便利选项,非必需。该技能完全通过直接HTTP检查工作。

阶段2:主动头部检查

如果限制端点记录了特定的API端点,获取其中一个并检查成功响应上的主动头部:

  • - RateLimit: limit=N, remaining=N, reset=N
  • RateLimit-Policy: N;w=N

这些头部表示级别4合规性。

不要尝试触发429。 这需要频繁请求服务,不适合审计。如果不观察实际的拒绝响应,无法验证级别1和级别3的合规性——将这些标记为不可验证并解释原因。

阶段3:级别评估

将发现结果映射到spec.md中定义的合规级别:

级别验证方式
不适用网站没有API或代理表面
0
服务存在但没有限制端点,没有结构化响应 |
| 1 | 没有429响应无法验证(标记为不可验证) |
| 2 | 限制端点存在且格式良好 |
| 3 | 没有429响应无法验证(标记为不可验证) |
| 4 | 级别2已确认 + 成功响应上存在主动头部 |

如果服务通过conformance字段自我声明合规级别,比较声明值与验证值。标记任何差异。

将评估报告为:

  • - 已确认级别:证据支持的级别
  • 声明级别:服务声称的级别(如有)
  • 可能级别:包括不可验证方面的最佳估计

阶段4:差距分析

对于当前已确认级别以上的每个级别,列出具体缺失的内容。引用spec.md的具体章节:

要达到级别1(spec第2和第6节):

  • - 所有非成功响应(400、401、403、404、429、500、503)是否都包含error、detail和why?(v1.1:why是所有错误类别的必须项)
  • 429响应是否为JSON格式,包含5个必需字段(error、detail、limit、retryAfterSeconds、why)?
  • error是否使用稳定的机器可解析字符串(snake_case)?
  • detail是否包含人类可读形式的具体重试时间?
  • why是否解释目的,而非重复错误信息?
  • retryAfterSeconds是否为非负整数?
  • HTTP响应是否包含Retry-After头部?
  • 对于HTML 429页面:是否有标签或?(v1.1)

要达到级别2(spec第1节):

  • - 是否存在/api/limits或/.well-known/limits的限制端点?
  • 是否返回包含limits对象的JSON?
  • 限制条目是否格式良好(type、maxRequests、windowSeconds、description)?
  • 端点是否可缓存(Cache-Control头部)?
  • 是否包含changelog或feedURL用于变更发现?(v1.1,可选但推荐)

要达到级别3(spec第3和第5节):

  • - 拒绝响应是否包含建设性指导字段?
  • 哪些指导类别适用?(cachedResultUrl、alternativeEndpoint、upgradeUrl、humanUrl、cached)
  • 服务是否按推荐顺序优先提供指导:使用缓存 > 尝试替代 > 升级 > 等待 > 人工交接?
  • 对于resource-dedup限制:服务是否以200而非429返回缓存结果?如果是,发现端点是否包含returnsCached: true以便代理跳过重试逻辑?(v1.1)

要达到级别4(spec第4节):

  • - 成功响应上是否存在RateLimit头部?
  • 是否包含所有三个组件:limit、remaining、reset?
  • 是否存在RateLimit-Policy头部?
  • 策略格式是否匹配N;w=N?

阶段5:实施指导

为每个差距提供具体的、可复制粘贴的代码。在示例中使用服务的实际域名和端点。

限制发现端点骨架:
json
{
service: <服务名称>,
description: <服务功能描述>,
conformance: level-2,
changelog: https://<域名>/api/changelog.json,
feed: https://<域名>/feed.json,
limits: {
<端点键>: {
endpoint: <路径>,
method: ,
limits: [
{
type: ip-rate,
maxRequests: 100,
windowSeconds: 3600,
description: 每个IP每小时100次请求。
},
{
type: resource-dedup,
maxRequests: 1,
windowSeconds: 86400,
returnsCached: true,
description: 每个资源每天一次操作。重复请求返回缓存结果。
}
]
}
}
}

结构化拒绝体:
json
{
error: ratelimitexceeded,
detail: 您已超过每小时100次请求的限制。请在秒后重试。,
limit: 每个IP每小时100次请求,
retryAfterSeconds: 1234,
why: <一句话解释此限制存在的原因——不仅仅是重复错误信息>
}

建设性指导字段(添加到拒绝体):
json
{
cachedResultUrl: /api/result?id=<资源>,
alternativeEndpoint: /api/<替代方案>,
upgradeUrl: https://<域名>/pricing,
humanUrl: https://<域名>/contact
}

主动头部(添加到成功响应):

RateLimit: limit=100, remaining=99, reset=3600
RateLimit-Policy: 100;w=3600

在相关处引用安全考虑:

  • - SC-1:发布的限制可能高于实际执行的限制
  • SC-2:why必须描述保护类别,而非机制
  • SC-3:expected必须使用正面描述
  • SC-6:指导URL必须是相对路径或同源路径

阶段6:生成评估文档

输出结构化Markdown文档:

优雅边界评估:<域名>

摘要

  • - 已确认级别:
  • 声明级别:
  • 可能级别:

已检查内容

  • - 限制端点:<路径> — <已找到/未找到>
  • 主动头部:<存在/不存在>
  • 拒绝格式:<未触发429无法验证>

达到下一级别的差距

<按优先级排序的列表,附spec章节引用>

实施计划

<使用服务实际域名的具体代码示例>

安全说明

<相关的SC-*考虑>

该技能不做的事情

  • - 不实施目标服务的变更
  • 不故意触发速率限制或429响应
  • 不需要访问服务的源代码
  • 不评估超出限制通信范围的通用API设计质量
  • 与agent-readiness-audit技能不同(后者评估整体AI可发现性,而非专门

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 graceful-boundaries-1776089531 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 graceful-boundaries-1776089531 技能

通过命令行安装

skillhub install graceful-boundaries-1776089531

下载

⬇ 下载 graceful-boundaries-audit v1.2.0(免费)

文件大小: 54.52 KB | 发布时间: 2026-4-14 14:03

v1.2.0 最新 2026-4-14 14:03
Agent-facing channels: builder skill (SKILL-builder.md), spec Appendix B for autonomous implementers, CLAUDE.md snippet. Landing page at gracefulboundaries.dev. Checker now validates Level 4 proactive headers. Error field requires snake_case. All URLs updated to gracefulboundaries.dev.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部