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がアップデートされても大丈夫なようにプラグイン FunctionalityやCode Snippetsで本体の【functions.php】をいじることなく追加してます。お薦めはCode Snippetsです。
functions.phpを直接編集しなくて済むプラグイン 直接編集するとWordPressがアップデートされたりテーマがアップデートすると上書きされせっかく入れた編集内容が消える 同種だがCode Snippetsのほうが使い勝手はメリットあり 続きを見る Googleのボット対策ツールreCAPTCHA V3対応の WordPressのスパム対策はプラグインreCaptcha by BestWebSoftは設定も簡単で効果絶大 WordPress標準ページに導入 · お問い合わせフォームに導入 続きを見る
安心してfunctions.phpをカスタマイズ 直接編集しなくて済むプラグインFunctionality
reCaptcha by BestWebSoft インストール後 スパムが一掃 reCAPTCHA V3効果あり