現在サイトの模様替え中で、テーマからプラグインからサーバーに至るまでいじり倒しています。
そんな日々を送るなか、ある日突然「お問い合わせ」フォームからスパムメールが届くようになりました。
……サイト開設してから6年間、一通たりとも来たことがなかったのに!
ある日、私は何をしたのか?
ええ、はっきり覚えています。
プラグイン「Contact Form 7」と「reCAPTCHA V2」をインテグレーションしました。
スパムが届き始めたのはその直後からでした。
スパム対策にreCAPTCHA V2は役に立たない
![](https://kimoota.net/wp-content/uploads/2020/01/5b0739fac26012076014d292c65d8554-e1580781712200.jpg)
誤解招くような書き方は止めない?
![](https://kimoota.net/wp-content/uploads/2020/01/89fedde007558c7c8c8ad0567bb751dc-e1580781741642.jpg)
もちろんミスリード狙ってるわけだけどね
リード文だけでも読み取れる重大な事実があるわよ
それは、この事実。
reCAPTCHA V2を入れて、なおかつスパムが届いてるわけですから。
タイトルその他をプルダウンメニューで必須にしているにも関わらず無視されていました。
明らかにbotの仕業。
次から次に届くスパムを見つつ呆然としました。
reCAPTCHAってこんな役立たずだったのかって。
reCAPTCHA V2がだめならV3にすればいいじゃん?
実は最新のContact Form 7は「reCAPTCHA V3」に対応しています。
むしろV3のみに対応しており、V2は使えません。
![](https://kimoota.net/wp-content/uploads/2020/01/e92fc0491feba791fc938c1e7272f36d-e1580782074779.jpg)
V2がだめならV3にすればいいじゃない
私もそう思ったことがありました。
というより、最初にV3の方を実装しました。
すると、PageSpeed Insightsが全ページでこのざま。
原因はrecaptcha.jsのせい。
「お問い合わせ」ページだけならいいんですけど、Contact Form 7でv3をインテグレーションした場合は全ページで読み込まれてしまいます。
だったら条件分岐するなり非同期にするなりの対策とればいいんですけど。
変な悪影響あったら怖いですし、規約的に問題生じないかわかるほど詳しくないですし。
何よりv3でのトラブルは聞きますから、そもそも使いたくないというのがあります。
以上の理由よりContact Form 7をバージョンダウンしてv2で使う人もいるわけです。
今までスパムが来なかったのは「クイズ」のおかげ
さて、ここから冒頭のミスリードの正解となります。
![](https://kimoota.net/wp-content/uploads/2020/01/e92fc0491feba791fc938c1e7272f36d-e1580782074779.jpg)
サイト開設以来、一通もスパムが来なかったのは「クイズ」でガードしていたからだよ
reCAPTCHAを導入したかわりにクイズを外した。
その結果スパムが届くようになったわけです。
クイズとは?
クイズはContact Form 7の標準機能として実装されています。
具体的にはこんな感じ。
クイズの答えを入れないと送信できないようになっています。
私がサイトを始めた頃は、結構多くのサイトでクイズを見かけました。
設置していたサイトはクイズの威力を知っているはずです。
reCAPTCHAがとってかわったのは簡単に設置できるようになったというのもあるでしょうが。
![](https://kimoota.net/wp-content/uploads/2020/01/5b0739fac26012076014d292c65d8554-e1580781712200.jpg)
クイズって格好悪い!
![](https://kimoota.net/wp-content/uploads/2020/01/3467b10808f450b67e88da0d2837239c-e1580781641904.jpg)
見映えは悪いよね……
v3ならユーザーに不要なアクションを起こさせずにすむというメリットもありますけど。
v2についてはデザイン性の問題につきる気がします。
クイズの実装方法
実装手順
クイズは色々なパターンで作れます。
例えば「日本の首都は?」などでもOKです。
ただ、ユーザーの使い勝手を削がないためにはワンアクションで正答できるものの方がよいでしょう。
例に挙げた通り、答えが一桁の数字になるようにするとか。
具体的な作成方法は以下の通りです。
フォームの挿入したい位置で「クイズ」タブをクリックします。
正解と答えを「|」で区切って、1問ずつ入力していきます。
終わったら「タグを挿入」をクリックします。
クイズの見本
当サイトで使っているクイズを見本として載せておきます。
"1×1=|1" "1×2=|2" "1×3=|3" "1×4=|4" "1×5=|5" "1×6=|6" "1×7=|7" "1×8=|8" "1×9=|9" "2×1=|2" "2×2=|4" "2×3=|6" "2×4=|8" "3×1=|3" "3×2=|6" "3×3=|9"
これでよろしければ、そのままコピペしていただいて構いません。
コピペする場合はこちら。
"の除去は貼りつけた後でも構いません。
むしろ先にタグを入れてからコピペする方が、修正が不要となる分だけ楽です。
まとめ
![](https://kimoota.net/wp-content/uploads/2020/01/084ec0739c4104d3e606462cf7e06ea6-e1580781673118.jpg)
企業が使うには格好悪いけど、個人のブログなら実用重視でいいんじゃないかな?
手作り感あって微笑ましいし
![](https://kimoota.net/wp-content/uploads/2020/01/3467b10808f450b67e88da0d2837239c-e1580781641904.jpg)
見映え重視なら、そもそもGoogleフォームという選択肢もあるからね……
コメント