UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#212 Google reCAPTCHA v2とは

記入日:2023-08-08 編集日:2023-08-08

Google reCAPTCHA v2について解説をしてみようと思います。

この記事を読むと(約5分)
Google reCAPTCHA v2の活用方法についてイメージできます。

Google reCAPTCHA v2とは

Google reCAPTCHA v2は、Googleが提供するウェブ上でのボット(自動プログラム)と人間を区別するためのセキュリティ技術の1つです。reCAPTCHAは、ウェブフォームやログイン画面などの場所で、ボットによるスパムや不正アクセスを防ぐために使用されます。

reCAPTCHA v2は、次の2つの主要なバリエーションが存在します。

1. reCAPTCHA v2 "I'm not a robot" チェックボックス:
ユーザーがチェックボックスをクリックすることで、自分がボットでないことを証明します。クリックした後、Googleのアルゴリズムがユーザーアクションを分析して、ボットでないことを確認します。簡単なタスクをこなせる人間の特性を利用したものです。

2. reCAPTCHA v2 "I'm not a robot" 認証チャレンジ:
こちらは、ユーザーがチェックボックスをクリックした後に、追加の認証ステップを行うタイプです。通常、画像内の特定のオブジェクトを選択したり、画像内の特定のテキストを入力したりする認証が含まれます。これにより、ボットが自動的に解決するのが難しくなります。

reCAPTCHA v2は、ウェブサイトのオーナーや開発者が簡単に導入できるように設計されており、ユーザーエクスペリエンスを損なうことなく、スパムや不正アクセスを防ぐのに役立ちます。ただし、利用者にとっては、時折認証チャレンジが出ることがあるため、その点を考慮する必要があります。

Google reCAPTCHA v2をPHPで活用するには、以下の手順に従ってコードを書くことができます。 まず、Google reCAPTCHA v2の公式ウェブサイトでウェブサイトを登録し、reCAPTCHAのサイトキーとシークレットキーを取得してください。

1. HTMLフォームにreCAPTCHAウィジェットを追加します。

<!DOCTYPE html>
<html>
<head>
  <title>reCAPTCHA v2 Example</title>
  <script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
  <form action="submit.php" method="post">
    <!-- 他のフォームフィールドを追加 -->

    <!-- reCAPTCHAウィジェット -->
    <div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>

    <button type="submit">Submit</button>
  </form>
</body>
</html>

2. サーバーサイドのPHPコード(submit.php)でreCAPTCHAの検証を行います。

// reCAPTCHAシークレットキー
$secretKey = "YOUR_SECRET_KEY";

// ユーザーがreCAPTCHAのチェックボックスを通過したかどうかを確認
$response = $_POST['g-recaptcha-response'];

// reCAPTCHAのレスポンスをGoogleに検証してもらう
$verifyResponse = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secretKey}&response={$response}");
$responseData = json_decode($verifyResponse);

if ($responseData->success) {
  // reCAPTCHAが成功した場合、フォームの処理を続行
  // 他のフォームデータを処理するコードを追加
  echo "reCAPTCHA verification successful.";
} else {
  // reCAPTCHAが失敗した場合、適切な処理を行う
  echo "reCAPTCHA verification failed. Please try again.";
}

上記のコードは基本的な概念を示していますが、実際にはセキュリティ上の考慮事項やフォームのデータ処理などが含まれる必要があります。また、`YOUR_SITE_KEY`と`YOUR_SECRET_KEY`の部分を、取得したサイトキーとシークレットキーに置き換えてください。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。