

**の新しいコンソールエクスペリエンスの紹介 AWS WAF**

更新されたエクスペリエンスを使用して、コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、[「コンソールの使用](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# からの CAPTCHA レスポンスの処理 AWS WAF
<a name="waf-js-captcha-api-conditional"></a>

このセクションでは、CAPTCHA レスポンスを処理する例を示します。

CAPTCHA アクションを持つ AWS WAF ルールは、リクエストに有効な CAPTCHA タイムスタンプを持つトークンがない場合、一致するウェブリクエストの評価を終了します。リクエストが `GET` テキスト/HTML 呼び出しの場合、CAPTCHA アクションは CAPTCHA パズルを含むインタースティシャルをクライアントに提供します。CAPTCHA JavaScript API を統合しない場合、インタースティシャルはパズルを実行し、エンドユーザーが問題を正しく解決すると、自動的にリクエストを再送信します。

CAPTCHA JavaScript API を統合し、CAPTCHA 処理をカスタマイズする場合は、終了 CAPTCHA レスポンスを検出し、カスタム CAPTCHA を提供する必要があります。その後、エンドユーザーがパズルを正しく解決した場合は、クライアントのウェブリクエストを再送信します。

次のコード例は、これを実行する方法を説明しています。

**注記**  
 AWS WAF CAPTCHA アクションレスポンスのステータスコードは HTTP 405 で、このコードのCAPTCHAレスポンスを認識するために使用します。保護されたエンドポイントが HTTP 405 ステータスコードを使用して同じ呼び出しのために他の種類のレスポンスを通信する場合、このサンプルコードはそれらのレスポンスのためにも CAPTCHA パズルをレンダリングします。

```
<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="<Integration URL>/jsapi.js" defer></script>
</head>
<body>
    <div id="my-captcha-box"></div>
    <div id="my-output-box"></div>

    <script type="text/javascript">
    async function loadData() {
        // Attempt to fetch a resource that's configured to trigger a CAPTCHA
        // action if the rule matches. The CAPTCHA response has status=HTTP 405.
        const result = await AwsWafIntegration.fetch("/protected-resource");

        // If the action was CAPTCHA, render the CAPTCHA and return

        // NOTE: If the endpoint you're calling in the fetch call responds with HTTP 405
        // as an expected response status code, then this check won't be able to tell the
        // difference between that and the CAPTCHA rule action response.

        if (result.status === 405) {
            const container = document.querySelector("#my-captcha-box");
            AwsWafCaptcha.renderCaptcha(container, {
                apiKey: "...API key goes here...",
                onSuccess() {
                    // Try loading again, now that there is a valid CAPTCHA token
                    loadData();
                },
            });
            return;
        }

        const container = document.querySelector("#my-output-box");
        const response = await result.text();
        container.innerHTML = response;
    }

    window.addEventListener("load", () => {
        loadData();
    });
    </script>
</body>
</html>
```