【Contact Form7】問い合わせフォームにスパムが大量発生したときの対策

年末の仕事納め後に下記のようなスパム問い合わせが大量に届いてちょっと焦ったので、スパムが来たときの対策を記録しておく。

1分間に1回通知が来るので焦った。でも焦らずに。

問い合わせフォームを非表示にする【応急措置】

最も素早く確実な方法は、問い合わせフォーム自体を非表示にしてしまうこと。

よほど多くの問い合わせを受けているわけでなければ、

  • 問い合わせフォームページを非公開
  • 埋め込んである問い合わせフォームを削除

して対処する。

その状態で、下記の対応策に移っていき、落ち着いたら公開に戻すようにしよう。

問い合わせを全体的にブロック!

reCAPTCHAを導入する

非表示にしてしまうと、当然ながら普通の問い合わせも来なくなる。

スパムかどうかを判定するために、reCAPTCHAというセキュリティを導入するのがおすすめであり、問い合わせフォームプラグインであるContactForm7にも統合しやすいようになっている。

STEP
ContactForm7のインテグレーションを開く
STEP
reCAPTCHAのスパム対策URLを開く
STEP
管理コンソールを開く

画面上部の「v3 Admin Console」をクリック

STEP
ドメインなどを入力

注意すべきは、

  • reCAPTCHAタイプをv3にすること
  • ドメインは運営中サイトのドメインを入力すること

それ以外は、任意の区別しやすい名前でOK

「送信」を押すと、サイトキーとシークレットキーが表示されるので、メモしておく。

STEP
インテグレーション画面を開く

STEP2に戻り、「インテグレーションのセットアップ」をクリック。

STEP4でメモした、サイトキーとシークレットキーを入力して保存。

以上のステップで、reCAPTCHAが完了する。

スパムを発見すると、Flamingoにある受信メッセージのスパムカテゴリに入るようになるはずだ。

もし、自分のテスト問い合わせがスパムに入ってしまうようだと、別の問題があるかもしれないが、私はこれで正常に動作した。

Flamingoを廃止する

スパムメッセージがFlamingoに保存されていくわけだが、大量にスパムが溜まっていくと、サーバ容量が圧迫されてしまう可能性もある。

ほとんどの場合、問い合わせ数万件くらいではサーバ容量に影響は無いが、複数のサイトを運営していたり、あまり良いサーバを使っていない場合は注意しておこう。

一応、最新のFlamingoでは30日経過したスパムは削除されるようになっているし、設定を変えれば(ちょっと面倒だけど)削除までの期間をもっと短くすることもできる。

ただ、サーバに個人情報を保存するのはちょっと責任が重いということもあり、やはり問い合わせ内容を保存しないほうがいいのではないかと感じることもある。

なので、いっそのことFlamingoを使わないようにして、問い合わせはメール通知して、スパムはただ弾くだけにするほうがいいと思う。

問い合わせ用メールアドレスを作ったり、ラベルをつけるようにして、メールボックス内で管理することをおすすめする。

まとめ

スパムが大量発生したときは、焦らずに以下のステップで対応しよう。

  1. 問い合わせをすべて非表示にする
  2. reCAPTCHAを導入する
  3. Flamingoを削除する
  4. 問い合わせを表示に戻す

問い合わせフォームの設定方法については、下記を参照していただくと無駄なスパムを弾ける。