[WordPress] Contact Form 7のスパム対策プラグイン「Honeypot for Contact Form 7」
WordPressの「Contact Form 7」プラグインを使用して作成したフォームのスパム対策として、「Honeypot for Contact Form 7」プラグインを導入した際の記録です。
導入時点の状況
・WordPressプラグイン「Contact Form 7」を使用して作成したお問い合わせフォームを運用中
・reCAPTCHA v3を導入済み
・月に数件だったスパム送信が、突然1日に数十件届くように
上記の状況を踏まえ、reCAPTCHA v3と併用するスパム対策として、「Honeypot for Contact Form 7」プラグインを導入することにしました。
Honeypotの仕組み
・フォームに、ユーザーには見えない隠しフィールドを設置
・自動で全てのフィールドにデータを入力するスパムbotの特性を逆手に取り、隠しフィールドへの入力を誘導
・隠しフィールドにデータが入力された場合、スパムと判定して送信をブロック
Honeypotの導入手順
「Honeypot for Contact Form 7」をインストールして有効化します。
フォーム編集画面のフォームタグに「ハニーポット」ボタンが追加されます。
送信ボタンの上あたりで「ハニーポット」をクリックします。
「名前」を任意の名前に変更します。
初期値の「honeypot-xxx」のままだと、botにくぐり抜けられる可能性があるため、「honeypot」という文字列は使わないようにします。
honeypotのタグが挿入されたことを確認したら、「保存」をクリックします。
フォームの表示確認
お問い合わせ内容と送信ボタンの間にhoneypotのタグが追加されますが、表示上は何の変化もありません。
デベロッパーツールでソースコードを確認すると、display:noneで見えないフィールドが追加されていることが分かります。
これは、botトラップ用の隠しフィールドを追加し、それをdisplay:noneでユーザーには見えないようにしている、というシンプルな仕組みです。
まとめ
「Honeypot for Contact Form 7」は、ユーザビリティを損なうことなくスパム対策が可能です。
現状のスパム対策に不安がある場合、このプラグインを導入してみることを検討してみてはいかがでしょうか。