跳转到内容
搜索文档

任意域名 (Any Hostname)(仅限企业版)

最后更新 查看 MarkdownAgent 设置

任意域名 (Any Hostname) 功能去除了在创建小组件时必须指定域名的要求,允许小组件在任何域上正常工作。

默认情况下,域名验证是一项用于防止未经授权使用您的小组件的安全功能。任意域名权限消除了这一限制,使得在创建小组件时域名字段变为可选。

启用后,可以在未指定必需域名的情况下创建小组件,并且可以在任何域上使用而无需预先配置。域名验证防护也会被移除。

实施

要在使用“任意域名”功能时降低安全风险,请通过 Turnstile 分析 (Turnstile Analytics) 监控小组件的使用情况以识别异常模式,在您的应用程序代码中实施带有域名检查的服务器端验证,并使用 actioncData 参数跟踪小组件使用的来源并识别部署小组件的位置。

使用“任意域名”功能时,必须在服务器端代码中实施额外的验证以维持安全控制。始终验证 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: '令牌验证失败' };
  }

  // 使用“任意域名”时的额外域名验证
  if (expectedHostnames.length > 0 && !expectedHostnames.includes(result.hostname)) {
    return { 
      valid: false, 
      error: '主机名不在允许列表中',
      hostname: result.hostname 
    };
  }

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

您应定期审查 Turnstile 分析中是否存在异常使用模式,并监控 Siteverify 响应中的 hostname 字段。您可以为小组件在非预期域上的使用设置警报。

使用 actioncData 参数来跟踪小组件使用来源。

<!-- 带有跟踪信息的小组件 -->
<div class="cf-turnstile" 
     data-sitekey="your-site-key"
     data-action="customer-portal"
     data-cdata="tenant-123"></div>

用例

“任意域名”功能对于拥有以下情况的客户特别有价值:

  • 拥有庞大域名组合且需单独管理许多域名。
  • 动态子域名创建,并且频繁创建子域名或客户特定域名。
  • 多租户应用程序,例如为多个客户域名服务的 SaaS 平台。
  • 在各种暂存 (staging) 和开发域名中进行测试的开发环境。

这篇文档对您有帮助吗?