临时 ID (Ephemeral IDs) 是 Turnstile 为每次访问者交互生成的短期设备标识符。与基于 IP 的检测不同,临时 ID 将访问者行为与特定的客户端设备联系起来,而不依赖 cookie 或客户端存储。这使得它们在应对在请求之间更改 IP 地址的攻击者时非常有效。
临时 ID 是为每次 Turnstile 质询尝试动态生成的。不需要 cookie 或本地存储。
临时 ID 的作用域限定在您的 Cloudflare 账户,无法跨账户共享。ID 会在几天内过期,不能用于识别个人用户。
这种方法对于应对凭证填充和虚假账户创建攻击特别有效,在这类攻击中,攻击者会轮换 IP 地址以逃避检测。
有关更多信息,请参阅博客文章 ↗。
-
联系您的 Cloudflare 账户团队,为您的账户启用临时 ID 权限。此功能需要企业版 (Enterprise) 级别的访问权限,无法自行激活。
-
启用权限后,使用 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 }' -
通过检查您的小组件配置来确认临时 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 会包含在 Siteverify API 响应中。
{
"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 的访问权限。