ContactForm7は非常に使い勝手の良いお問合せ送信フォーム作成のためのプラグインだが、サイトの運用を続けていると、スパムメールが多くなってくることがある。
そこで利用される手段として、画像認証機能や、Google reCAPCHAなどがある。
画像認証機能は、以下のようなもの。
マシンが読み取りにくい歪んだ英数字を、ユーザが入力するというものである。
本来ContactForm7に、追加で導入できプラグイン「Really Simple CAPTCHA」をインストールし有効化すれば、すぐに使えるはずなのだが、
設置方法が紹介されている記事を読んでいても、最新バージョンのWordpressとGUIが違っていて、齟齬がある。
設置するために必要な画面が、最新Wordpressには備わっていない?のだ。
要は、ContactForm7のフォーム内に、Really Simple CAPTCHA呼び出し用のタグを記述すればいいので、以下のサイトを参考にして、タグをコピペするとよい。
Google reCAPCHAは、以下のようなもの。
どちらも、送信フォームに設置されていることが多いので、見慣れている方も多いと思う。
reCAPTCHAの導入には以下の3つ手順が必要である。
- GoogleのサイトでreCAPTCHAを取得
- 適用したいフォームのHTMLにreCAPTCHAのウィジェットを組み込む
- サーバー側でreCAPTCHAが送信したトークンをチェック
レイアウトがスッキリしてイメージを損なわない
画像認証判断~トークン取得からサーバー送信の一連の動作をウィジェットがやってくれる(構成図の2~5の部分)
認証の必要がない場合は、そのままフォーム登録が実行できます。「ホントに確認した?」と感じるくらい自然で、フォームの見栄えを損ないません。
また、reCAPTCHAのトークンは、取得後数分放置するとタイムアウトと判定されるので、ユーザーの操作に不便のないように、考慮する必要があります。Invisible reCAPTCHAはトークンの取得から送信まで連続して処理されるため、タイムアウトへの考慮を軽減できます。
デメリット
認証が必要だと判断された場合、突然画像認証の画面が表示されるので、おどろく
ユーザーが送信ボタンを押下したタイミングで、予告なく画像認証画面が表示されるため、なんらかのフィッシングの可能性などを考えて操作を躊躇するかもしれません。特に、ユーザーの年齢層が高い場合などは、ユーザーの戸惑いを軽減するコメントを記載するなどの配慮が必要になりそうです。