跳转到内容
搜索文档

临时 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 的访问权限。

这篇文档对您有帮助吗?