愛知県名古屋市のブランディングで育てる
ECコンサルティング・ECサイト構築会社|アイヴィクス株式会社

当社WebサイトはWordPressで運営されていますが、営業目的のメッセージやスパムメールが急増してきました。
特に気になったのが、本文にURLを含んだフィッシング詐欺のような内容の投稿です。
こうしたメールが届くと、本当に必要なメールを見落としてしまうことにつながるのではと考え、問い合わせフォーム(Contact Form7 )をカスタマイズすることにしました。
具体的には、URLを含むお問い合わせを自動で拒否できるようにする対策を施しました。
この記事では、実際にどのような背景でこのカスタマイズに至ったのか、
導入したコードの内容、そして実際に効果があったのか?というリアルな結果まで、詳しくお伝えしていきます。
目次
当社のWebサイトでは、毎日、フリーのコーダーさんや営業マンからのメールが届いていました。そのたびに「あぁまたか」と残念な気持ちになってしまいます。なかにはそうではないメールもあるのですが、定型文を使った文章が多く、本当に営業をする気があるのかと思える内容まで様々です。
一見無害に見えるものの、フォーム経由で大量に送られてくると、本来の問い合わせを見逃すリスクが高まります。
さらに最近では、短縮URLや不審なドメインが含まれるスパムメールも届くようになりました。サーバーで事前に拒否しているメールもあるようですが、100%防ぎきれていないものもありました。
これらはフィッシング詐欺やマルウェアへの誘導を目的としている可能性もあり、放置すればサーバー全体が感染の危険に晒されたり、お客様の信頼を損なう危険性があります。
reCAPTCHAやAkismetといった基本的なスパム対策は随分前からしてきました。しかし、URLを明示的にブロックしたいというニーズはこれらのツールでは十分に対応できません。
そのため、「フォーム送信時にURLを検出して拒否する」カスタマイズを導入するに至りました。
Google検索で実装されたハッシュタグ検索の概要と実態調査
まず、フォームが送信される前に、JavaScriptでtextarea内にURLが含まれていないかを検出します。
これにより、ユーザーが送信ボタンを押す前にブロックできるため、UXを損なわずにセキュリティを強化できます。
<script>
document.addEventListener('DOMContentLoaded', function () {
const form = document.querySelector('.wpcf7 form');
if (!form) return;
form.addEventListener('submit', function (event) {
const textarea = form.querySelector('textarea[name="your-message"]');
const urlPattern = /(https?:\/\/[^\s]+)/gi;
if (textarea && urlPattern.test(textarea.value)) {
alert("URLの記載は禁止されています。");
event.preventDefault();
}
});
});
</script>
※ your-message の部分は、実際のフォームのname属性に合わせて変更してください。弊社では、footer-lp.phpの</body>タグ直前に挿入しました。
JavaScriptは便利ですが、無効化されている環境やBotには効きません。
そのため、Contact Form 7のバリデーションフィルターを使ってサーバー側でもURLチェックを行います。
add_filter('wpcf7_validate_textarea*', 'deny_url_in_textarea', 20, 2);
add_filter('wpcf7_validate_textarea', 'deny_url_in_textarea', 20, 2);
function deny_url_in_textarea($result, $tag) {
$name = $tag->name;
if ($name === 'your-message') {
$value = isset($_POST[$name]) ? $_POST[$name] : '';
if (preg_match('/https?:\/\/[^\s]+/', $value)) {
$result->invalidate($tag, 'URLの記載はご遠慮ください。');
}
}
return $result;
}
この処理を functions.php
に追記することで、URLを含む投稿はサーバー側でも自動的に拒否されます。弊社では、?>タグの直前に挿入してみました。
このように、二重のセキュリティを施すことでより堅牢なフォーム環境を実現できます。
aiship Google Tag ManagerでGA4のeコマース設定を完了する【GTM】
設置してから2週間ほど経過しましたが、URLを含む営業メールは完全にブロックされるようになりました。
本来の問い合わせが埋もれることがなくなり、ストレスも激減しました。
特にありがたかったのは、フィッシング詐欺系のメッセージがピタリと止まったことです。
ドメイン信頼性を保つ上でも非常に有効です。
スパムが減ることで、本当に必要としているユーザーとの接点が明確になり、商談率も改善しました。
無駄なフィルター作業が減ったことで、心理的・時間的コストも軽減できました。
今回のようなJSやPHPのカスタマイズでフィルタリングすることは非常に強力ですが、reCAPTCHAやAkismetといったツールとの併用で、幅広いスパムへの対応が可能になります。さらにサーバーのスパム対策と組み合わせると最強です。
スパム手法は日々進化しています。
Contact Form 7のフォームは定期的に見直し・強化を行うことで、継続的な安心運用が可能になります。
ブランディングで育てるECコンサルティング会社を経営。ECコンサルタント兼Webマーケターとして、中小企業向けに100社以上のECサイト構築、50社以上の課題解決を支援。ブランディングデザイナーとして、ブランドの魅力を可視化し「選ばれるECサイト」へ。全日本SEO協会会員で、SEO集客にも強み。
ECコンサルティングの最新記事をお届けします