おいらが管理しているHPに「スパムメ-ル」が猛攻来襲!

今朝、メ-ル開いたら、迷惑メ-ルが千個くらい来ているwww。その迷惑メ-ル開いたら、最近無料でもらったドメインで作ったホームペ-ジの「お問い合わせメニュ-」に、2分間隔位で連続投稿しているスパムメ-ルだ。以前も時々、現在開設している他のホームペ-ジでも、お問い合わせメニュ-からいたずら書きというか、仮想通貨やらないか?みたいな詐欺メ-ルが来ることはあったが、2分間隔で無限回数的な投稿は初めて遭遇www。ちょつとやりすぎのようで、レンタルサ-バ-側から、外国からの、このお問い合わせメニュ-投稿は出来ないようにします、という連絡が来た。

他のいくつかのホームペ-ジも攻撃されたらまずいと思い、これを防ぐ方法をGEMINIに聞いてみた、プラグインのContactForm7の連続投稿を停止出来るアドイン「Disable Submit Button for Contact Form 7」を導入すれば停止出来るとか。その他、「JavaScriptコードを自分で追加する」方法とかいろいろあるようなのだが、面倒だし、ミスると大変らしいので、やらないwww。

**********************************

参考)Contact Form 7をご利用ですね。ユーザーが「送信」ボタンをカチカチッと連打してしまい、同じ内容のメールが2〜3通届いてしまうのを防ぐための、具体的な設定手順を解説します。

初心者の方にも安全で簡単な「①プラグインを使う方法」と、プラグインをこれ以上増やしたくない方向けの「②JavaScriptを追加する方法」の2つをご紹介します。どちらかやりやすい方を選んでみてください。

方法1:プラグインで実装する(おすすめ・最も安全)

これが一番簡単で、サイトが壊れるリスクもないため推奨される方法です。設定もほぼ不要で、有効化するだけで機能します。

【手順】

  1. WordPressの管理画面から 「プラグイン」>「新規追加」 を開きます。
  2. 右上の検索窓に 「Disable Submit Button for Contact Form 7」 と入力して検索します。
  3. 該当のプラグインが表示されたら 「今すぐインストール」 をクリックし、続けて 「有効化」 をクリックします。

【これだけで完了です】 たったこれだけで、ユーザーが送信ボタンを1回クリックするとボタンがグレーアウト(無効化)され、処理が終わるまで2回目が押せなくなります。

方法2:JavaScriptコードを自分で追加する(中級者向け)

「これ以上プラグインを増やしてサイトを重くしたくない」という場合は、自分で少しコードを追加することで全く同じことができます。

※テーマの functions.php を直接編集するのは画面が真っ白になるリスクがあるため、安全にコードを追加できる「WPCode」という定番プラグインを使った方法で解説します。(すでに導入済みの場合は手順2から進めてください)

手順1:コードを追加するための準備

  1. 「プラグイン」>「新規追加」から 「WPCode」 (または Insert Headers and Footers)を検索し、インストール・有効化します。
  2. 左側のメニューに「Code Snippets」という項目が追加されるので、「+ Add Snippet」 をクリックします。

手順2:JavaScriptコードの貼り付け

  1. 画面の中から 「Add Your Custom Code (New Snippet)」 をクリックします。
  2. 以下の設定を行います。
    • タイトル: 任意の名前(例:CF7二重送信防止)
    • Code Type: 右側のドロップダウンから 「JavaScript Snippet」 を選択します。
  3. 以下のコードをコピーして、黒い入力欄(Code Preview)にそのまま貼り付けます。

JavaScript

document.addEventListener('DOMContentLoaded', function() {
    // ページ内のContact Form 7のフォームをすべて取得
    var wpcf7Elms = document.querySelectorAll('.wpcf7');
    
    wpcf7Elms.forEach(function(wpcf7Elm) {
        var submitButton = wpcf7Elm.querySelector('.wpcf7-submit');
        var defaultText = submitButton ? submitButton.value : '送信';

        if (submitButton) {
            // ① フォーム送信時にボタンを無効化(押せなくする)
            wpcf7Elm.addEventListener('submit', function() {
                submitButton.disabled = true;
                submitButton.value = '送信中...'; // ボタンの文字を変更
            });

            // ② 入力エラーがあった場合(必須項目漏れなど)はボタンを元に戻す
            wpcf7Elm.addEventListener('wpcf7invalid', function() {
                submitButton.disabled = false;
                submitButton.value = defaultText;
            });

            // ③ スパム判定された場合もボタンを元に戻す
            wpcf7Elm.addEventListener('wpcf7spam', function() {
                submitButton.disabled = false;
                submitButton.value = defaultText;
            });

            // ④ 送信に失敗した場合もボタンを元に戻す
            wpcf7Elm.addEventListener('wpcf7mailfailed', function() {
                submitButton.disabled = false;
                submitButton.value = defaultText;
            });
        }
    });
});

手順3:保存して有効化

  1. 画面を少し下にスクロールし、「Location」が 「Site Wide Footer」 になっていることを確認します(デフォルトでなっているはずです)。
  2. 画面右上のスイッチを「Inactive」から 「Active(有効)」 に切り替えます。
  3. その横の 「Save Snippet(保存)」 ボタンをクリックします。

これで設定完了です。

💡 動作確認のお願い

設定が完了したら、実際にご自身のお問い合わせフォームを開いて以下のテストを行ってみてください。

正しく入力して送信ボタンを連打してみる → 1回クリックした瞬間にボタンが押せなくなり、2通目のメールが送信されなければ成功です。

何も入力せずに送信ボタンを押す → 一瞬ボタンが「送信中…」になり押せなくなった後、エラーメッセージ(「必須項目に入力してください」など)が表示されると同時に、ボタンが再び押せる状態に戻れば成功です。

Translate »