Hushfort

WordPress のスパム登録(偽ユーザー登録)を止めるには?

執筆:Eureka Studio · 更新日

要点

ユーザー登録を公開する必要がないなら、オフにしましょう。必要な場合は、IP ごと・ネットワークごとに 1 時間あたりの登録数を制限し、作動すると新規アカウントを確認待ちとして保留するサイト全体の 1 時間あたりの上限を設け、使い捨てメールアドレスをブロックし、見えないハニーポットを追加して、ウェルカムメールの送信を抑えます。WooCommerce ではチェックアウトを決してブロックせず、代わりに不審なアカウントを保留します。

手順

  1. 1手順 1

    ユーザー登録を公開しておく必要があるか確認する

    「設定 → 一般」で、メンバーシップの「だれでもユーザー登録ができるようにする」にチェックが入っているか確認します。WooCommerce では、顧客がマイアカウントページでアカウントを作成できるかを確認します。誰も必要としていないなら、オフにしてください。

    WordPress の「設定 → 一般」。メンバーシップの「だれでもユーザー登録ができるようにする」にチェックが入り、新規ユーザーのデフォルト権限グループが購読者になっている
  2. 2手順 2

    登録保護を監視モードでオンにする

    Hushfort で「登録保護」を開いてオンにし、「モード」を「記録のみ — 監視モード (登録をブロックしません)」に設定します。「見えないハニーポット」はオンのまま保存します。これで、実際に動作させる前にログを確認できます。

    登録保護がオンになり、「モード」が「記録のみ — 監視モード」に設定され、見えないハニーポットがオンになっている
  3. 3手順 3

    1 時間あたりの上限とサイト全体の上限を設定する

    IP ごと・ネットワークごとに 1 時間あたりの登録数を制限し、続いてサイト全体の「1 時間あたりの登録上限 (サイト全体)」を設定します。上限を超えるとサーキットブレーカーが作動し、新規アカウントを確認待ちとして保留します。

    IP ごとの登録数は 1 時間あたり 3、ネットワークごとは 1 時間あたり 10、サイト全体の 1 時間あたりの登録上限は 50
  4. 4手順 4

    大量登録が上限に達したときの動きを確認する

    登録数が 1 時間あたりの上限を超えると、新規アカウントは理由「サーキットブレーカー作動」とともに「保留中のアカウント」に入ります。本物のアカウントは承認し、残りは削除します。

    保留中のアカウント: 理由「サーキットブレーカー作動」で保留された 4 件の新規アカウントと、承認・削除ボタン
  5. 5手順 5

    すでに作成されたアカウントを整理する

    「クリーンアップウィザード」を使います。「1. プレビュー」を押すと注文・コメント・投稿のないアカウントが一覧表示されるので、続けて「2. バックアップして削除」を押します。削除したアカウントは 30 日間復元できます。

    クリーンアップウィザードのプレビュー: 66 件のアカウントが削除候補として、マスクされたメールアドレスと登録日とともに一覧表示されている

なぜ重要なのか

偽アカウントが少しあるだけなら無害です。しかし大量に押し寄せると話は別です。このレイヤーを作ったのは、あるサイトが 1 時間に約 10,000 件の登録リクエストを受け、最終的に数万件の偽アカウントを抱えたのがきっかけでした。別のサイトでは、偽アカウントに送られたウェルカムメールがメールの送信枠を使い果たし、本物の注文メールが送られなくなりました。

偽の登録は、目立たない形でもコストを生みます。肥大化したユーザーテーブル、遅くなる管理画面、汚れた顧客リストやメールのレポート、そして存在しないアドレスでウェルカムメールが不達になるたびに下がっていくメールサーバーの評価です。

よくある間違い

  • うっかり登録を公開したままにしている。 「だれでもユーザー登録ができるようにする」が、セットアップ中にオンにされたまま忘れられていることがあります。
  • デフォルトの権限グループが強すぎる。 新規ユーザーは購読者か顧客にすべきで、投稿者以上には決してしないでください。
  • IP ごとの上限しかない。 大量登録は、同じネットワーク内の多数のアドレスから来ることがよくあります。ネットワークごとにも制限してください。
  • 大量登録が来たら登録を停止する。 それでは本物の顧客を締め出すことになり、まさに攻撃者の思うつぼです。新規アカウントを保留中として扱えば、大量登録が過ぎ去るまで入口を開けたままにできます。
  • チェックアウトでブロックする。 ストアがスパムフィルターのせいで注文を失うことは、あってはなりません。
  • バックアップなしで削除する。 一括削除は元に戻せません。まずプレビューし、コピーを残してください。

