ContactForm7 お問い合わせへの英語投稿のスパムを簡単に無くす方法

 対策前

私のサイトはWordpressに「ContactForm7」というプラグインを利用してお問い合わせフォームを設置しました。
設置後すぐに英語の意味不明で迷惑なスパム投稿が毎日数十件送られてきました。
個人ブログですので、海外からメッセージを受け付ける必要がなく、日本語のみを受け付ける前提ですので、送られないように対策しました。
業者の営業メールも必要ないので、こちらは簡単な対策をしました。

 対策方法

コードをコピペするだけでOK

WordPressで使用しているテーマ(私はCocoonというテーマを利用しています)の子テーマ(子テーマを利用してない場合は親テーマ)functions.phpをファイルマネージャーで編集、コードの最後尾に以下のコードをコピペし保存するだけです。

//textareaに「ひらがな」を含まなければ送信できないようにする。
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;
}
add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);

ファイル場所例

/public_html/plus-a.cloud/wp-content/themes/cocoon-child-master/functions.php

コピペ例

<?php  // 子テーマ用関数
if ( ! defined ( 'ABSPATH' ) ) exit ;

//子テーマ用のビジュアルエディタースタイルを適用
エディタスタイルを追加します。

//以下に子テーマ用の関数を書く

//textareaに「ひらがな」を含めないと送信できないようにします。
関数 wpcf7_validation_textarea_hiragana ( $result 、 $tag )
{
    $name  =  $tag [ '名前' ] ;
    $value  = ( isset ( $_POST [ $name ])) ? (文字列) $_POST [ $name ] :  '' ;
 
    if ( $value  !==  ''  &&  ! preg_match ( '/[ぁ-ん]/u' ,  $value )) {
        $result [ '有効' ] =  false ;
        $result [ 'reason' ] =  array ( $name  =>  '送信できません。' ) ;
    }
 
     $result を返します。
}
add_filter( 'wpcf7_validate_textarea' ,  'wpcf7_validation_textarea_hiragana' ,  10 ,  2 ) ;
add_filter( 'wpcf7_validate_textarea*' ,  'wpcf7_validation_textarea_hiragana' ,  10 ,  2 ) ;

特定のキーワードが含まれていたら、送れなくする方法

WordPress 標準禁止ワード登録の機能は Contact Form7 にも適用でき、禁止ワードを設定するだけで、迷惑営業メールをかなり減らすことができるのです。
おそらく数ある迷惑営業メール対策の中でも最強の対処法で、効果は絶大です。

下記サイトが分かりやすく参考に設定しました

Contact Form7 で誹謗中傷や迷惑営業メールをブロックできる設定方法
今回は『WordPress 標準の「禁止ワード登録機能」を使って Contact Form7 の迷惑営業メールを減らす方法』を紹介します。設置したお問い合わせメールフォームを経由し...

 対策後

以上の対策で迷惑投稿は無くなり、「モデレートしてください」のメールが楽しみになりました。

プラス スパム対策としてreCAPTCHAの実装

フォームにはスパム投稿対策として、Googleが提供する「reCAPTCHA(リキャプチャ)」の実装がお勧めです。
簡単に出来ますので、是非取り入れましょう。

Google reCAPTCHAでサイトを登録する

reCAPTCHA
reCAPTCHA is a security service that protects your websites from fraud and abuse.

↑のエンタープライズを始めるをクリック、サイトを登録します。

  • ラベルには任意の名称を入力します。
  • reCAPTCHA タイプはスコアベース(v3)を選択します。
  • ドメインには、reCAPTCHAを設定するサイトのドメインを入力します。

サイトにreCAPTCHA を追加するの画面にサイトキーシークレットキーが表示されるので、これらをコピーしてContact Form 7のインテグレーションで使用します。

Contact Form 7にreCAPTCHAを実装

  • WordPressの管理画面から、お問い合わせ⇒インテグレーションを選択します。
  • reCAPTCHAのインテグレーションのセットアップをクリックします。
  • サイトキーとシークレットキーをそれぞれ、の入力欄にコピーして変更を保存します。

サイトを開いた時にreCAPTCHAの保護マークが表示されていれば、reCAPTCHAv3の実装は完了です。

コメント