サイトアイコン WEB-Geek-Site.com

WP★スパム対策|日本語を必須にする& Google reCAPTCHA で2重のガード!

Anti-SPAM-Schild mit Mails im Hintergrund - orange

クライアントさまから「海外からのスパムメールが酷いので何とかならないか」と相談を受け、早速、対策をリサーチ。あまり難しいことをしなくても効果的な対策はないかなぁ。
いろいろ調べて絞り込んだ2つの対策をやってみたところ「効果がありました!」という報告をいただきました。今のところ有効な対策なので他のサイトでも設置するために、忘れないようにメモしておきます。

スパム対策01 日本語を必須にする

「ひらがな」がないメール本文は送信エラーとなるコードです。
これを functions.php に追記します。
これだけで海外スパムメールが届かなくなりますのでおすすめです。

//contact form7 海外スパムメール対策
add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);
function wpcf7_validation_textarea_hiragana($result, $tag)
{
  $name = $tag['name'];
  $value = (isset($_POST[$name])) ? (string) $_POST[$name] : '';
  if ($value !== '' && !preg_match('/[ぁ-ん]/u', $value)) {
    $result['valid'] = false;
    $result['reason'] = array($name => 'エラー:送信できません。');
  }
  return $result;
}

スパム対策02 GoogleのreCAPTCHAを設置する

グーグルから提供されているスパム対策サービス。

Googleの設定ページに行きます。
ここから設定に必要なキーを発行します。
Google reCAPTCHA

項目に入力して「送信」ボタンを押すと、
サイトキーと
シークレットキーが
発行されますので、
コピーして保存しておきます。

WordPressに移動して、
① ダッシュボードからお問い合わせを選択
②「インテグレーション」を選ぶ
③ 先ほど保存したサイトキーと
シークレットキーを入力して「変更を保存」ボタンをクリック

これで設定は完了です!

モバイルバージョンを終了