跳转至

使用序列风控条件

序列风控用于按访问顺序与时间间隔识别异常行为。节点通过客户端 Cookie 跟踪同一客户端对各个序列端点的访问序列,您可以在自定义规则的条件中引用序列字段,拦截乱序访问、跳过关键步骤或间隔异常的请求。

适用场景

  • 业务流程保护:要求转账前必须先查询账户列表与余额。
  • 识别自动化脚本:拦截没有任何前序访问、直接请求敏感接口的流量。
  • 识别机器行为:两次关键操作之间间隔过短,判定为非真人操作。

前提条件

序列字段

新增或编辑规则时,在「匹配类型」的序列风控分组中选择以下字段:

匹配类型 含义 可用运算符
当前操作 本次请求命中的端点 Op ID;未命中任何端点时为空 等于、不等于
前序操作 前序端点序列,从近到远排列,不含当前请求 任一出现过、均未出现过、严格按序、未按序出现
最近第 N 步前序 前序序列中第 N 步的端点,N 取 0–9,0 表示最近一次前序 等于、不等于
距端点上次访问 距该端点最近一次请求的毫秒数;从未访问过时为空 大于等于、小于

取值说明:

  • 当前操作最近第 N 步前序:从下拉列表中选择一个已配置的端点。
  • 前序操作 配合「任一出现过」或「均未出现过」:选择一个或多个端点,最多 10 个,多个端点之间为「或」关系。
  • 前序操作 配合「严格按序」或「未按序出现」:按期望的先后顺序选择端点形成顺序链,语义为前序中按「最早 → 最近」依次出现所选端点;可填写完成时限(毫秒),表示从最早一个端点到当前请求不得超过该时长。
  • 距端点上次访问:先选择端点,再填写毫秒数。

注意:条件中引用的 Op ID 必须已存在于当前策略组的端点表中,否则规则无法保存。

语义边界

配置序列规则前,请了解以下行为特征:

  • 被拦截的请求不写入序列:只有放行的请求才会进入前序序列。
  • 从未访问过的端点,「距端点上次访问」为空,「大于等于」与「小于」均不命中。表达「间隔不足」请使用「小于」,并配合兜底规则覆盖从未访问的情况。
  • 序列状态保存在客户端 Cookie 中:用户清除 Cookie、更换网络(IP 变化)或更换浏览器(UA 变化)后,序列将从零开始。对 IP 频繁漂移的移动网络场景,建议配合「任一出现过」等宽松匹配,避免误伤。
  • 前序序列最多保留最近 10 个端点,超出窗口的更早访问不再参与匹配。
  • 静态资源请求不参与序列,不会污染前序记录。
  • 「距端点上次访问」受节点时钟精度影响,毫秒阈值建议预留一定余量。

配置示例:保护转账接口

场景:端点表已配置查账户列表(Op ID:aaaaaaaa)、查余额(bbbbbbbb)、发起转账(cccccccc)。要求转账前必须按顺序访问查账户列表、查余额,且从查账户列表到转账至少间隔 5 秒,否则拦截。

规则 1:放行合规请求

  1. 规则管理 页签单击 新增规则,规则名称填写「转账-合规放行」。
  2. 配置以下条件:
  3. 当前操作 等于 cccccccc
  4. 前序操作 严格按序 选择 aaaaaaaabbbbbbbb
  5. 距端点上次访问选择端点 aaaaaaaa大于等于 5000
  6. 动作选择 跳过后续规则,日志选择记录。
  7. 保存后,将该规则调整到下述兜底规则之前。

规则 2:兜底拦截

  1. 新增规则,规则名称填写「转账-兜底拦截」。
  2. 配置条件:当前操作 等于 cccccccc
  3. 动作选择 拦截,选择返回状态码与拦截页面。
  4. 保存后,确认其排在「转账-合规放行」之后。

满足顺序与间隔要求的转账请求在规则 1 命中后跳过后续规则;其余转账请求由规则 2 拦截。

验证结果

  • 规则保存成功,列表中放行规则在前、拦截规则在后。
  • 建议先将两条规则的动作设为 仅记录不拦截,在日志中观察命中情况,确认顺序与间隔判断符合预期后,再启用拦截动作。

常见问题

从未访问过某端点时,「距端点上次访问」条件会命中吗

不会。从未访问过时该字段为空,「大于等于」和「小于」均不命中。如需覆盖「从未访问或间隔不足」,请参考上文示例,用兜底拦截规则处理。

序列状态保存在客户端 Cookie 中。清除 Cookie、IP 或 UA 变化都会导致序列重置,下次请求视为首次访问。移动端场景建议优先使用「任一出现过」等宽松条件。

顺序链最多能配置多长

前序序列最多保留最近 10 个端点。顺序链超过该长度时,超出窗口的前序不会被记录,条件可能无法命中。

相关文档