一、功能概述
自定义防护可与 安全代答 联动,命中风险时返回替代回答,有助于降低拒答率。
注意:说明:
注意:安全代答当前处于公测阶段,默认不开放,如需使用请 提交工单 或联系专属客户经理申请。
二、操作场景
这篇说说如何配置自定义防护规则,对大模型的输入 / 输出内容进行风险检测,并可选联动安全代答。
三、前提条件
已完成 流量接入 或 SDK/API 接入。
四、操作步骤
1. 登录 Web 应用防火墙控制台,在左侧导航栏,选择大模型安全 > 防护配置 > 自定义防护规则。
2. 在自定义防护规则页面,单击添加规则。
3. 在添加自定义防护规则窗口中,进行信息配置:
参数说明
| 字段名称 | 说明 |
| 规则名称 | 设置规则名称。 |
| 会话标识 | 选择此前配置的会话标识,用于区分不同用户,实现对单个用户的精准内容安全检测。说明:使用 SDK/API 接入方式时,无需配置该参数。 |
| 匹配方式 | 默认需要选择大模型安全业务匹配方式,选择添加的大模型安全业务防护路径配置。说明:单条规则中不同匹配方式为 “与” 关系。使用 SDK/API 接入方式时,无需配置该参数。 |
| 检测模式 | 输入与输出均检测:同时对输入和输出内容进行检测。仅检测输入内容:对大模型防护路径中定义的提示词部分内容进行检测。仅检测输出内容:对大模型防护路径中定义的思考与输出部分内容进行检测。如果模型为推理模型,则输出内容的检测范围同时包括思考内容与回答内容。负载均衡型 WAF 接入的域名暂不支持此功能。 |
| 模态类型 | 文本:对用户交互中的文本内容进行安全检测,单次请求文本大小不超过 240 KB。图片:对用户交互中的图片内容进行安全检测,单张图片不超过 10 MB,支持 JPG、JPEG 等格式。说明:仅 SDK/API 接入方式支持配置模态类型。 |
| 检测内容 | 可自选多个条件之间的运算逻辑。与(默认)或 |
| | 数据分类:覆盖身份证号、社保卡号、URL 地址等多类敏感信息识别。完整规则项以控制台展示为准。说明:仅旗舰版大模型安全支持敏感信息识别检测。涉敏信息:支持识别违法违规类内容,并提供不同严格程度的检测档位。完整规则项以控制台展示为准。关键词:支持识别关键词信息,最大支持配置 20 个关键词,多个关键词为或关系。请留意,对于输出内容的检测,由于大模型输出为流式输出,WAF 检测时对于长文本会进行组合检测,因此如果配置的关键词过长,检测有可能会无法命中,建议单个关键词长度配置在 10 个字符以内。提示词注入:支持识别提示词注入攻击行为。注意,选择此内容配置时,仅支持对输入部分信息进行检测。正则表达式:支持正则匹配。回车分隔多个值,最多输入20个,单个最多120字符。说明:正则表达式仅支持 RE2 语法规范。编码类型识别:支持检测输入或输出中是否包含特定编码类型的内容。支持 Base64、URL/Percent 编码等编码类型。支持多选,多个编码类型之间为"或"关系,即命中任意一种即触发规则。 |
| 执行动作 | 观察:记录日志,但不会拦截用户的请求。拦截:拦截用户的请求,并返回提示。代答:不将请求转发至后端模型,而是由 WAF 直接进行安全代答。详情请参见 安全代答。说明:仅 SDK/API 接入方式支持安全代答。 |
| 优先级 | 配置规则优先级。 优先级逻辑:请输入1-100的整数,数字越小,代表这条规则的执行优先级越高;相同优先级下,更新时间越晚,优先级越高。 |
为优化拦截体验,提供更好的交互体验,以下提供业务前端针对 WAF 大模型安全模块拦截逻辑修改的示例代码,该示例代码基于 DeepSeek 接口格式,可参考嵌入业务前端代码中,实现与 WAF 大模型安全模块的防护逻辑联动:
注意:拦截机制说明:
请求方向拦截默认拦截提示页面处理,效果为展示拦截提示的内容到聊天窗口,示例代码如下:if (!initResponse.ok) { const errorText = await initResponse.text(); console.error('API 错误响应:', errorText); removeMessage(responseMessageId); // 移除正在显示的消息容器 // 解析服务器返回的错误信息 let errorMessage = ''; try { const errorData = JSON.parse(errorText); errorMessage = errorData.error?.message || errorData.message || errorText; } catch (e) { errorMessage = errorText; } // 显示错误消息到聊天界面 addMessage(errorMessage, 'error'); updateStatus('请求失败', 'error'); return;}响应方向拦截data 数据中插入自定义提示内容、uuid 字段的替换和展示处理,效果为重置掉当前已返回的内容,并展示自定义提示内容,示例代码如下:// UUID 检测处理 – 基于代码逻辑if (parsed.uuid) { console.log(' 检测到内容替换信号!'); console.log('原始数据:', parsed); console.log('替换前内容:', fullContent); // 从服务器返回的数据中提取新内容 let newContent = ''; if (parsed.choices && parsed.choices[0] && parsed.choices[0].delta && parsed.choices[0].delta.content) { newContent = parsed.choices[0].delta.content; console.log('✅ 从 choices[0].delta.content 获取内容:', newContent); } else if (parsed.content) { newContent = parsed.content; console.log('✅ 从 content 获取内容:', newContent); } else { console.log('⚠️ 在数据中找不到 content'); } // 完全重置已显示的内容 fullContent = newContent; reasoning = ''; contentWasReplaced = true; // 清空当前显示内容并重新显示服务器返回的新内容 if (selectedModel === 'deepseek-reasoner') { // R1 模式:清空思考过程和答案,显示新内容 clearR1Message(responseMessageId); updateR1StreamingMessage(responseMessageId, '', fullContent, false); addContentReplacedIndicator(responseMessageId); } else { // 普通模式:清空消息,显示新内容 clearStreamingMessage(responseMessageId); updateStreamingMessage(responseMessageId, fullContent, true); addContentReplacedIndicator(responseMessageId); } console.log('✅ 内容替换完成,当前 fullContent:', `"${fullContent}"`); // 停止处理后续数据流 shouldStopProcessing = true; console.log(' 设置停止处理标记,不再处理后续数据');}
4. 完成上述所有参数设置后,打开规则开关,然后单击确定提交配置,该规则即可生效,对大模型内容安全进行防护。
五、关键词库
将业务接入 WAF 大模型安全模块后,系统会自动生成一条自定义防护规则(默认未启用,需手动配置后开启)。该规则的基本信息如下:
·规则 ID:5100000000
·规则名称:关键词库检测
该规则的配置项和配置过程与这篇 操作步骤 中添加自定义防护规则一致,区别在于其检测内容仅支持选择内置关键词库和自定义关键词库。可在自定义防护规则列表中找到该规则,单击编辑进行配置。
·内置关键词库:WAF 大模型安全模块内置的多类敏感关键词库,覆盖主要违规内容场景,帮助快速建立内容安全基线。内置关键词库由腾讯安全团队持续维护和更新,无需手动配置即可使用。
注意:说明:
注意:内置关键词库的类别和说明以控制台展示为准。
·自定义关键词库:除内置关键词库外,还可以创建自定义关键词库,添加业务特有的敏感词条。
·新建自定义关键词库:
a. 前往 大模型安全 > 防护配置页面,单击自定义关键词库配置进行配置。
b. 在自定义关键词库设置页面,单击新建,构建自定义关键词库。
c. 在新建自定义关键词库窗口中,配置相关参数,单击确定。
| 字段名称 | 说明 |
| 词库名称 | 自定义关键词库的名称。 |
| 描述 | 自定义关键词库的描述。 |
| 关键词 | 自定义关键词库的关键词。每行仅填写 1 个关键词,单次配置最多支持 1000 行。 |
·导入自定义关键词库:
a. 在自定义关键词库设置页面,单击导入数据。
b. 单击下载导入模板,按照模板内的提示配置关键词库相关参数。
| 字段名称 | 说明 |
| 词库名称 | 自定义关键词库的名称。 |
| 描述 | 自定义关键词库的描述。 |
| 关键词 | 自定义关键词库的关键词。每行仅填写 1 个关键词,单次配置最多支持 1000 行。 |
c. 单击上传或者将模板文件拖拽到中心区域,单击确定。
·导出/删除自定义关键词库:
a. 在自定义关键词库设置页面,勾选需要导出或删除的单个或多个关键词库条目。如需批量选择当前列表中的所有关键词库,可直接勾选标题栏的全选复选框。
注意:说明:
注意:已被规则引用的自定义关键词库无法进行删除操作。
b. 可根据实际需求,直接单击批量导出或批量删除执行相应操作;若有其他需求,也能在更多中选择全部导出或全部删除操作。
六、自定义防护规则场景示例
1. 参考 业务接入,接入大模型业务。流量接入还需完成会话标识、大模型防护路径配置。
2. 登录 Web 应用防火墙控制台,在左侧导航栏,选择大模型安全 > 防护配置 > 自定义防护规则。
3. 在自定义防护规则页面,单击添加规则,配置一条自定义防护规则,参考进行如下配置:
| 字段名称 | 说明 |
| 设置检测模式 | 输入输出均检测。 |
| 执行动作 | 信息类型:关键词。匹配内容:12345、abcd。 |
| 执行动作 | 拦截。 |
| 拦截提示 | 自定义提示,并配置内容为:自定义提示拦截测试验证。 |
| 优先级 | 1。 |
| 规则开关 | 开启。 |
4. 前往大模型业务前端,先输入提问:按顺序连着输出前五个正整数,然后观察拦截情况。可以观察到,输入内容中存在关键词 12345 时,输入会被拦截并返回配置的拦截提示页面内容。
5. 然后继续输入提问:按顺序连着输出前四个小写英文字母,然后观察拦截情况。可以观察到,输出内容中存在关键词 abcd 时,输出会被拦截,并返回配置的自定义拦截提示内容。
6. 通过 SDK/API 接入时,可前往 日志审计 查看对应的攻击日志信息。
七、相关文档
·流量接入
·SDK/API 接入
·提示词攻击防护
·内容合规检测
·敏感数据检测
·日志审计