サーバー側での 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 サイトの他の関連記事を参照してください。