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

※※※投稿内の画像は、クリックすると拡大できます。※※※
※※※Images in posts can be enlarged by clicking on them※※※
リンクはご自由にしてください。お問い合わせより一報いただけるとありがたいです。

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

スパムメール

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

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

//スパム対策(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 );

 

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

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

この記事のトラックバック用URL

ビッグローブ(BIGLOBE)光

ビッグローブ光とは、BIGLOBEが提供する高速・高品質のインターネット接続サービスです。NTT東西から光回線を借り受けて提供する光アクセスサービスのため、フレッツ光と回線品質は同じ!さらにBIGLOBEが提供する様々な便利なサービスを提供いたします。

この記事が気に入ったら
フォローしよう

最新情報をお届けします

Twitterでフォローしよう

おすすめの記事