算力消耗防护

最近更新时间:2026-05-26 10:03:32

我的收藏

功能概述

算力消耗防护是 WAF 大模型安全模块的基础能力,用于降低恶意用户或 Bot 通过高频调用、超长上下文等手段大量消耗您的大模型算力资源(GPU 推理、Token 额度)的风险,避免业务成本异常增长或影响正常用户体验。
本能力通过请求频次和 Token 消耗量两个维度对访问行为进行协同管控,命中规则后可选择观察或拦截两种处置动作。
若不启用算力消耗防护,您可能面临以下风险:
单个用户在短时间内刷取数百万 Token,导致账单激增。
Bot 批量注册账号,消耗免费额度。
慢速请求占用模型并发资源,影响正常用户体验。

操作场景

本文介绍如何通过算力消耗规则限制大模型接口的调用频次和 Token 消耗量。

前提条件

已完成 流量接入SDK/API 接入

操作步骤

1. 登录 Web 应用防火墙控制台,在左侧导航栏,选择大模型安全 > 防护配置 > 算力消耗规则
2. 在算力消耗规则页签,单击添加规则
3. 在添加算力消耗防护规则窗口中,进行信息配置:

参数说明
字段名称
说明
规则名称
设置规则名称。
会话标识
选择此前配置的会话标识,用于区分不同用户,实现对单个用户的精准算力消耗检测。
说明:
使用 SDK/API 接入方式时,无需配置该参数。
默认需要选择 LLM 业务匹配方式,选择添加的 LLM 业务防护路径配置。
说明:
单条规则中不同匹配方式为 “与” 关系。
使用 SDK/API 接入方式时,无需配置该参数。
防护规则
基于请求频次的防护:统计单个用户 ID 在单位时间(1 分钟、5 分钟、10 分钟、30 分钟、60 分钟、6 小时、12 小时、24 小时、每整点小时、每自然天,值为 2-100000,值必须为整数)内的请求次数。
基于 token 消耗量的防护:根据业务类型配置单个用户 ID 在单位时间(1 分钟、5 分钟、10 分钟、30 分钟、60 分钟、6 小时、12 小时、24 小时、每整点小时、每自然天)内的总 Token 消耗量。负载均衡型 WAF 接入的域名暂不支持此功能。
执行动作
WAF 支持针对算力超量用户实现两种处置方式:
观察:仅记录日志。
拦截
当选择类型为基于请求频次的防护:在检测到用户超量后,将阻断用户发往源站的请求,并返回 WAF 默认拦截提示页面,可以前往基础安全修改默认拦截提示页面的内容。
当选择类型为基于 token 消耗量防护:在检测到用户超量后,WAF 会中断源站对用户的响应,并在返回的 data 中插入自定义提示内容,可以配置返回给用户的提示内容。
WAF 拦截时,如果是请求拦截,返回 WAF 默认拦截提示页面,可以前往基础安全修改默认拦截提示页面的内容。如果是响应拦截,除了会在返回的 data 中插入自定义提示内容配置以外,还会在返回的 data 数据中插入一个 uuid 字段以及 uuid 值,为了更好的拦截体验,也可以对业务前端进行逻辑修改,在检测到返回字段中存在 uuid 字段时,调整实际拦截效果。
优先级
配置规则优先级。优先级逻辑:请输入1-100的整数,数字越小,代表这条规则的执行优先级越高;相同优先级下,更新时间越晚,优先级越高。

匹配方式

参数类型
支持逻辑符号
说明
请求 Header 参数值
内容为空、存在、不存在、包含、不包含、属于、不属于、前缀匹配、后缀匹配
可设置多个匹配值(通过换行分隔),用于识别特定请求头的特征值。
GET 参数值
内容为空、存在、不存在、包含、不包含
支持对 GET 请求参数值的空值、存在性及内容特征匹配。
POST 参数值
内容为空、存在、不存在、包含、不包含
支持对 POST 请求参数值的空值、存在性及内容特征匹配。
Cookie 参数值
内容为空、存在、不存在、包含、不包含、属于、不属于、前缀匹配、后缀匹配
支持对 Cookie 值的空值、存在性、内容特征及前后缀规则匹配。
Referer 参数值
内容为空、存在、不存在、包含、不包含、属于、不属于、前缀匹配、后缀匹配
支持对来源链接(Referer)的空值、存在性、内容特征及前后缀规则匹配。
访问源 IP
属于、不属于
支持对客户端 IP 地址的归属范围匹配(需填写具体 IP 段或地址)。
IP 归属地
属于、不属于
支持对 IP 地址所属地域的匹配(可选择国内/国外具体地区,支持多地区组合配置)。
会话 ID
属于、不属于
支持对会话 ID 的归属范围匹配(需填写具体会话 ID 或通过换行分隔多个 ID)。
User-Agent
属于、不属于
支持对用户代理(User-Agent)的归属范围匹配(需填写具体 UA 标识或通过换行分隔多个标识)。
为优化拦截体验,提供更好的交互体验,以下提供业务前端针对大模型安全拦截逻辑修改的示例代码,该示例代码基于 Deepseek 接口格式,可参考嵌入业务前端代码中,实现与大模型安全的防护逻辑联动:
拦截机制说明:
请求方向拦截:大模型安全对于请求方向的拦截方式为同步拦截,客户端发送请求后,服务器对请求进行风险检查(如敏感词)。若触发拦截,直接返回大模型安全预设的拦截页面(不会使用规则中的自定义拦截提示内容),如业务前端需处理拦截效果,只需调整业务前端对于响应状态码和状态提示的效果。
响应方向拦截:大模型安全对于响应方向的拦截方式为异步拦截,服务器在流式输出内容时,大模型安全同步检测风险。触发拦截时:
大模型安全会中断流式内容输出。
在响应数据中添加 uuid 字段,并在定义的响应内容字段中,插入规则配置的自定义拦截提示内容。
如业务前端需处理拦截效果,可以通过检测 uuid 字段的存在性,判断拦截状态,并调整业务前端的拦截效果:
若未识别到 uuid 字段:正常展示内容。
若识别到 uuid 字段:可以清空已输出内容,重置显示为大模型安全插入的自定义提示内容。
4. 完成上述所有参数设置后,请仔细检查,确认无误后,打开规则开关,单击确定提交配置,该规则即可生效,对算力资源进行防护。

算力消耗防护场景示例

1. 参考 业务接入,接入大模型业务并完成会话标识、大模型防护路径配置。
2. 登录 Web 应用防火墙控制台,在左侧导航栏,选择大模型安全 > 防护配置 > 算力消耗规则
3. 在算力消耗规则页面,单击添加规则,配置一条高频请求拦截示例规则,设置为 1 分钟请求超过 1 万 token,超出后拦截,并返回自定义提示词,单击确定

字段名称
说明
防护规则
配置基于 token 消耗量防护,并配置检测值为 1 万 token 每分钟。
执行动作
拦截。
拦截提示使用自定义提示
您好,您最近 1 分钟使用的 Token 量较高,请稍等一段时间再使用。
优先级
1。
规则开关
开启。
4. 在大模型业务侧,请求大模型输出 2 篇 3000 字的文章,即可触发算力消耗拦截,并在用户侧返回拦截提示语。如果大模型输出速率较慢,也可以调整为 5 分钟请求超过 1 万 token,以便更便捷地完成场景验证。