INTEGRITY Документация

Любое имя хоста (только Enterprise)

Функция Any Hostname снимает требование указывать имена хостов при создании виджета, поэтому виджет работает на любом домене.

По умолчанию проверка имени хоста защищает ваши виджеты от использования посторонними. Разрешение Any Hostname снимает это ограничение, и при создании виджета поле имени хоста становится необязательным.

Если этот параметр включён, виджеты можно создавать без обязательного указания имени хоста и использовать на любом домене без предварительной настройки. Защита на основе проверки имени хоста при этом отключается.

Внедрение

Чтобы снизить риски при использовании Any Hostname, отслеживайте применение виджета через Turnstile Analytics, чтобы находить неожиданные закономерности, реализуйте в коде приложения серверную проверку с контролем имени хоста и используйте action и cData, чтобы отслеживать источники использования виджетов и понимать, где они развёрнуты.

При использовании функции Any Hostname обязательно добавьте дополнительную проверку в серверном коде, иначе средства защиты перестанут работать. Всегда проверяйте hostname в ответах Siteverify.

Пример ответа
async function validateTurnstileWithHostname(token, expectedHostnames = []) {
  const response = await fetch('https://challenges.cloudflare.com/turnstile/v0/siteverify', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      secret: process.env.TURNSTILE_SECRET,
      response: token
    })
  });

  const result = await response.json();

  if (!result.success) {
    return { valid: false, error: 'Token validation failed' };
  }

  // Additional hostname validation when using Any Hostname
  if (expectedHostnames.length > 0 && !expectedHostnames.includes(result.hostname)) {
    return { 
      valid: false, 
      error: 'Hostname not in allowed list',
      hostname: result.hostname 
    };
  }

  return { valid: true, data: result };
}

Регулярно просматривайте Turnstile Analytics в поисках нетипичных сценариев использования и следите за полем hostname в ответах Siteverify. Для использования виджета на неожиданных доменах можно настроить оповещения.

Используйте action и cData, чтобы отслеживать источники использования виджетов.

<!-- Widget with tracking information -->
<div class="cf-turnstile" 
     data-sitekey="your-site-key"
     data-action="customer-portal"
     data-cdata="tenant-123"></div>

Сценарии использования

Функция Any Hostname особенно полезна клиентам, у которых есть: