お問い合わせフォームを経由した海外からの「スパムメール(迷惑メール)」に困っていませんか?
ブログのPV数が増えると嬉しくない訪問者も増えるのが世の常です。
今回はそんなスパム投稿(迷惑メール)からブログを守る方法を紹介していきます。
- スパム投稿(迷惑メール)について
- スパム投稿(迷惑メール)の対策について
スパム投稿(迷惑メール)は百害あって一利なしなんで、早めに対策しておきましょう!
お問い合わせフォーム経由で「最近海外から変なメールが届く」といった心当たりがある場合は、これから紹介する対策をぜひ試してみてください!
問い合わせフォームのスパム投稿(迷惑メール)とは?
スパムとは、セキュリティ用語で「迷惑な行為」のことをいいます。
次にスパム投稿とは、WordPressに設置している問い合わせフォームから届く迷惑な問い合わせのことですね。
この点について少し話をしていきます。
スパムが送られてくる仕組み
スパムbotと呼ばれるロボットによりスパムは送られてきます。
スパムbotはなかなかに賢いシステムでして、お問い合わせフォームの内容に沿ったコメントを自動的に入力し送信してきます。
詳しくは後述しますが、フィッシングサイトへ誘導するURLが貼られていりたりするので注意が必要です!
イメージとしては上の図(スパムが送られてくる仕組み)のとおりです。
スパムを放置しておく危険性について
スパムを放置しておくと下のような煩わしさや危険性が発生します。
- メールフォルダの圧迫
- サーバーへの悪影響
- メール削除の煩わしさ
- ウィルス感染の恐れ
- ブログやサイトの乗っ取り
- 機密情報の漏えい
特に覚えてもらいたい危険性についてもう少し詳しく見ていきましょう。
ウィルス感染の恐れ
もっとも注意しておかなければならないのがウィルス感染の恐れがある点ですね。
問い合わせの内容にURLが記載されていたり、ファイルが添付されていたりと様々な危険性があります。
絶対にクリックやダウンロードはしないようにしましょう。
ブログやサイトの乗っ取り
ウィルスに感染することでブログやサイトの乗っ取りにあったという事例も良く聞きます。
せっかく苦労して作ったブログが他人に奪われてしまうなんて考えただけでも恐ろしいです。
機密情報の漏えい
ウィルスの種類によってはパソコン全体へ影響を及ぼし、パソコン内に保存している個人情報が抜き取られる可能性もあります。
最悪の場合、社外秘の情報が含まれていた場合など損害賠償の問題にも発展しかねません。
リスクを少しでも減らすためスパムメールに対する対策をはやめに取り入れるようにしましょう!
スパム投稿(迷惑メール)の対策方法
ここからはスパム投稿の対策方法を紹介していきます。
- アクセス元のドメイン・IPに制限をかける
- お問い合わせフォームに必須項目を設置する
- パーマリンクを推測されにくくする
- Contact Form 7で本文日本語以外をエラー化
- Google reCAPTCHAを設置する
順に説明していきますね。
アクセス元のドメイン・IPに制限をかける
サーバーのアクセスログなどからアクセス元のIPアドレスを調べ、対象のIPアドレスからのお問い合わせフォームへのアクセスを拒否することが可能です。
特定のメールアドレスやドメインから同内容のスパムが頻繁に送られてくる場合に有効な手段です。
IPアドレスの制限は、専門的な知識が必要(「.htaccess」ファイルの編集)になるので詳しくない方はココナラ等で依頼するのをおすすめします。
ちなみにフク太郎さんが、ブログにアクセス制限をかけて特定の人・国をブロックする方法で詳しく解説しているので、自分でやりたいって人は参考にしてみてください!
お問い合わせフォームに必須項目を設置する
お問い合わせフォーム内に必須項目を設置し、未記入だとエラーにすることでスパム投稿を拒否することが可能です。
ただし、最近のスパムbotはだいぶ賢くなってきているので、効果が薄くなってきていると思います。
必須項目を設置するは最低限の対策として準備しておくようにしましょう。
パーマリンクを推測されにくくする
みなさんのお問い合わせページのパーマリンク「contact」になってませんか?
最近のスパム投稿は、「https://ドメイン/contact」であったり「https://ドメイン/mail」をランダムに攻撃してきているようです。
「contact」を「otoiawase」や「renraku」など日本語を知らない外国の方には認識しにくいパーマリンクに変更しましょう。
これだけでスパムbotからのランダム攻撃は避けることができるようになります。
Contact Form 7で本文日本語以外をエラー化
外国からのスパムメールが多い方におすすめの対処法が日本語以外の投稿をエラーにさせる方法です。
アルファベットが入っている時点でエラーにさせてしまうので注意書きはしている方がよいですが。。。
手順を簡単に紹介しておきます。
- fanction.phpを開く
- 本文が日本語以外の場合エラーにするコードを貼り付け
- 英文で送信できないことを確認する
下のとおりです。
function.phpを開く
※子テーマにfunction.phpが無い場合は追加しておきましょう!
本文が日本語以外の場合エラーにするコードを貼り付け
以下のコードを貼り付けてください
//(contact form7)問い合わせフォームの textarea に英文があると送信エラーにさせる add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2); add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2); 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; }
これだけで日本語以外の投稿はエラーになって送信できないようになります。
英文で送信できないことを確認する
最後に英文でコメントが送信できないことを確認しておきましょう。
日本語なら送信出来て、英文が含まれると送信できないようになっていればOKです。
Google reCAPTCHA v3を設置する
reCAPTCHAとは、スパム投稿を防ぐためにGoogleが提供している無料のサービスです。
手順を簡単に紹介しておきますね。
- GoogleのreCAPTCHAサービスをに登録
- 連携用のキー(APIキー)を取得する
- Contact Foam 7にAPIキーを反映させる
流れとしてはこんな感じですね。
詳しくはGoogle reCAPTCHA v3をContact Form 7へ導入する4手順で紹介させていただきますが、ここではURLだけ紹介しておきますね。
reCAPTCHA公式サイト⇒https://www.google.com/recaptcha/about/
まとめ:スパム投稿からブログを守る5つの方法
今回は自分のブログへのスパム投稿がひどくなってきたので対処した際の方法を紹介してきました。
スパム投稿への対策は1つだけでなく複数対策することで効果があがりますので時間があるときにやってみてください!
- アクセス元のドメイン・IPに制限をかける
- お問い合わせフォームに必須項目を設置する
- パーマリンクを推測されにくくする
- Contact Form 7で本文日本語以外をエラー化
- Google reCAPTCHAを設置する
ぜひぜひ、試してみてくださいね~!
ブログを守る方法はプラグインでもいろいろとあるので、WordPressに導入すべきプラグイン10選も参考にしてみてくださいね。