WordPressのお問い合わせフォームに画像認証を入れていても、迷惑メールが届くことがあります。
Webuzzが運営を担当しているサイトでは、週に3回ほど届いていた迷惑メールが、画像認証をクイズに切り替えたあと、確認した範囲で0件になりました。
この記事では、サーバーのアクセスログで何を確認し、なぜ画像認証からクイズへ切り替えたのかを紹介します。
もくじ
画像認証を入れても、迷惑メールが週3回ほど届いた
当時は、Contact Form 7のお問い合わせフォームで、Really Simple CAPTCHAを使っていました。
ボットによる自動送信を防ぐための仕組みで、利用者は画像に表示された文字を入力してからフォームを送信します。
それでも迷惑メールは繰り返し届きました。
画像認証を入れているのに、どうやってフォームが送信されたのかを確かめるため、サーバーのアクセスログを調べました。
アクセスログで確認した、問い合わせページの表示から送信まで
迷惑メールが届いた時刻の前後を調べると、問い合わせページを開き、Really Simple CAPTCHAの認証画像を取得し、その約2秒後にフォームへデータを送信(POST)する流れが記録されていました。
同じ流れは別の日にも確認できました。

画像認証を設けていても、フォーム経由で迷惑メールは届いていました。
ただ、アクセスログからは、画像の文字を読み取ったのか、別の方法でチェックを回避したのかまでは特定できませんでした。
そこで、画像に表示された文字をそのまま入力する方式をやめ、送信に必要な答え方そのものを変えることにしました。
ローマ字をひらがなに直す方式へ切り替えた
切り替えに使ったのは、Contact Form 7のクイズ機能です。
フォームに質問と答えを設定でき、1つのクイズ欄に複数の設問を登録すると、その中から1問がランダムに出題されます。
このサイトでは、日本語で問い合わせる利用者を想定していました。
短いローマ字をひらがなに直すだけなら答えやすいと考え、この形式を選びました。
問題文にはローマ字だけを表示し、案内は入力欄の下に置いた
実際のフォームでは、問題文にローマ字だけを表示し、入力欄の下に「ローマ字をひらがなにしてください。」と案内を添えました。
たとえば、SAKURAと表示されたら、利用者は「さくら」と入力します。
ボットが問題文だけを読み取る場合を考え、答え方の案内は問題文に含めず、別に置きました。
案内を分けたこと自体に効果があったかは、確認していません。
同じ配置にする場合は、Contact Form 7のフォーム編集画面で、クイズタグの下に案内を書きます。

[quiz kana-check "SAKURA|さくら"]
ローマ字をひらがなにしてください。
これは書き方の一例なので、設問と答えは自分のサイトに合わせて変えてください。
設定を変えたら、利用者が案内を読んで迷わず送信できるかも確認しましょう。
スマートフォンでフォームを開き、案内が見つけやすいか、正しい答えで送信したメールが受信先に届くかを確かめます。
切り替え後、確認した範囲では迷惑メールは0件
変更前は週に3回ほど届いていましたが、切り替え後、確認した範囲ではフォーム経由の迷惑メールは0件でした。
ローマ字からひらがなへの変換も自動化できるため、この方式であらゆるボットを防げるわけではありません。
今回確認できたのは、このフォームでは、答え方を変えたあとに、それまで繰り返し届いていた迷惑メールが止まったことです。
自分のサイトで対策を変えるなら、変更日と、それまで迷惑メールが届いていた頻度を控えておくと、受信履歴を見比べやすくなります。
再び届いたときは、メールの文面に加え、受信時刻の前後のアクセスログも見直すと、次の対策を考える手がかりになります。
クイズで防げない場合は、Cloudflare Turnstileも選択肢
迷惑メールが再発した場合や、利用者に答えを入力してもらう方式が合わない場合は、Cloudflare Turnstileも選択肢です。
Contact Form 7では、バージョン6.1以降でCloudflare Turnstileとの連携機能を利用できます。
クイズの答えを入力してもらう代わりに、フォームに組み込んだTurnstileが送信を検証します。
Cloudflareの公式資料にも書いてあるように、Webサイト全体の通信をCloudflare経由にしなくても利用できます。
対策を変えたら、迷惑メールと通常の送信を確認する
フォーム経由の迷惑メールが続くときは、届いた時刻を手がかりに、その前後のアクセスログを見てみましょう。
今回のように、認証画像の取得から送信までの動きが見えると、どこを変えるか考えやすくなります。
対策を選ぶときは、そのフォームを使う人が迷わず送信できるかも考えます。
例えば、日本語に慣れていない利用者からも問い合わせを受けるサイトでは、ひらがなでの入力が負担になることもあります。
変更後は、迷惑メールの受信状況を見るだけでなく、自分でもフォームから送信し、受信先まで届くかを確かめましょう。
迷惑メールを減らせたか。必要な問い合わせは今までどおり送れるか。
フォームの対策を変えたら、この2つをセットで確認しておきましょう。
