Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Any Hostname(Enterprise のみ)

最終更新 Markdown で表示Agent セットアップ

Any Hostname 機能を使うと、ウィジェット作成時にホスト名を指定する必要がなくなり、任意のドメインでウィジェットを動作させられます。

デフォルトでは、ホスト名の検証はウィジェットの不正利用を防ぐセキュリティ機能です。Any Hostname の利用権を付けるとこの制限が外れ、ウィジェット作成時のホスト名フィールドが任意になります。

有効にすると、ホスト名を必須指定せずにウィジェットを作成でき、事前設定なしで任意のドメインで使えます。ホスト名検証による保護も外れます。

実装

Any Hostname を使うときのセキュリティリスクを下げるには、Turnstile Analytics でウィジェットの利用状況を監視して想定外のパターンを見つけます。あわせて、アプリケーションコードでホスト名を確認するサーバーサイド検証を実装し、actioncData パラメーターでウィジェットの利用元を追跡して、どこにデプロイされているかを把握します。

Any Hostname 機能を使うときは、セキュリティ管理を維持するために、サーバーサイドコードで追加の検証を実装することが重要です。Siteverify レスポンスの hostname フィールドは、必ず検証してください。

レスポンスの例js
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 で想定外の利用パターンがないか定期的に確認し、Siteverify レスポンスの hostname フィールドを監視してください。想定外のドメインでのウィジェット利用に対するアラートも設定できます。

actioncData パラメーターを使い、ウィジェットの利用元を追跡します。

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

ユースケース

Any Hostname 機能は、次のようなお客様に特に役立ちます。

  • 個別に管理するドメインが多い、大規模なドメインポートフォリオを持つ場合。
  • サブドメインや顧客固有ドメインを頻繁に作成する、動的なサブドメイン作成がある場合。
  • 複数の顧客ドメインにサービスを提供する SaaS プラットフォームなど、マルチテナントアプリケーション。
  • さまざまなステージング環境や開発用ドメインでテストする開発環境。

役に立ちましたか?