跳转到内容
本站为社区维护的非官方中文翻译,与 Cloudflare, Inc. 无关联。本站不提供账户登录,请勿在任何非官方站点输入您的 Cloudflare 账户信息。官方文档:developers.cloudflare.com

使用 Cloudflare Workers 验证数据丢失防护匹配项

最后更新 查看 MarkdownAgent 设置

数据丢失防护(DLP)可以在模式匹配时运行你账户中的 Cloudflare Worker。使用你的 Worker 应用组织特定的检查、调整置信度或拒绝匹配。

当此功能对你的账户可用时,自定义函数会出现在条目编辑器中。你可以将它们附加到自定义模式条目。

设置你的 Workers 账户

  1. 在配置 DLP 的同一个 Cloudflare 账户中设置 Workers。如果以前没用过 Workers,请按照 Workers 快速入门指南操作。
  2. 为该账户配置 Workers 子域。

创建验证 Worker

将 Worker 部署到配置 DLP 的账户。导出名为 DlpValidationEntrypoint 的类,并实现 validate 方法。从 @cloudflare/zt-types 导入其基类和类型。

npm i @cloudflare/zt-types

该方法会收到一个 DlpValidationInput,包含条目 ID、匹配偏移量,以及请求方法和 URL。其 excerpt 经过 base64 编码,包含匹配内容及周围上下文。userId 字段是可选的。

src/index.jsjs
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 };
	}
}
src/index.tsts
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" 以拒绝匹配。

将 Worker 附加到模式条目

  1. 登录 Cloudflare One,前往 Data loss prevention > Detection entries。

    前往 Detection entries ↗
  2. 在 Pattern 选项卡中,添加模式条目或编辑现有自定义模式条目。

  3. 在 Validators 中,选择 Custom functions。

  4. 选择 Add custom function。

  5. 选择 Create new,或选择 Use existing 并选择已保存的函数。

  6. 对于新函数,输入名称并选择符合条件的 Worker。

  7. (可选)对于新函数,选择 Worker 出错或超时时的默认行为。

  8. 对于新函数,选择 Create。在模式条目上选择 Save。

默认行为选项为 No fallback、Veto 或 Score。分数范围为 -1 到 1。

要在 DLP 扫描中使用该模式条目,请将其添加到自定义 DLP 配置式。

这篇文档对您有帮助吗?