WPスパムメール対策
WPのformメールに『Contact Form7』を使いだしてから、英文のスパムメールが1日平均10通位来るようになりました。
対策として『承諾確認』のチェックボックスを設置したり、プラグインの『Honeypot』をインストールしました。効果はありましたが完全に防止はできず、まだ1日に5通位送られてくる状態が続きました。
スパムメールに共通していることは入力されている文字が数字とアルファベット、外国語です。日本語は全く入力されていません。住所にはいつも数字が入力されています。
以下のサイトで『日本語が1文字も含まれていないコメントを除外する』という記事を発見しました。
【kodocode.net】
この方法は『functions.php』に以下のコードを追加し日本語の有無をチェックし、日本語が使われていない場合はエラーにしてしまう方法です。私は住所のテキストボックスを検査対象にしましたが赤文字の検査対象部分は各自変更ください。
—————————————————————————————
function wpcf7_validate_spam_message( $result, $tag ) {
$value = str_replace(array(PHP_EOL,’ ‘), ”, esc_attr($_POST[‘text-154‘]));
if (!empty($value)) {
if (preg_match(‘/^[!-~]+$/’, $value)) {
$result[‘valid’] = false;
$result[‘reason’] = array(‘text-154‘ => ‘正確に入力してください’);
}
}
return $result;
}
add_filter( ‘wpcf7_validate’, ‘wpcf7_validate_spam_message’, 10, 2 );
—————————————————————————————
この対策後スパムメールは0件となりました。【kodocode.net】様 感謝申し上げます。
2019-10-31 | カテゴリー:Web