WordPressサイトにフォームを設置していると、スパム(迷惑メール)が飛んでくることがあります。
例えばこういうのです。

弊社採用サイトのエントリーフォームに飛んできたスパムの例
ランダムな英字を各項目に入力して飛ばしてきています。こういったスパムは昼夜問わず何度も送信されてきて厄介ですし、正規ユーザーのお問い合わせが埋もれてしまうので、対策が必要です。
というわけで今回は、スパムを防止するために、最もシンプルで効果的な対策方法をご紹介します。
「ひらがな」を含まなければ送信できないようにする。
対策方法はとてもシンプルです。
「Contact Form 7」をお使いの場合、文章を入力する項目(テキストエリア)に「ひらがな」を含まなければ送信できないようにする。という制限を加えるだけです。
これにより、ランダムな英字の羅列で送られてくるスパムはすべて防止できます。
以下の記述をそのままコピペしてご活用いただけます。
//textareaに「ひらがな」を含まなければ送信できないようにする。
function validate_textarea_hiragana($result, $tag) {
$name = $tag['name'];
$value = $_POST[$name] ?? '';
if ($value && !preg_match('/[ぁ-ん]/u', $value)) {
$result->invalidate($tag, 'ひらがなを1文字以上含めてください。');
}
return $result;
}
add_filter('wpcf7_validate_textarea', 'validate_textarea_hiragana', 10, 2);
add_filter('wpcf7_validate_textarea*', 'validate_textarea_hiragana', 10, 2);
テーマファイルのfunction.phpを編集するのではなく、次のようなプラグインを使うのが安心です。

WordPressの「functions.php」ファイルは、初心者はあまり触らない方が無難です。 色んなカスタマイズが可能な反面、操作を間違えるとエラーが出てしまうリスクがあるからです。 そこで本稿でご紹介するのは「Code Snippets」というプラグイン。functions.ph...
基本的にはプラグインを有効化して、上記記述をコピペすればOKです。
この対策によって、テキストエリアにひらがなが1文字も含まれていない場合は、次のようにエラーメッセージが表示されるようになります。
これでランダムな英字の羅列だけのスパムは片っ端からブロックできるというわけです。
最後に「ひらがな」を含めた正しい文章であれば、正常に送信されることも確認しておきましょう。
この対策の場合、一部の正規ユーザー(海外ユーザー、英語話者など)が影響を受ける可能性があるので、お使いのサイトやフォームによっては別途考慮が必要です。国内の日本語話者を対象にした採用エントリーフォーム等であれば問題ないはずです。
併用したいスパム対策
「Contact Form 7」のスパム対策は他にもあります。併用することで効果を高められます。
フォームを設置するなら、reCAPTCHAの設定はセットで考えておいた方がいいでしょう。詳しくは下記記事を参考にご覧ください。

WordPressサイトのお問合せフォームには、「Contact Form 7」がよく使われています。日本製のプラグインで人気です。 当サイト(TCD公式)のお問い合わせフォームでも活用させていただいていますが、セキュリティ面を考えるとスパム対策は必須です。そこで今回は、最も簡単で実用的なre...
また、次のような対策が可能なContact Form 7専用のスパム対策プラグインもあります。
- 指定したメールアドレスの受信拒否
- ドメイン、単語、フレーズ等を設定してブロック
- なぜ拒否されるのかを示すエラーメッセージを表示
ご興味のある方は、下記記事をチェックしてみてください。

「お問い合わせフォームで、特定のメールアドレスからの受信を拒否できるようにしたい。」 スパムや迷惑メールなど。セキュリティ上の観点からそのようなケースがあると思います。当記事では、プラグイン「Contact Form 7」で作成したお問い合わせフォームで、特定のメールアドレスからの受信を拒否す...
導入してみた結果
弊社の採用エントリーフォームに届いていた英文スパムに対し、筆者が実施した対策をご紹介しました。
「日本語(ひらがな)が含まれていなければ送信できないようにする」というシンプルな対策ですが、数分おきに届いていたスパムがピタッと止まりました。お困りの方は、ぜひ参考にしてみてください。
ただし、英語話者も利用するフォームでは、この方法が適さない場合があります。サイトの用途に合わせて、reCAPTCHAなどの他の対策も検討してください。
WordPressテーマ
WordPressを使うとこんな採用サイトも低コストで自作できるようになります。
コメント