セクション1:ボットが試着ウィジェットを標的にする理由
バーチャル試着ウィジェットは、無料のAI画像生成を提供するため、ボットにとって魅力的なターゲットです。試着エンドポイントは写真と商品画像を受け取り、AIで合成された結果を返します。ボットの観点からは、これは無料で一般公開されているAI画像生成APIです。自動化されたスクリプトは、攻撃者にはゼロコストで、マーチャントであるあなたには月間上限コストの全額負担で、商品画像、ヘッドショット、または合成トレーニングデータを生成するために、エンドポイントを1時間に数千回ヒットさせることができます。
経済的な動機は非常に大きいです。高品質なAI画像生成APIのコストは、通常、画像1枚あたり0.05ドル〜0.20ドルです。ボット保護のない試着ウィジェットエンドポイントは、リクエスト形式をリバースエンジニアリングした人なら誰にでも、実質的にこのサービスを無料で提供していることになります。大規模な場合、1つのボットキャンペーンがマーチャントの月間試着枠を数時間で使い果たし、残りの請求期間中、実際の買い物客のサービス品質が低下する可能性があります。
セクション2:Photta の5層防御スタック
Photta は5つの独立した防御策を展開し、それぞれが異なる攻撃ベクトルを捕捉します。第1層 — hCaptcha:すべての試着リクエストには、ブラウザで生成された有効な hCaptcha トークンが含まれている必要があります。ヘッドレスボットや自動化されたHTTPクライアントは、人間との対話なしに hCaptcha を解決できないため、単純なスクリプト攻撃を阻止できます。第2層 — BotD フィンガープリント:SDKはFingerprintJSによるBotScoreを実行し、買い物客が写真を送信する前に、ヘッドレスブラウザ、自動化フレームワーク(Puppeteer、Playwright)、および不審なブラウザ環境を検出します。
第3層 — ドメイン許可リスト:pk_live_ キーは、「設定 → 許可ドメイン」で登録したドメインからのリクエストのみを受け入れます。その他のオリジンからのリクエストは、AI処理が実行される前に、直ちにHTTP 403を返します。第4層 — IPレート制限:単一のIPアドレスから1分間に10回を超える試着リクエストがあると自動スロットリングが作動し、1分間に30回を超えると一時的なブロックが作動します。第5層 — 月間上限:プランの月間試着制限(ティアに応じて500/2,000/10,000)は、サーバー側でハードキャップされています。上限に達すると、その請求サイクルの残りの期間はすべての試着が停止し、予期せぬコスト増大のシナリオを防ぎます。
セクション3:ダッシュボードでのボット試行の監視
business.photta.app にログインし、「セキュリティ」に移動します。セキュリティパネルには、リアルタイムで更新される3つのチャートが表示されます。ブロックされた試行(1時間あたりの合計)、ブロック理由の内訳(hCaptcha 失敗 vs BotD 検出 vs ドメインの不一致 vs レート制限作動)、およびトップブロックIP(過去24時間で最も多くのブロックリクエストを生成したIPアドレス)。正常なストアでは、通常、営業時間中のブロック試行回数はほぼゼロです。
セキュリティパネルには「アノマリーアラート(異常アラート)」セクションも含まれています。Photta の分析レイヤーは、試着回数やブロック試行回数の急激なスパイクが、7日間のベースラインから標準偏差3倍以上逸脱していないかを監視します。異常が検出されると、15分以内にメール通知が届き、ダッシュボードにアラートが表示されます。通知のしきい値は「設定 → 通知 → セキュリティアラート」で設定できます。
セクション4:不審なアクティビティへの対応
セキュリティパネルで異常なパターン(ブロックされたリクエストの急増、特定のIP範囲からの試行の集中、または月間枠の急激な減少)を確認した場合は、次の順序で対応してください。まず、「トップブロックIP」リストを確認します。1つまたは少数のIPがブロックされた試行の大部分を占めている場合は、各IPの横にある「IPをブロック」をクリックして、Photta レイヤーで永久に禁止します。ブロックは即座に適用され、手動で解除するまで持続します。
次に、攻撃が複数のIP(分散ボットネット)を使用している場合は、マーチャントIDと攻撃タイムスタンプの範囲を添えて、ダッシュボードチャット経由で Photta サポートに連絡してください。Photta のセキュリティチームは、数時間以内に攻撃サブネットに対してCIDRレベルのブロックを適用できます。第3に、ボット活動によって月間枠が大幅に枯渇した場合は、サポートチケットを開いてください。Photta は、記録されたボット攻撃に対して1回限りの枠の復元を提供します。証拠として、セキュリティパネルの異常アラートのスクリーンショットを添付してください。
セクション5:カスタムCAPTCHAを追加すべきタイミング
Photta に組み込まれた hCaptcha はバックグラウンドで実行されるため、ほとんどの正当な買い物客にCAPTCHAチャレンジが表示されることはありません。非常にまれなケース(高価格帯のストア、公開インデックスされたウィジェットエンドポイントなど)で、洗練された攻撃者が人間によるCAPTCHA解決ファームを使用している場合、組み込みの防御だけでは不十分な場合があります。このシナリオでは、photta.open() を呼び出す前に、独自の製品ページレベルで第2のCAPTCHAレイヤーを追加してください。サーバー側でカスタムCAPTCHAを検証し、署名済みの検証トークンを photta.open({ verificationToken: 'your_token' }) として Photta SDKに渡すことで、検証済みのセッションのみが試着を開始できるようにします。
カスタムCAPTCHAは、高度な攻撃を繰り返し受けているストアのための最終手段です。大多数のマーチャントにとって、Photta の5層スタックは、買い物客に目に見える摩擦を与えることなく十分な保護を提供します。カスタムレイヤーを追加すべきかどうかを判断する場合は、まずセキュリティパネルの「ブロック理由の内訳」を確認してください。hCaptcha の失敗がブロック試行全体の1%未満であれば、スタックは正常に機能しており、レイヤーの追加はセキュリティ上の大きなメリットなしに摩擦を増やすだけになります。
