セキュリティ・サーバ

Webサイトのスパム対策

この記事は約8分で読めます。
スポンサーリンク

こんにちは、まっさん(@Tera_Msaki)です。

この記事はSIベンダーで28年あまりシステムエンジニアとして、
いろいろなシステムのインフラを構築してきた経験をもとにセキュリティについてまとめたものです。

Webサイトを立ち上げて、1年あまり経ちました。
インターネットに直接接続しているWEBサイトは、
不正アクセスなど、日々何かしらの脅威に晒されている状況です。
今回は、Webサイトを運用する中で身近な脅威となる
問い合わせフォームを踏み台とした迷惑メールの対策(スパム対策)について、
お話したいと思います。

・Webサイトを公開している人
・Webサイトの運用に興味がある人
・Webサイトのスパム対策について知りたい人

この記事を読めば、Webサイトのスパム対策がわかります。

Webサイトを管理するうえで、必ずといいほど使うGoogleのアナリティクス。
2023年までにGA4に切り替える必要があるのですが、GA4で目的のレポートを表示するのにひと苦労、、、
GA4に対応したアクセス解析レポートが出力できるのはかなり魅力的♪

問い合わせフォームに対する脅威

Webサイトの窓口となるのが、問い合わせフォームです。
その仕組みは、問い合わせフォームに入力した内容を
Webサイトの管理者入力したメールアドレスにメールを送るといったもの。
入力するのが人であれば、それほどの脅威とはなりませんが、
Botを使って、機械的に入力することで、
大量の迷惑メールを送ることが可能になります。
問い合わせフォームに入力したメールアドレスにメールが送られることで、
迷惑メールの加害者となることこそが脅威となります

問い合わせフォーム以外でコメントも同様に狙われます。
この場合、メールの送信先はWebサイトの管理者だけですが、
コメントを未承認で表示するようにしている場合は、
コメント欄を踏み台としたサイト誘導の手段として利用されます。

スパム対策

スパム対策として、人間Botを判別する仕組みをもつGoogle社のreCAPTCHAを利用することが
有効な対策のひとつです。

reCAPTCHAには、大きくわけてv2v3があり、
v2では、人間か Bot を判断するために、
チェックボックスの有効化をユーザに要求します。
v3では、チェックボックスの有効化な
ユーザ側の操作が不要で、
人間か Bot を判断するのために、ユーザがWebサイトに訪れてからの行動で判断します。
ユーザビリティの観点で、v3が優れていますが、
人間を Bot として誤判定されることもあるので、
問い合わせでの利用を考えた場合、v2のほうが良いと考えています。
v2でも、ユーザがWebサイトに訪れてからの行動も考慮されており、
Bot として疑われた場合、一方的に拒否するのではなく、
複数の画像を表示して、特定の画像を選択させて判断を行いますので、
誤判定に対して、考慮されてます。

このサイトの問い合わせは、reCAPTCHA v2を使用しています。

reCAPTCHAの適用

reCAPTCHAを使用するには、
Google reCAPTCHA の
公式サイトにある管理コンソール(v3 Admin Console)で
reCAPTCHAを使用するためのサイトキーとシークレットキーを発行する必要があります。
発行したキーを使って、Webサイトに reCAPTCHA を適用します。

サイトキーとシークレットキーの取得

管理コンソールにログインすると、画面右上に「+」が表示されていますので、
これをクリックするとreCAPTCHAを使用するサイト登録の画面が表示されます。

ラベル、reCAPTCHAタイプ、ドメインを入力して保存します。

オーナーのメールアドレスを消しています

reCAPTCHAのキーをクリックすると、
サイトキーシークレットキーが確認できます。

サイトキーとシークレットキーを消しています。

問い合わせフォームの設定

問い合わせフォームでプラグインのContact Form7を使用している場合は、
Contact Form7の
インテグレーションでreCAPTCHAを設定できます。
別のプラグインや使用していない場合でも、reCAPTCHAを使用することが可能ですが、
クライアント(JavaScript)とサーバ(PHP)の両方にコーディングが必要になります。
このサイトは Contact Form7 を使用していますので、
Contact Form7 に reCAPTCHA v2 を設定する方法を紹介します。

v3を使用する場合は、インテグレーションのセットアップで、
サイトキーシークレットキーを設定するだけで使用できるようになります。

このサイトも当初はv3を使用しようといましたが、
JavaScriptのエラーで問い合わせフォームが送信できない現象が発生しました。
おそらくですが、Adsense広告の遅延読み込みが影響しているものと判断しています。

デベロッパーツールでエラーを確認。

最新版の Contact Form7 は、reCAPTCHA v2に対応していませんので、
v2を使用する場合は、プラグインのReCaptcha v2 for Contact Form 7を使用します。

reCaptchaの使い方を選択で「reCaptcha バージョン2」、
reCaptchaソースを選択で「google.com」を選択して、
送信をクリックします。

Contact Form7のインテグレーション(reCAPTCHA)は、
v2のサイトキーとシークレットキーを設定します。

Contact Form7 のフォームで、チェックボックスの有効化を表示する場所に[rechapcha]を設定します。

reCAPTCHAの適用後の問い合わせフォーム

v3では全ページにreCAPTCHAのロゴが表示されるようになりますが、
v2ではreCAPTCHAを適用した問い合わせフォームだけの表示となります。

今回はここまでです。

問い合わせフォームにチェックするを設けたり、
メッセージ本文にひらがなが含まれているかチェックする方法などもありますが、
フォーム送信だけで実現できる対策はあまり効果がのぞめません。
人間か Bot の判断を reCAPTCHA を利用することで、格段に効果があがりますので、
reCAPTCHAの利用をおススメします。

ブログランキング・にほんブログ村へ

コメント欄