API Shield 的标签服务将帮助您组织端点并解决 API 中的漏洞。标签服务带有托管标签和用户自定义标签。
托管标签可帮助您按用例组织端点。托管标签还将自动识别具有信息或安全风险的端点,向您警示需要注意的端点。
也可以在 API Shield 中通过创建标签并将其添加到单个端点或多个端点来将用户自定义标签添加到端点。用户自定义标签对于按所有者、版本或类型组织端点非常有用。
您可以根据标签过滤端点。
使用托管标签按用例识别端点。Cloudflare 可能会在未来的版本中自动应用这些标签。
cf-log-in:将此标签添加到接受用户凭据的端点。如果您在多个端点或请求中接受用户名、密码和多因素身份验证 (MFA),您可能会有多个端点。
cf-sign-up:将此标签添加到作为为您网站或应用程序创建用户账户的最后一步的端点。
cf-content:将此标签添加到提供独特内容的端点,例如产品详情、用户评论、定价或其他独特信息。
cf-purchase:将此标签添加到作为在线购买商品或服务的最后一步的端点。
cf-password-reset:将此标签添加到参与用户密码重置过程的端点。这包括初始密码重置请求和最终密码重置提交。
cf-add-cart:将此标签添加到将商品添加到用户购物车或验证商品可用性的端点。
cf-add-payment:将此标签添加到接受信用卡或银行账户详情的端点,在这些端点上,欺诈者可能会迭代账号以猜测支付信息的有效组合。
cf-check-value:将此标签添加到检查奖励积分、游戏内货币或其他储值产品余额的端点(这些产品可以赚取、转让和兑换现金或实物商品)。
cf-add-post:将此标签添加到在交流论坛中发布消息、或者产品或商户评论的端点。
cf-account-update:将此标签添加到参与用户账户或个人资料更新的端点。
cf-llm:由大型语言模型 (LLM)(部分)驱动的服务。
cf-mcp:将此标签添加到实现用于 AI 工具和数据访问的 模型上下文协议 (Model Context Protocol, MCP) 的端点。
cf-rss-feed:将此标签添加到期望来自 RSS 客户端流量的端点。
cf-web-page:将此标签添加到提供 HTML 页面的端点。
cf-contains-ads:将此标签添加到提供包含广告的网页的端点。
Cloudflare 每天对您保存的端点运行一次风险扫描。当扫描发现您端点上的安全风险时,API Shield 会应用这些标签。发现风险时,还会引发相应的安全中心洞察。
cf-risk-missing-auth:当所有成功请求都缺少会话标识符时自动添加。有关更多信息,请参阅身份验证安全状况。
cf-risk-mixed-auth:当某些成功请求包含会话标识符而某些成功请求缺少会话标识符时自动添加。有关更多信息,请参阅身份验证安全状况。
cf-risk-sensitive:当 HTTP 响应与 WAF 的敏感数据检测规则集匹配时,自动添加到端点。
cf-risk-missing-schema:当对于没有活动架构的端点有学到的架构可用时自动添加。
cf-risk-error-anomaly:当端点最近 24 小时内响应错误有所增加时自动添加。
cf-risk-latency-anomaly:当端点最近 24 小时内响应延迟有所增加时自动添加。
cf-risk-size-anomaly:当端点最近 24 小时内响应主体大小突增时自动添加。
cf-risk-bola-enumeration:当端点经历成功响应,且不同用户会话请求的唯一元素数量存在巨大差异时自动添加。
cf-risk-bola-pollution:当端点经历成功响应,且在请求的多个位置中发现参数(与 API 架构的预期相反)时自动添加。
cf-risk-zombie:当保存的端点在 32 天内没有收到流量时自动添加。
您如何解决端点的风险将取决于其标签。以下步骤为您提供了如何对它们采取行动的一般指南。
-
审查端点的风险。
查看被标记为风险的端点,并识别它们是否已被标记为其他风险。
例如,标记为
Go to Web assets ↗cf-risk-sensitive且同时标记为cf-risk-missing-auth或cf-risk-mixed-auth的端点可能包含未验证身份用户可用的敏感数据。转到标记为
cf-risk-missing-auth或cf-risk-mixed-auth的端点的详细信息页面,检查过去 24 小时和 7 天内已验证身份流量状况的最近变化。 -
在安全分析中审查这些已标记端点的流量。
检查意外的流量来源,并注意任何异常的流量模式。
Go to Analytics ↗ -
与您的开发团队一起审查源站的授权和身份验证策略。
与您组织中的开发人员或应用程序所有者沟通,了解发往这些端点的所有请求是否都应进行身份验证。修改您的应用程序以始终强制要求访问这些端点的所有流量都通过身份验证。
有关更多信息,请参阅身份验证安全状况。
您可以使用 GraphQL Analytics API 查询单个请求的匹配操作和托管标签。webAssetsOperationId 和 webAssetsLabelsManaged 字段在 httpRequestsAdaptive 和 httpRequestsAdaptiveGroups 数据集中可用。使用自省 (introspection) 来探索完整的架构和可用的过滤器运算符。
webAssetsLabelsManaged 每次请求最多返回 10 个标签。
以下查询将返回按操作 ID 和托管标签集划分的请求计数,已过滤至匹配操作携带 cf-log-in 托管标签的请求。
query GetAdaptiveGroups($start: DateTime!, $end: DateTime!) {
viewer {
zones(filter: { zoneTag: $zoneTag }) {
httpRequestsAdaptiveGroups(
filter: {
datetime_geq: $start
datetime_leq: $end
requestSource: "eyeball"
webAssetsLabelsManaged_hasany: ["cf-log-in"]
}
limit: 25
orderBy: [count_DESC]
) {
count
dimensions {
webAssetsOperationId
webAssetsLabelsManaged
}
}
}
}
}将 cf-log-in 替换为任何托管标签或风险标签。您也可以省略 webAssetsLabelsManaged_hasany 过滤器,并将 webAssetsOperationId 作为唯一维度,按匹配的操作对流量进行归组,无论是否带有标签。
您可以使用 Logpush 将每个请求的 Web 资产数据导出到您选择的存储或 SIEM 系统。WebAssetsOperationID 和 WebAssetsLabelsManaged 字段在 HTTP 请求数据集中可用。
-
在 Cloudflare 仪表板中,前往安全 Settings(设置) 页面。
Go to Settings ↗ -
按 API 滥用 过滤。
-
在 Endpoint labels(端点标签) 下,选择 Manage labels(管理标签)。
-
命名标签并添加可选的标签描述。
-
将标签应用到您选择的端点。
-
选择 Create label(创建标签)。
或者,您可以通过 Security(安全性) > Web assets(Web 资产) 创建用户自定义标签。
-
在 Cloudflare 仪表板中,前往 Web assets(Web 资产) 页面。
Go to Web assets ↗ -
前往 Endpoints(端点) 选项卡。
-
选择您要标记的端点。
-
选择 Edit endpoint labels(编辑端点标签)。
-
在 User(用户) 下,选择 Create user label(创建用户标签)。
-
输入标签名称。
-
选择 Create(创建)。
- 登录到 Cloudflare 仪表板 ↗,然后选择您的账户和域。
- 前往 Security(安全性) > Settings(设置) > Labels(标签)。
- 在 Security labels(安全标签) 下,选择 Create label(创建标签)。
- 命名标签并添加可选的标签描述。
- 将标签应用到您选择的端点。
- 选择 Create label(创建标签)。
或者,您可以通过 API Shield 中的端点管理创建用户自定义标签:
- 登录到 Cloudflare 仪表板 ↗,然后选择您的账户和域。
- 前往 Security(安全性) > Settings(设置) > Labels(标签)。
- 选择您要标记的端点。
- 选择 Edit labels(编辑标签)。
- 在 User(用户) 下,选择 Create user label(创建用户标签)。
- 输入标签名称。
- 选择 Create(创建)。
-
在 Cloudflare 仪表板中,转到 Web assets 页面。
Go to Web assets ↗ -
在 Endpoints 选项卡中,选择您要标记的端点。
-
选择 Edit endpoint labels(编辑端点标签)。
从托管标签和用户定义标签的列表中,添加您想用于该端点的标签。
-
选择 Save labels(保存标签)。
- 登录到 Cloudflare 仪表板 ↗,然后选择您的账户和域。
- 转到 Security(安全性) > API Shield。
- 在 Endpoint Management(端点管理) 选项卡中,选择您要标记的端点。
- 选择 Edit labels(编辑标签)。
- 从托管标签和用户定义标签的列表中,添加您想用于该端点的标签。
- 选择 Save labels(保存标签)。
-
在 Cloudflare 仪表板中,前往安全 Settings(设置) 页面。
Go to Settings ↗ -
按 API 滥用 过滤。
-
在 Endpoint labels(端点标签) 上,选择 Manage labels(管理标签)。
-
在您要应用于多个端点的现有标签上,选择 Bulk apply(批量应用)。
-
通过勾选复选框来选择您要标记的端点。
-
选择 Apply labels(应用标签)。
- 登录到 Cloudflare 仪表板 ↗,然后选择您的账户和域。
- 前往 Security(安全性) > Settings(设置) > Labels(标签)。
- 在您要应用于多个端点的现有标签上,选择 Bulk apply(批量应用)。
- 通过勾选复选框来选择您要标记的端点。
- 选择 Save labels(保存标签)。
所有客户都可以使用端点标签。