Transaction Protection で支払いトランザクションを保護する

このページでは、reCAPTCHA トランザクション保護を使用して、カーディング、決済手段不正利用詐欺、アカウントの乗っ取りなどの支払いに関する不正行為から支払いトランザクションを効果的に保護する方法について説明します。

reCAPTCHA のトランザクション保護は、標的型手動攻撃と大規模な不正行為の試みを特定することで、支払いトランザクションを保護するのに役立ちます。これにより行動やトランザクション モデルが自動的にトレーニングされ、不正行為である可能性が高く、承認された場合、紛争またはチャージバックにつながる可能性のあるイベントを特定できます。

これらのモデルの一部として、reCAPTCHA トランザクション保護は、トランザクション シグナルを調べて不正行為の検出を可能にします。たとえば、低価格での購入がたて続けに試みられた場合は、カーディング攻撃を示している可能性があります。レスポンスでトランザクション リスクスコアを受け取ります。このスコアを使用して、トランザクションを個別審査に送信するか、不審なトランザクションを直接ブロックできます。

次の手順で reCAPTCHA トランザクション保護をセットアップします。

  1. 支払いフロントエンドに reCAPTCHA をインストールします。

  2. 評価を作成する

  3. 回答を解釈し、不正行為の可能性に対処します。

始める前に

  1. reCAPTCHA 用に環境を準備します

  2. スコアベース キーを作成します

  3. 統合で 8 KB を超えるトークンがサポートされていることを確認します。reCAPTCHA トランザクション保護では、より大きなトークンが使用される可能性があるため、GET ではなく POST リクエストで送信され、ヘッダーではなくボディで送信されることを確認してください。

支払いフロントエンドに reCAPTCHA をインストールする

攻撃の検出を開始するには、ユーザーによる決済フローの各ページにスコアベースのサイトキーをインストールします。これには、ユーザーがカートを確認して、お支払い方法を選択し、購入を完了するインターフェースが含まれます。各手順でユーザーが選択すると、grecaptcha.enterprise.execute() を呼び出してトークンを生成します。スコアベースのキーをインストールして execute() を呼び出す方法については、スコアベースのキーをインストールするをご覧ください。

次の例は、クレジット カードのトランザクション イベントにスコアベース キーを統合する方法を示しています。

function submitForm() {
  grecaptcha.enterprise.ready(function() {
    grecaptcha.enterprise.execute(
      'reCAPTCHA_site_key', {action: 'purchase'}).then(function(token) {
       document.getElementById("token").value = token;
       document.getElementByID("paymentForm").submit();
    });
  });
}
<form id="paymentForm" action="?" method="POST">
  Total: $1.99
  Credit Card Number: <input name="cc-number" id="cc-number" autocomplete="cc-number"><br/>
  <input type="hidden" id="token" name="recaptcha_token"/>
  <button onclick="submitForm()">Purchase</button>
</form>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>

コード ウィンドウの右上にある <> アイコンをクリックすると、JSFiddle でこのコードを試すことができます。

<html>
  <head>
    <title>Protected Payment</title>
    <script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
    <script>
    function submitForm() {
      grecaptcha.enterprise.ready(function() {
        grecaptcha.enterprise.execute(
          'reCAPTCHA_site_key', {action: 'purchase'}).then(function(token) {
           document.getElementById("token").value = token;
           document.getElementByID("paymentForm").submit();
        });
      });
    }
    </script>
  </head>
  <body>
    <form id="paymentForm" action="?" method="POST">
      Total: $1.99
      Credit Card Number: <input name="cc-number" id="cc-number" autocomplete="cc-number"><br/>
      <input type="hidden" id="token" name="recaptcha_token"/>
      <button onclick="submitForm()">Purchase</button>
    </form>
  </body>
</html>

評価の作成

評価の作成方法については、ウェブサイトの評価を作成するをご覧ください。

トランザクション保護レスポンスを有効にするには、評価の一部として transaction_id を追加で送信します。

{
  "event": {
    "token": "YOUR_TOKEN",
    "site_key": "KEY_ID",
    "expected_action": "YOUR_CHECKOUT_ACTION_NAME",
    "transaction_data": {
      "transaction_id": "txid-1234567890",
    }
  }
}

評価を解釈する

transaction_id の送信を開始すると、riskAnalysis レスポンスに fraudPreventionAssessment コンポーネントが表示されます。

"riskAnalysis": {
    "score": "BOT_SCORE"
}
"fraudPreventionAssessment": {
    "transactionRisk": 0.9,
}

評価に基づいて実行するアクションは、お客様の責任となります。最も簡単な統合の場合、transactionRisk でしきい値を設定すると判断に役立ちます。たとえば、手動審査に送信することや、不正行為の可能性のあるトランザクションを直接拒否することなどが考えられます。このスコアは、お客様自身の不正行為のワークフローで、または既存のシステムのルールの一部として使用することもできます。reCAPTCHA は独自にシグナルを調査し、インターネット全体で独自の動作を可視化しているため、すでに成熟した不正検出エンジンであっても増分値を期待できます。

次のステップ

  • 品質を改善し、スコアとシグナルに関する分析情報を追加で取得するには、不正の防止をご覧ください。