ホームページ > バックエンド開発 > PHPチュートリアル > サーバー側で Google reCAPTCHA v3 を検証するにはどうすればよいですか?

サーバー側で Google reCAPTCHA v3 を検証するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-03 09:15:29
オリジナル
601 人が閲覧しました

How Do I Validate Google reCAPTCHA v3 on the Server Side?

サーバー側での Google reCAPTCHA v3 の使用

Google の reCAPTCHA v3 は、チェックボックスベースの前任者と比較して、より高度なボット検出方法です。フロントエンドでの実装は簡単ですが、サーバー側での検証の処理には別のアプローチが必要です。

非推奨の reCAPTCHA v2 検証

で使用すると言及したコードreCAPTCHA v2 検証は v3 には適さなくなりました。 reCAPTCHA v3 は、追加のパラメーターと検証用の秘密キーを含む POST リクエストを使用します。

reCAPTCHA v3 の安全な POST ベースの検証

これは、POST を使用した改訂された PHP スクリプトです。 reCAPTCHA v3 のベースの検証:

<code class="php">function isValid() {
    try {
        $url = 'https://www.google.com/recaptcha/api/siteverify';
        $data = [
            'secret'   => '[YOUR SECRET KEY]',
            'response' => $_POST['g-recaptcha-response'],
            'remoteip' => $_SERVER['REMOTE_ADDR']
        ];
        $options = [
            'http' => [
                'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
                'method'  => 'POST',
                'content' => http_build_query($data)
            ]
        ];
        $context  = stream_context_create($options);
        $result = file_get_contents($url, false, $context);
        return json_decode($result)->success;
    } catch (Exception $e) {
        return null;
    }
}</code>
ログイン後にコピー

使用法

isValid() 関数を呼び出して reCAPTCHA トークンを検証し、それに応じて応答を処理します。例:

<code class="php">if (isValid()) {
    // The user has passed the reCAPTCHA check.
    // ...
} else {
    // The user has failed the reCAPTCHA check.
    // ...
}</code>
ログイン後にコピー

セキュリティに関するメモ

検証の整合性を保護するには、POST リクエストで秘密キーを使用することが不可欠です。この秘密鍵は秘密にしておき、決して公に公開しないでください。

以上がサーバー側で Google reCAPTCHA v3 を検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート