Googleフォームにスパム対策を実装してみました

Google form(グーグルフォーム)をご存知ですか?

Google formは、誰でも簡単にお問合せフォームやアンケートフォームを作ることができるサービスです。

とても便利なサービスですが、時々ボットの攻撃に遭い、大量のスパム問い合わせが送られてしまう場合があります。実際私が作ったフォームも攻撃に遭ったことがありました。

そのような時、プログラミングの知識なしに、reCAPTCHAのような仕組みを使って攻撃を食い止められないかと考えました。いわゆるこのようなフォームです。

今回は、このようなフォームの作り方についてご紹介します。

※googleが推奨している方法ではなく、個人的に考えた手法です。

※この方法により「スパムが減る・なくなる」ということは保証できません。

reCAPTCHAとは、ウェブサイトの制限エリアへのアクセスを試みるボットからサイトを防御するための仕組みで、ボットが読みにくい変形文字等を表示させ、人の目で見て判断して入力することで、ロボットではないことを証明するような仕組みです。よくお問合せフォームや申し込みフォーム、ログイン画面などに使用されている仕組みです。(一部wikipediaより引用)

Googleフォームを作成する

Google ドライブより、Googleフォームを新規作成します。

フォーム作成画面が表示されます。

タイトルや設問、設問形式を選択します。

入力フォームが簡単に出来上がります。

Googleフォームを使うと、このような感じで、簡単にフォームを作ることができるのです。

reCAPTCHA画像を追加する

続いて本題。reCAPTCHA画像を追加していきます。

まず、「画像を追加」を選択します

あらかじめパワーポイント等でreCAPTCHA用の画像を作成しておきます。

作った画像をアップロードします

アップロードした画像に対して設問文章を入力します。

今回は「ロボットではありませんか?」と入れてみました。

reCAPTCHA用の設問が完成したら、続けて新しい質問を追加します。

reCAPTCHAの設定をする

記述式の入力形式を選び、設問の欄に

「上に表示されている数字とアルファベットを入力してください」と入力すると、自動的に「回答の検証が追加されました」という表示がされ、下側に検証事項を設定する欄が現れます。

回答者の回答に対して、質問者があらかじめ条件を設けておき、その条件に一致しないと進んでいけない仕組みです。

その中から、「正規表現」を選択してください。

続いて、「次を含む」「含まない」「一致する」「一致しない」を選択します。

今回は「一致する」を選択しましたが、ここは色々と工夫できると思います。

最後に、テキストボックスに、reCAPTCHA画像の数字とアルファベットを入力します。

なお、この質問は、「必須」に設定しておきましょう。

reCAPTCHA付のフォームの完成

これで、reCAPTCHA付のフォームが完成しました。

このようなフォーム、見覚えありませんか?

フォームに回答してみる

間違った答えを入力すると、「パターンに一致させてください」となります。

またこの質問は「必須回答」のため、送信することができません。

正しく入力されると、送信に進むことができます。

これで、スパムの攻撃に少しは立ち向かうことができるはず!

自動的に「回答の検証」が出ない場合

今回は、「上に表示されている数字とアルファベットを入力してください」と質問に入力すると、自動的に「回答の検証」の設定画面が表示されましたが、もし自動的に出なかった場合は、詳細設定マークより「回答の検証」を選択追加できます。

さいごに

いかがでしたか。すでにGoogleフォームを使っている方も多いと思いますが、スパム対策はプログラムの知識がない人にとっては設置のハードルが高いです。

この方法なら簡単に実装でき、かつ少なからず攻撃に立ち向かう手立てになるかもしれません。

よろしければお試しください。

ABOUTこの記事をかいた人

はじめましてshusen(朱泉)です。塾講師、Webサイトの企画・ディレクションなどの仕事がきっかけで、色々な人と出会い、このblogを書かせて頂いています。2016年に結婚しワークライフバランスを模索しながら正社員として働いています。2017年秋☆情報セキュリティマネジメント試験合格!