プラグインを使わない方法

  1. 必要なければ 登録をオフにします: 「設定 → 一般」で「だれでもユーザー登録ができるようにする」のチェックを外します。WooCommerce の場合は「WooCommerce → 設定 → アカウントとプライバシー」で、マイアカウントページでのアカウント作成のチェックを外します。
  2. デフォルトの権限グループを低くしておきます: 「設定 → 一般 → 新規ユーザーのデフォルト権限グループ → 購読者」。
  3. 2 つの小さなフックで、WordPress のフォームに ハニーポットを追加します:
<?php
add_action( 'register_form', function () {
    echo '<p style="position:absolute;left:-9999px" aria-hidden="true">'
       . '<input type="text" name="hp_company" tabindex="-1" autocomplete="off"></p>';
} );
add_filter( 'registration_errors', function ( $errors ) {
    if ( ! empty( $_POST['hp_company'] ) ) {
        $errors->add( 'spam', 'Registration failed.' );
    }
    return $errors;
} );

これが対象とするのは WordPress コアのフォームだけで、WooCommerce やその他の登録フォームは含まれません。また、回数制限もサイト全体の上限もクリーンアップもありません。進行中の大量登録に対しては、これらの手順は役に立ちますが、止めることはできません。

うまくいかないときは

  • 本物の顧客が登録できない。 監視モードでログを確認し、オフィスやイベント会場のネットワークがネットワークごとの上限に達していないか確認してください。上限を引き上げるか、その IP を許可リストに追加します。
  • 保留中のアカウントがたまった。 7 日後に自動的に削除されます。それまでに本物のアカウントを承認してください。
  • 顧客にウェルカムメールが届かなかった。 サイト全体の上限によってサーキットブレーカーが作動した場合、保留されたアカウントには承認されるまでメールが送られません。これは意図した動作です。

Hushfort なら

登録保護は、無料の WordPress セキュリティプラグイン Hushfort Security に追加する有料アドオン Hushfort Pro の機能です。

Hushfort の 登録保護 は、WordPress と WooCommerce の登録に加え、その他の登録フォームにも対応します:

  • デフォルトで IP ごとに 1 時間あたり 3 件 (IPv6 は /64)、ネットワークごとに 1 時間あたり 10 件 (/24、IPv6 は /48)。
  • サイト全体で 1 時間あたり 50 件の上限と、60 分間作動し続けるサーキットブレーカー。デフォルトでは新規アカウントを保留中として作成し、メールは送信しません。代わりに登録を停止することも選べます。
  • 使い捨てメールアドレスのブロックと、Gmail の変形アドレス (ドット、+タグ、googlemail) の検出。
  • WordPress と WooCommerce の登録フォームに見えないハニーポット。
  • ウェルカムメールの送信抑制。偽の登録でメールの送信枠を使い果たすことはありません。
  • プレビューと、30 日間復元できるバックアップ付きのクリーンアップウィザード。
  • 保留中のアカウントは 7 日後に自動的に削除。

チェックアウトは決してブロックされません。まず監視モードで動かして、実際に動作させる前に効果を確認することもできます。

よくある質問

なぜこんなに偽のユーザー登録が来るのですか?

ボットがアカウントを登録するのは、スパムを投稿するため、盗んだメールアドレスのリストを試すため、あるいはウェルカムメールを悪用してあなたのサーバーからメールを送らせるためです。公開された登録フォームは、自動化された攻撃の格好の標的です。

WordPress の偽ユーザーを一括削除するには?

「ユーザー」で権限グループで絞り込み、登録日で並べ替えてから一括削除します。先にバックアップを取ってください。Hushfort のクリーンアップウィザードは一覧をプレビューし、30 日間復元できるバックアップを残します。

登録数を制限すると、本物の WooCommerce の顧客までブロックされませんか?

チェックアウトではブロックされません。Hushfort はチェックアウトを決してブロックせず、決済中に作成された不審なアカウントは確認待ちとして保留され、注文はそのまま通ります。

Gmail の変形アドレスとは何ですか?

Gmail はドットとプラス記号以降の文字を無視し、googlemail.com も同じメールボックスです。ボットは [email protected] のようなアドレスを使い、ひとつの受信箱で多数のアカウントを作成します。

登録フォームに CAPTCHA を追加すべきですか?

追加することはできますが、本物の顧客にとっては手間が増えます。ハニーポット、1 時間あたりの上限、サイト全体の上限なら、大量登録を目に見えない形で止められます。

不具合の報告・機能のリクエスト

メッセージは Hushfort の開発チームに直接届きます。

内容の種類

返信にのみ使用します。

これらの情報は返信のためだけに使用します。 プライバシー