数据丢失防护(DLP)可以在模式匹配时运行你账户中的 Cloudflare Worker。使用你的 Worker 应用组织特定的检查、调整置信度或拒绝匹配。
当此功能对你的账户可用时,自定义函数会出现在条目编辑器中。你可以将它们附加到自定义模式条目。
- 在配置 DLP 的同一个 Cloudflare 账户中设置 Workers。如果以前没用过 Workers,请按照 Workers 快速入门指南操作。
- 为该账户配置 Workers 子域。
将 Worker 部署到配置 DLP 的账户。导出名为 DlpValidationEntrypoint 的类,并实现 validate 方法。从 @cloudflare/zt-types 导入其基类和类型。
npm i @cloudflare/zt-typesyarn add @cloudflare/zt-typespnpm add @cloudflare/zt-typesbun add @cloudflare/zt-types该方法会收到一个 DlpValidationInput,包含条目 ID、匹配偏移量,以及请求方法和 URL。其 excerpt 经过 base64 编码,包含匹配内容及周围上下文。userId 字段是可选的。
import { DlpValidation } from "@cloudflare/zt-types";
export class DlpValidationEntrypoint extends DlpValidation {
async validate(input) {
if (input.entryId === "entry-id-to-reject") {
return { score: "veto" };
}
return { score: 0 };
}
}import {
DlpValidation,
type DlpValidationInput,
type DlpValidationResult,
} from "@cloudflare/zt-types";
export class DlpValidationEntrypoint extends DlpValidation {
async validate(input: DlpValidationInput): Promise<DlpValidationResult> {
if (input.entryId === "entry-id-to-reject") {
return { score: "veto" };
}
return { score: 0 };
}
}将示例条件替换为你的验证逻辑。返回 -1 到 1 的分数以调整置信度。正分会提高置信度。负分会降低置信度。分数为 0 时置信度不变。返回 "veto" 以拒绝匹配。
-
登录 Cloudflare One,前往 Data loss prevention > Detection entries。
前往 Detection entries ↗ -
在 Pattern 选项卡中,添加模式条目或编辑现有自定义模式条目。
-
在 Validators 中,选择 Custom functions。
-
选择 Add custom function。
-
选择 Create new,或选择 Use existing 并选择已保存的函数。
-
对于新函数,输入名称并选择符合条件的 Worker。
-
(可选)对于新函数,选择 Worker 出错或超时时的默认行为。
-
对于新函数,选择 Create。在模式条目上选择 Save。
默认行为选项为 No fallback、Veto 或 Score。分数范围为 -1 到 1。
要在 DLP 扫描中使用该模式条目,请将其添加到自定义 DLP 配置式。