第一部分:机器人为何瞄准试穿挂件
虚拟试穿挂件是极具吸引力的机器人攻击目标,因为它们提供了免费的 AI 图像生成功能。试穿接口接收一张照片和一张产品图,并返回 AI 合成的结果 —— 从机器人的角度来看,这是一个免费的、公开可用的 AI 图像生成 API。自动化脚本每小时可以调用该接口数千次,用于生成产品图、头像或合成训练数据,攻击者的成本为零,而作为商家的您则需要承担全部的月度限额成本。
经济动机非常显著:高质量的 AI 图像生成 API 通常每张图像成本为 0.05–0.20 美元。没有机器人防护的试穿挂件接口实际上是向任何破解了请求格式的人免费提供这项服务。在大规模攻击下,单个机器人活动可能在几小时内耗尽商家全月的试穿配额,导致真实购物者在剩余计费周期内无法获得正常服务。
第二部分:Photta 的五层防御堆栈
Photta 部署了五种独立的防御措施,每一种都针对不同的攻击向量。第一层 —— hCaptcha:每个试穿请求必须包含在浏览器中生成的有效 hCaptcha 令牌。无头机器人和自动化 HTTP 客户端在没有人工交互的情况下无法解决 hCaptcha,从而拦截了简单的脚本攻击。第二层 —— BotD 指纹识别:SDK 运行 FingerprintJS 的 BotScore 以在购物者提交照片之前检测无头浏览器、自动化框架(Puppeteer、Playwright)以及可疑的浏览器环境。
第三层 —— 域名白名单:您的 pk_live_ 密钥仅接受来自您在“设置 → 允许的域名”中注册的域名的请求。来自任何其他来源的请求将立即返回 HTTP 403,且不会进行任何 AI 处理。第四层 —— IP 速率限制:单个 IP 地址每分钟超过 10 次试穿请求将触发自动限流;每分钟超过 30 次将触发临时封禁。第五层 —— 每月上限:您方案中的每月试穿限额(根据档次分为 500/2,000/10,000)在服务器端被硬性限制。配额耗尽将停止计费周期内余下的所有试穿,防止成本失控的情况发生。
第三部分:在仪表板中监控机器人尝试
登录 business.photta.app 并导航至“安全”。安全面板显示三个实时更新的图表:拦截尝试(每小时总计)、拦截原因分析(hCaptcha 失败 vs BotD 检测 vs 域名不匹配 vs 速率限制触发)以及热门拦截 IP(在过去 24 小时内产生最多拦截请求的 IP 地址)。正常运营的店铺通常显示的拦截尝试接近于零。
安全面板还包括“异常警报”部分。Photta 的分析层会监控试穿量或拦截尝试的突然激增,如果偏离 7 天基准值超过三个标准差,系统会发出警报。检测到异常后,您将在 15 分钟内收到电子邮件通知,且警报会出现在仪表板中。您可以在“设置 → 通知 → 安全警报”下配置通知阈值。
第四部分:应对可疑活动
当您在安全面板中看到异常模式时 —— 例如拦截请求激增、来自某个 IP 段的密集尝试或每月配额突然下降 —— 请按顺序采取以下行动。首先,检查“热门拦截 IP”列表。如果一个或少数几个 IP 占据了大部分拦截尝试,点击每个 IP 旁的“封禁 IP”,在 Photta 层将其永久禁止。封禁会立即生效,直到您手动解除。
其次,如果攻击使用了多个 IP(分布式僵尸网络),请通过仪表板聊天联系 Photta 支持团队,并提供您的商家 ID 和攻击时间段。Photta 的安全团队可以在几小时内对攻击子网应用 CIDR 级别的封禁。第三,如果您的每月配额因机器人活动而大幅消耗,请提交支持工单 —— Photta 为有记录证明的机器人攻击提供一次性配额恢复。请附上安全面板异常警报的截图作为证据。
第五部分:何时需要额外添加自定义 CAPTCHA
Photta 内置的 hCaptcha 是不可见的 —— 大多数合法购物者永远不会看到 CAPTCHA 挑战。在极少数情况下(如高价值店铺、被公开索引的挂件接口),如果复杂的攻击者使用了人工 CAPTCHA 打码平台,内置防御可能不足。在这种情况下,请在调用 photta.open() 之前的自有产品页面层级添加第二层 CAPTCHA。在您的服务器上验证自定义 CAPTCHA,然后将签名的验证令牌传递给 Photta SDK,如 photta.open({ verificationToken: 'your_token' }),以确保只有通过验证的会话才能启动试穿。
自定义 CAPTCHA 是针对经历过重复复杂攻击的店铺的最后手段。对于绝大多数商家,Photta 的五层堆栈提供了足够的保护且无购物者感知摩擦。如果您正在评估是否添加自定义层,请先检查安全面板的“拦截原因分析” —— 如果 hCaptcha 失败在拦截总量中占比低于 1%,说明堆栈工作正常,额外添加层只会增加摩擦而无实际安全收益。
