顺序分析 (Sequence Analytics) 跟踪随时间推移的 API 端点请求顺序,使您能够发现用户如何与您的 API 进行交互。顺序分析会对您 API 中重要的用户旅程(顺序)进行分组和突出显示。您可以使用顺序缓解 (Sequence mitigation)来强制执行首选的顺序。
顺序是特定访问者在浏览网站、使用移动应用程序或通过 API 与 B2B 合作伙伴交互时发出的按时间顺序排列的 HTTP API 请求列表。
例如,在银行资金转账期间发出的部分顺序可能如下所示:
| 顺序 | 方法 | 路径 | 描述 |
|---|---|---|---|
| 1 | GET |
/api/v1/users/{user_id}/accounts |
user_id 是当前活动用户。 |
| 2 | GET |
/api/v1/accounts/{account_id}/balance |
account_id 是该用户的账户之一。 |
| 3 | GET |
/api/v1/accounts/{account_id}/balance |
account_id 属于该用户的另一个不同账户。 |
| 4 | POST |
/api/v1/transferFunds |
这包含一个请求正文,详细说明要从中转账的账户、要转入的账户以及要转账的金额。 |
API Shield 使用您配置的 会话标识符 以及处于 full 或 candidate 状态的操作,来构建每个会话请求的一组有顺序的 API 操作(HTTP 主机、方法和路径)。API Shield 可能会根据对顺序的评分,呈现各种不同长度的顺序。
API Shield 通过一种名为优先级得分 (precedence score) 的指标对顺序进行评分。顺序分析按最高优先级得分显示顺序。高得分的顺序包含可能按顺序一起发生的 API 请求。
使用上面的示例,高得分意味着顺序中的最后一个操作 POST /api/v1/transferFunds 极有可能在顺序 GET /api/v1/users/{user_id}/accounts 之后接着 GET /api/v1/accounts/{account_id}/balance 发生。这些得分是概率,API Shield 使用过去 24 小时的数据进行估算。
为了主动保护您的 API,您应该检查您的高得分顺序。对于每个高得分顺序,您应该与您的开发团队确认该顺序中的最终操作是否在合法情况下必须始终在该顺序中的其他操作之后发生。
使用上述示例,如果在合法情况下 POST /api/v1/transferFunds 必须始终在 GET /api/v1/users/{user_id}/accounts 和 GET /api/v1/accounts/{account_id}/balance 之后发生,您应该在顺序缓解中对该顺序的最后一个操作创建一个 Allow(允许) 规则。
您还应该考虑对这些端点应用其他 API Shield 保护(速率限制建议、架构验证、JWT 验证和 mTLS)。
更多信息请参阅博客文章 ↗。
现实世界中的 API 使用显示了许多连续重复的操作。为了便于浏览,顺序分析将连续重复的操作合并为一个。
所有 API Shield 客户均可使用顺序分析。未购买 API Shield 的 Free、Pro、Business 和 Enterprise 客户可以通过在 Cloudflare 仪表板中启用 API Shield 试用 ↗或联系您的客户经理来开始使用。
顺序分析目前需要会话标识符以及 API Shield 可以在边缘匹配的操作。确保您已设置会话标识符,并在 Web 资产中审查了处于 full 和 candidate 状态的操作。
目前顺序长度限制为最多九个操作。