跳转到内容
搜索文档

临时 ID (Ephemeral IDs)

最后更新 查看 MarkdownAgent 设置

临时 ID (Ephemeral IDs) 是 Turnstile 为每次访问者交互生成的短期设备标识符。与基于 IP 的检测不同,临时 ID 将访问者行为与特定的客户端设备联系起来,而不依赖 cookie 或客户端存储。这使得它们在应对在请求之间更改 IP 地址的攻击者时非常有效。

临时 ID 的工作原理

临时 ID 是为每次 Turnstile 质询尝试动态生成的。不需要 cookie 或本地存储。

临时 ID 的作用域限定在您的 Cloudflare 账户,无法跨账户共享。ID 会在几天内过期,不能用于识别个人用户。

这种方法对于应对凭证填充和虚假账户创建攻击特别有效,在这类攻击中,攻击者会轮换 IP 地址以逃避检测。

有关更多信息,请参阅博客文章 ↗。


实施

启用临时 ID

  1. 联系您的 Cloudflare 账户团队,为您的账户启用临时 ID 权限。此功能需要企业版 (Enterprise) 级别的访问权限,无法自行激活。

  2. 启用权限后,使用 Cloudflare API 为特定小组件激活临时 ID。

    cURL 命令bash
    curl -X PUT "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/challenges/widgets/$WIDGET_ID" \
      -H "Authorization: Bearer $API_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "ephemeral_id": true
      }'
  3. 通过检查您的小组件配置来确认临时 ID 已处于活动状态。

    cURL 命令bash
    curl -X GET "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/challenges/widgets/$WIDGET_ID" \
      -H "Authorization: Bearer $API_TOKEN"

访问临时 ID

启用后,临时 ID 会包含在 Siteverify API 响应中。

Siteverify API 响应json
{
	"success": true,
	"challenge_ts": "2022-02-28T15:14:30.096Z",
	"hostname": "example.com",
	"error-codes": [],
	"action": "login",
	"cdata": "sessionid-123456789",
	"metadata": {
		"ephemeral_id": "x:9f78e0ed210960d7693b167e"
	}
}

可用性

临时 ID 适用于拥有 Enterprise Turnstile 附加服务的 Enterprise Bot Management 客户,或独立 Enterprise Turnstile 客户。请联系您的账户团队以获取临时 ID 的访问权限。

这篇文档对您有帮助吗?