お問い合わせプラグイン Contact Form 7 で2バイト文字判定でスパムを防ぐ

2023年2月26日

※アフェリエイト広告を利用してます。

Contact Form 7で半角英数だけのお問い合わせ

お問い合わせのスパム対策で【Google reCHPTCHA V3】を使って対応していますがそれでもすり抜けてやってくる海外からスパム。

スパムメール

一度すり抜けると数十分おきにやってくる。何か良い方法はないかと調べて2バイト文字による判定で海外からのスパムを防ぐことにしました。日本語の文字は英語等と違い半角英数2文字で作られてます。この2バイト文字がない限り送信ができないようにしました。

メッセージ本文欄に日本語の2バイトの文字がないとエラーメッセージ「お問い合わせ内容は日本語で入力してください」とのメッセージが出て送信できません。使っているお問い合わせのプラグインは一番メジャーな【Contact Form 7】やり方は簡単【functions.php】に下記のソースコードを追加するだけです。

2バイト文字判定ソース

//スパム対策(Contact Form7用)
function wpcf7_validate_anti_spam_message( $result, $tag ) {
    $value = str_replace(array(PHP_EOL,' '), '', esc_attr($_POST['your-message']));
    if (!empty($value)) {
        if (preg_match('/^[!-~]+$/', $value)) {
            $result['valid'] = false;
            $result['reason'] = array('your-message' => 'お問い合わせ内容は日本語で入力してください');
        }
    }
    return $result;
}
add_filter( 'wpcf7_validate', 'wpcf7_validate_anti_spam_message', 10, 2 );

 

WordPressのアップデートによる上書きにも対応

私の場合は【functions.php】に直接書くのではなく、WordPressがアップデートされても大丈夫なようにプラグイン FunctionalityCode Snippetsで本体の【functions.php】をいじることなく追加してます。お薦めはCode Snippetsです。

コードスペニット

注目
reCaptcha by BestWebSoft インストール後 スパムが一掃 reCAPTCHA V3効果あり

Googleのボット対策ツールreCAPTCHA V3対応の WordPressのスパム対策はプラグインreCaptcha by BestWebSoftは設定も簡単で効果絶大 WordPress標準ページに導入 · お問い合わせフォームに導入

続きを見る

このエントリーをはてなブックマークに追加 ブログランキング・にほんブログ村へ