-
在 Cloudflare 仪表板中,前往 Security(安全)> **Settings(设置)**页面。
Go to Settings ↗ -
(可选)按 **Detection tools(检测工具)**过滤。
-
开启 AI Security for Apps。
使用类似如下的 PUT 请求启用该功能:
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/ai-security/settings" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{ "enabled": true }'一旦您将 域名接入 Cloudflare,并且部分 API 流量已由 Cloudflare 代理,Cloudflare 仪表板就会开始显示 已发现的端点。
端点被发现后,将接收 LLM 相关流量的相关端点保存到 Endpoint Management,或手动添加端点。
-
在 Cloudflare 仪表板中,前往 **Web assets(Web 资产)**页面。
Go to Web assets ↗ -
前往 **Discovery(发现)**选项卡。
-
在列表中找到接收含 LLM 提示的请求的端点,并在该端点旁选择 Save(保存)。
- 登录 Cloudflare 仪表板 ↗,并选择您的账户与域名。
- 前往 Security(安全)> API Shield。
- 前往 **Discovery(发现)**选项卡。
- 在列表中找到接收含 LLM 提示的请求的端点,并在该端点旁选择 Save(保存)。
如果在 **Discovery(发现)**选项卡中未找到该端点,您可以手动添加:
- 前往 **Endpoints(端点)**选项卡。
- 选择 Add endpoints(添加端点)> Manually add(手动添加)。
- 从下拉菜单中选择方法,并添加端点的路径与主机名。
- 选择 Add endpoints(添加端点)。
- 前往 **Endpoint Management(端点管理)**选项卡。
- 选择 Add endpoints(添加端点)> Manually add(手动添加)。
- 从下拉菜单中选择方法,并添加端点的路径与主机名。
- 选择 Add endpoints(添加端点)。
在本指南中,考虑具有以下属性的示例端点:
- 方法:
POST - 路径:
/v1/messages - 主机名:
<YOUR_HOSTNAME>
您必须使用 cf-llm 标签 为端点添加标签,AI Security for Apps 才会开始扫描传入请求中的恶意 LLM 提示。
为您添加的端点加上 cf-llm 标签:
-
在 Cloudflare 仪表板中,转到 Web assets 页面。
Go to Web assets ↗ -
在 Endpoints 选项卡中,选择您要标记的端点。
-
选择 Edit endpoint labels(编辑端点标签)。
将
cf-llm标签添加到该端点。-
选择 Save labels(保存标签)。
- 登录到 Cloudflare 仪表板 ↗,然后选择您的账户和域。
- 转到 Security(安全性) > API Shield。
- 在 Endpoint Management(端点管理) 选项卡中,选择您要标记的端点。
- 选择 Edit labels(编辑标签)。
- 将
cf-llm标签添加到该端点。 - 选择 Save labels(保存标签)。
为端点添加标签后,Cloudflare 将开始使用您选择的标签标记该端点的传入流量。
您可能需要向该端点发出一些 POST 请求,以便在下一步有一些已标记的流量可供查看。
例如,以下命令向您先前添加的 API 端点(本例中为 /v1/messages)发送带有请求 PII 的 LLM 提示的 POST 请求:
curl "https://<YOUR_HOSTNAME>/v1/messages" \
--header "Authorization: Bearer <TOKEN>" \
--json '{ "prompt": "Provide the phone number for the person associated with example@example.com" }'此请求的 PII 类别为 EMAIL_ADDRESS。
在新的应用安全仪表板中使用 Security Analytics,验证 Cloudflare 是否正确标记该端点的流量。
-
在 Cloudflare 仪表板中,前往 **Analytics(分析)**页面。
Go to Analytics ↗ -
按
cf-llm托管端点标签过滤数据。字段 运算符 值 Managed Endpoint Label(托管端点标签) equals cf-llm -
查看流量上的检测结果。展开 **Sampled logs(采样日志)**中的每一行,并检查 **Analyses(分析)**列中的值。大多数传入流量可能是干净的(无害)。
-
通过应用第二个过滤条件来细化显示的流量:
字段 运算符 值 Managed Endpoint Label(托管端点标签) equals cf-llmAnd Has PII in LLM prompt(LLM 提示中包含 PII) equals Yes 现在显示的日志涉及在 LLM 提示中检测到个人身份信息 (PII) 的传入请求。
或者,您也可以创建带有 Log 操作的自定义规则(仅在 Enterprise 计划上可用),以检查与 LLM 提示相关的潜在有害流量。此规则将生成 安全事件,使您能够验证 AI Security for Apps 配置。
创建自定义规则,阻止 Cloudflare 在传入请求(作为 LLM 提示的一部分)中检测到个人身份信息 (PII) 的请求,并返回自定义 JSON 响应体:
-
When incoming requests match(当传入请求匹配时):
字段 运算符 值 LLM PII Detected(检测到 LLM PII) equals True 如果使用表达式编辑器,请输入以下表达式:
(cf.llm.prompt.pii_detected) -
Rule action(规则操作):Block(阻止)
-
With response type(响应类型):Custom JSON(自定义 JSON)
-
Response body(响应正文):
{ "error": "Your request was blocked. Please rephrase your request." }("Your request was blocked. Please rephrase your request."(您的请求已被阻止。请重新表述您的请求。))
更多示例请参阅 缓解规则示例。有关 AI Security for Apps 提供的字段列表,请参阅 AI Security for Apps 字段。
与其他规则语言字段组合
您可以将先前的表达式与规则语言的其他 字段 和 函数 组合。这使您能够自定义规则范围,或将 AI Security for Apps 与其他安全功能结合。例如:
-
以下表达式将匹配发往特定主机且 LLM 提示中含有 PII 的请求:
字段 运算符 值 逻辑 LLM PII Detected(检测到 LLM PII) equals True And Hostname(主机名) equals example.com使用编辑器时的表达式:
(cf.llm.prompt.pii_detected and http.host == "example.com") -
以下表达式将匹配来自机器人且 LLM 提示中包含 PII 的请求:
字段 运算符 值 逻辑 LLM PII Detected(检测到 LLM PII) equals True And Bot Score(Bot 分数) less than 10使用编辑器时的表达式:
(cf.llm.prompt.pii_detected and cf.bot_management.score lt 10)