InfraGuard

公开落地页、演示申请与分析标签

无需登录即可打开的页面(落地页、演示申请表单、用户手册)、用于统计其访客的 GA4/GTM 标签,以及处理所收到演示申请的管理界面。

概述 — 涵盖内容

除了登录之后的控制台,InfraGuard 还有一个 公开界面。

路径 页面 访问权限
/ 营销落地页 访客(已认证的会话会重定向到 /console)
/demo 演示申请表单 访客
/manual 用户手册 访客与已登录用户同样可访问
/login · /lang/{locale} 登录 · 语言切换 访客

控制台首页位于 /console。这次迁移把 / 让给了公开界面,同时没有破坏路由名(overview)或已有的书签。

落地页被构建为独立的打包产物(front.*)。 若把它放进控制台的打包产物,每位访客都要下载 Vue、ECharts、CodeMirror、Konva 和 xterm(实测:控制台约 1,283KB,前台 24KB)。对营销页面而言,第一印象 就是 加载速度。只有必须共享的最小 UI(图标按钮、语言切换器)放在 _shared-ui 中,使两侧使用 同一份定义 — 若靠复制粘贴,只改一侧就会产生分歧。

公开手册

/manual 无需登录 即可打开。正在评估产品的人应该能读到它实际是如何运维的,而公开文档本身就是营销与 SEO 资产。文档中不含任何机密信息与实时数据。

演示申请

公开表单(/demo)

这是申请受理,而不是一键演示。只有姓名和工作邮箱是必填项;语言环境、来源渠道和 IP 会一并记录。

该表单是 应用中唯一的访客写入路径,因此有四重防护。

  1. 蜜罐 — 若被填写,不会保存任何内容,但响应仍然看起来像 成功(绝不宣告已识别)。
  2. throttle:8,1 — 一分钟内的第九个请求会得到 429。
  3. CSRF 令牌。
  4. 带白名单的服务端校验 — status 与 note 仅限管理员,因此公开表单无法设置它们。

管理界面(管理 ▸ 演示申请)

/admin/demo-requests 运行这个收件箱:模态框 CRUD,外加搜索、带计数的状态筛选和分页。

状态 含义
new 已收到,尚未处理
contacted 已联系
qualified 已确认为有效商机
closed 已结束

搜索会 转义 LIKE 通配符(%、_、\)。否则,只输入一个 % 就会匹配到每一行。

分析标签(GA4 · GTM · Search Console)

在 .env 中填入衡量 ID,标签就 只会出现在公开界面上。当该值为空时根本不会渲染 <script>,因此 默认部署不会发出任何对外请求。

键 值 用途
GA_MEASUREMENT_ID G-XXXXXXXXXX gtag.js(GA4)
GTM_CONTAINER_ID GTM-XXXXXXX Google Tag Manager(可并行运行)
GOOGLE_SITE_VERIFICATION meta 令牌 Search Console 所有权验证
GA_PRODUCTION_ONLY true(默认) 仅在生产环境触发

绝不要把这些加到控制台(layouts/app)。 控制台的 URL 和标题会带上主机名、IP、实例别名和事件标题。把它们发送给第三方分析媒体资源,与落地页自己作出的自托管和数据主权承诺相矛盾,并且会泄露客户的基础设施细节。

GA4 不会给你搜索关键词。 它只报告渠道(自然搜索)就到此为止;查询词只存在于 Search Console 中。这就是所有权验证 meta 标签 独立于 GA4 输出的原因 — 你完全可以不启用 GA4 也能验证所有权。按站点的报表参见 访客与搜索洞察。

文案方针

落地页上的信任数字 只使用能在代码中数出来的内容,而且是 在渲染时统计而非硬编码(规则集数量、检查项数量、邮件/短信适配器数量等)。

这条方针抓到了一个真实错误 — 检查项是 36 而不是 37。反过来,绝不使用观测值:不同特征签名的数量在 24 小时内为 43、7 天内为 67、总体为 79,它们会在每次访问之间变化,非但建立不了信任反而会损害信任。既然是公开页面,它也 绝不访问数据库 — 每次访问一次查询没有必要,而且营销界面应该在数据库不稳时依然可用。

数据来源

对象 位置 作用
infr_demo_request default(000770) 演示申请收件箱(status、note、locale、source、ip)
config/analytics.php ← .env config 衡量 ID 与开关的唯一事实来源(App\Support\Analytics)
public/brand/ 静态文件 Logo 与 OG 图片

public/brand/ 必须提交到版本库。 public/ 中大部分是生成产物(build、hot、storage 已被 gitignore),所以很容易漏掉,但品牌素材 不是 Vite 的输出 — 没有任何构建会生成它们,不提交就会导致生产环境的 Logo 与 OG 图片 404。OG 图片必须是 PNG:许多社交媒体爬虫不会渲染 SVG 预览。

访问权限

故障排查 · 常见问题

相关内容

공개 랜딩 페이지
공개 랜딩 페이지