オンラインサイトにおける不正注文は、ボットや悪意あるユーザーが行う正当でない注文を意味します。不正注文は、データベースを混乱させる原因となり、修正に手間がかかり、チャージバックによる金銭的損失にもつながります。また不正アカウント登録とは異なり、不正注文は売上や運営に直接影響を与えます。

不正注文の発生原因は、多くの場合、会員登録なしでの決済、ボット保護の欠如、不十分なバリデーションなどのセキュリティ設定にあります。

WordPressの人気ECプラグイン、WooCommerceには、不正注文に対する機能が組み込まれていないため、別途対策を講じる必要があります。この記事では、WooCommerceサイトで不正注文の発生を阻止する方法をご紹介します。

1. Cloudflareを設定する(セキュリティ強化の第一歩)

WooCommerceサイトの不正注文を阻止するには、Cloudflareが最も効果的です。

CAPTCHA、スパム対策プラグイン、詐欺防止ツールなどのソリューションは、ボットがストアとやり取りした後にスパムをフィルタリングすることで機能しますが、Cloudflareの場合は、悪質なトラフィックをエッジでブロックして、ボットがストアの決済ページやアカウント登録ページに到達するのを防いでくれます。

Cloudflareは単なるコンテンツデリバリネットワーク(CDN)ではなく、オールインワンのセキュリティソリューションです。ボット対策モード、ウェブアプリケーションファイアウォール(WAF)ルール、IP制限により、ECサイトの負荷を軽減し、リソースを保護して、不正注文の発生を防ぎます。

Kinstaを利用する場合も、別途Cloudflareアカウントの登録が必要?

Kinstaをご利用の場合は、標準提供のCloudflare統合により、エンタープライズレベルのセキュリティ機能を手にすることができますが、Cloudflareアカウントを別途登録することで、より制御しやすくなります。

組み込みのウェブアプリケーションファイアウォール(WAF)とボット保護は、Kinstaプラットフォーム全体のセキュリティルールを適用しますが、それとは別にCloudflareアカウントを持つことで、特定のWooCommerceサイトのセキュリティ設定を微調整することができます。

したがって、WooCommerceサイトを運営する場合は、以下のような目的のため、Kinstaでアカウント登録を行う前にCloudflareのアカウントを設定することをおすすめします。

  • 決済ページやアカウント登録ページにアクセスする不審な訪問者を防ぐため、独自のWAFルールを作成する
  • 国全体をブロックするか、ストアを運営している地域のみからのアクセスを許可する
  • トラフィックがサイトのコンテナに到達する前に、追加のボットフィルタリングを適用する

Cloudflareのアカウント設定は必須ではありません。必要に応じて、Kinstaのサポートチームがコンテナレベルで特定のボットやIPをブロックすることも可能です。より高度な制御と積極的なセキュリティ対策を望まれる場合は、Cloudflareアカウントの設定を検討してみてください。

WooCommerce不正注文対策のためのCloudflare設定方法

Cloudflareのアカウントを設定する場合、まずは無料のCloudflareアカウントを登録します。登録したら、ダッシュボードに移動しましょう。

右上の「+追加」をクリックして、「既存のドメイン」を選択します。「既存のドメインを入力」フィールドにWooCommerceサイトのドメインを入力してください。これにより、Cloudflareがトラフィックを管理し、サイトにセキュリティルールを適用できるようになります。

WooCommerceサイトのドメインをCloudflareに追加して、セキュリティ機能を有効化
WooCommerceサイトのドメインをCloudflareに追加して、セキュリティ機能を有効化

ドメインの入力後、プランを選択します。ほとんどのWooCommerceサイトには、ボットファイトモード、基本的なDDoS攻撃対策、セキュリティルールが含まれる無料(Free)プランで十分です。Freeプランの「プランを選択」をクリックして続行します。

基本的なセキュリティ機能とボット保護を利用するには無料プランを選択
基本的なセキュリティ機能とボット保護を利用するには無料プランを選択

続いて、DNSレコードを確認します。既存のサーバーから引き出されたレコードの一覧を確認し、プライマリドメインとサブドメインが正しくリストアップされていることを確認してください。「アクティベーションに進む」をクリックします。

CloudflareでDNSレコードを確認
CloudflareでDNSレコードを確認

その後、Cloudflareによってネームサーバーが提供されます。Cloudflareのセキュリティ機能を有効にするには、ドメインレジストラでドメインのネームサーバーを更新する必要があります。

ネームサーバーの更新後、Cloudflareに戻り、「完了しました、ネームサーバーをチェックしてください」をクリックします。この検証には数分かかる場合があります。サイトがCloudflareで有効化されたら、ボット保護ルールを設定することができます。

ボットファイトモードで悪質なボットをブロックする方法

Cloudflareのセキュリティ機能の1つにボットファイトモードがあり、有効にすると既知の悪質なボットがストアに到達する前にブロックされます。

これを有効にするには、Cloudflareダッシュボードの「セキュリティ」>「ボット」に移動して、「ボット ファイト モード」のトグルスイッチをオンするだけでOKです。

ボットファイトモードを有効にして悪質なボットをブロック
ボットファイトモードを有効にして悪質なボットをブロック

これにより、ボットが決済ページやアカウント登録ページに到達するのを防ぎ、自動化されている不正注文を即座に削減することができます。

ボットファイトモードに加えて、「AIボットをブロック」もオンにすることをおすすめします。WooCommerceサイトの不正注文対策に必須というわけではありませんが、AIボットが積極的にサイトをスクレイピングすることによって発生する負荷の増加を防ぐことができます。このボットは大量のキャッシュされていないリクエストを送信し、サイトの速度を低下させることがあります。「AIボットをブロック」をオンにすることで、不審なトラフィックを減らし、サーバーへの不要な負荷を防ぎ、WooCommerceストアをよりスムーズに運営することができます。

WooCommerce不正注文対策に独自のWAFルールを作成する方法

CloudflareのWAFには、ボットトラフィックがWooCommerceストアに到達する前にフィルタリングするルールを設定できます。主要なページで疑わしい訪問者へのルール、そして特定の国からのトラフィックをブロックするルールが効果的です。

決済ページとアカウント登録ページのセキュリティ強化のため、URIパスURLクエリー文字列の両方をターゲットにする必要があります。Cloudflareダッシュボードの「セキュリティ」>「WAF」で、「WooCommerceスパム対策」のような識別しやすい名前のルールを作成します。「フィールド」では、「URI パス」に/checkout//my-account/、「URL クエリー文字列」にwc-ajax=checkoutが含まれるように設定します(以下参照)。「アクションを選択する」ドロップダウンで「マネージドチャレンジ」(不審なユーザーは続行する前に人間であることを確認する)を選びます。

WooCommerceサイトの決済ページを保護するWAFルールを作成
WooCommerceサイトの決済ページを保護するWAFルールを作成

国単位のブロックをするには、同様のページで別のルールを作成し、「フィールド」で「」を選択して、「次と等しくない」オペレーターでJapanを値に選択すると、日本以外の場所からの訪問者がブロックされ、日本にいるユーザーのみがアクセスできるようになります。

Cloudflare WAF設定で日本以外の国をブロック
Cloudflare WAF設定で日本以外の国をブロック

カスタムルールの設定は、顧客のアクセスを許可しながら、リスクの高い地域からの自動スパムボットと不正注文の両方を防ぐのに役立ちます。

設定を終えたら、画面下部の「デプロイ」をクリックして完了です。これにより、正当な顧客の通過を許可しながら、Cloudflareが自動スパムボットをブロックします。

Cloudflareは、最高クラスの保護レイヤーを提供してくれますが、サイトレベルで追加のフィルタリングが必要な可能性もあります。プラグインは、WooCommerce自体のデータを分析する必要がある場合に便利です。

  • 注文をブロックする前に顧客情報を確認
  • メールドメインやIP履歴に基づくスパム登録のフィルタリング
  • ボット保護をすり抜ける不正注文のブロック

Kinstaでは、できる限りCloudflareの使用を推奨していますが、Cloudflareだけでは不十分な場合、またはWordPressで直接フィルタリングを処理したい方のために、WooCommerceサイトの不正注文を防ぐその他の対策もご紹介します。

2. 決済ページとアカウント登録フォームにCAPTCHAを追加する

不正注文をブロックする簡単かつ効果的な方法として、WooCommerceサイトの主要なフォームにCAPTCHAを追加できます。

CAPTCHA(キャプチャ)とは、「Completely Automated Public Turing test to tell Computers and Humans Apart」(日本語訳:コンピュータと人間を見分ける完全自動型の公開チューリングテスト)の略であり、ボットやスパム業者からのアクセスを阻止するセキュリティ機能です。画像の選択や、ボックスのチェック、歪んで表示されるテキストの入力など、ボットには理解が困難で人間には簡単なタスクをユーザーに課します。おそらく以下のようなウィンドウには、一度は遭遇したことがあるでしょう。

CAPTCHAを使ってボットによる不正注文を防ぐ(出典:Arstechnica.com)
CAPTCHAを使ってボットによる不正注文を防ぐ(出典:Arstechnica.com

CAPTCHAは自動ボットによる不正注文を防ぐと同時に、本物の顧客が手間なく購入を完了できるようにします。

効果的な対策として、以下のフォームにCAPTCHAを追加しましょう。

  • 決済フォーム:不正注文を行うボットを防ぐ
  • アカウント登録フォーム:不正な顧客アカウントが作成されるのを防ぐ
  • ログインフォーム:ボットがアカウントにアクセスしようとするブルートフォース攻撃を阻止

WooCommerceサイトにCAPTCHAを簡単に統合できるプラグインはいくつかありますが、Simple Cloudflare Turnstile、またはAdvanced Google reCAPTCHAのどちらかがおすすめです。以下、両方の使用手順をご紹介します。

選択肢1. Simple Cloudflare Turnstile

CAPTCHAの導入にCloudflare Turnstileを設定
CAPTCHAの導入にCloudflare Turnstileを設定

Cloudflare Turnstileは、Google reCAPTCHAに代わるプライバシーに配慮したCAPTCHAです。パズルを解くことなくユーザーを自動的に認証し、決済プロセスをよりスムーズにします。

WordPressサイトでCloudflare Turnstileを使用するには、Cloudflareのウェブサイトに移動し、アカウント登録またはログインしてダッシュボードを開きます。ダッシュボードで、「Turnstile」を見つけます。初めて使用する場合は、「ウィジェットを追加」をクリックしてください。

WooCommerceサイトにCloudflare Turnstileウィジェットを追加
WooCommerceサイトにCloudflare Turnstileウィジェットを追加

識別できるようウィジェットに名前をつけて(「WooCommerce決済ページCAPTCHA」など)、「ホスト名の追加」をクリックしてサイトを追加します。

Cloudflare Turnstileウィジェットに名前を付けてドメインを追加
Cloudflare Turnstileウィジェットに名前を付けてドメインを追加

その後、下にスクロールして「ウィジェット モード」で「管理対象」を選択し、「作成」をクリックします。

Cloudflare Turnstileのウィジェットモードで「管理対象」を選択
Cloudflare Turnstileのウィジェットモードで「管理対象」を選択

ウィジェットを作成すると、APIキーが生成されます。サイトキーとシークレットキーの両方をコピーしてください。

WordPressにCloudflare TurnstileのCAPTCHAを追加するプラグインは複数ありますが、無料のSimple Cloudflare Turnstileをおすすめします。

WordPress管理画面で「プラグイン」>「新規プラグインを追加」を開き、「Simple Cloudflare Turnstile」で検索して、プラグインをインストール・有効化します。

Simple Cloudflare Turnstileプラグインをインストール
Simple Cloudflare Turnstileプラグインをインストール

プラグインを有効化したら、「設定」>「Cloudflare Turnstile」に移動して、先ほどコピーしたサイトキーシークレットキーをそれぞれのフィールドに貼り付けます。

WordPress管理画面でCloudflare Turnstileプラグインを設定
WordPress管理画面でCloudflare Turnstileプラグインを設定

下にスクロールして、Turnstile CAPTCHAを有効にするフォームを選択します。以下のように、「WooCommerce ログイン」「WooCommerce 登録」「WooCommerce 購入手続き」を選択します。

Cloudflare Turnstile CAPTCHAを有効にするWooCommerceのフォームを選択
Cloudflare Turnstile CAPTCHAを有効にするWooCommerceのフォームを選択

選択後、「変更を保存」をクリックして完了です。WooCommerceの決済ページを開くと、CAPTCHAが表示されるようになります。

選択肢2. Advanced Google reCAPTCHA

WooCommerceのセキュリティ強化にGoogle reCAPTCHAを設定
WooCommerceのセキュリティ強化にGoogle reCAPTCHAを設定

Google reCAPTCHAも広く使用されているスパム対策ツールの1つです。reCAPTCHA v2(チェックボックス認証)とreCAPTCHA v3(バックグラウンド認証)があります。

Google reCAPTCHAを使用するには、GoogleにログインしてreCAPTCHAの製品ページに移動し、「使ってみる」をクリックします。表示されるページでCAPTCHAを識別するためのラベルを入力し、タイプを選択します。今回は例として、reCAPTCHAタイプに「チャレンジ(v2)」を選択して、「
私はロボットではありません』チェックボックス」を設定します。

reCAPTCHA v2と「私はロボットではありません」を選択する例
reCAPTCHA v2と「私はロボットではありません」を選択する例

reCAPTCHAタイプを選択したら、サイトのドメインを入力します(例:example.com)。最後に「送信」をクリックして、生成されたサイトキーシークレットキーをコピーしてください。

WordPress管理画面に戻り、「プラグイン」>「新規プラグインを追加」で「Advanced Google reCAPTCHA」を検索して見つけ、インストール・有効化します。

Advanced Google reCAPTCHAプラグインをインストール
Advanced Google reCAPTCHAプラグインをインストール

有効化したら、「設定」>「Advanced Google reCAPTCHA」に移動します。「Captcha」を選択して、先ほどのサイトキーシークレットキーをそれぞれのフィールド(「Captcha Site Key」および「Captcha Secret Key」)に貼り付けます。

WordPress管理画面でAdvanced Google reCAPTCHAを設定
WordPress管理画面でAdvanced Google reCAPTCHAを設定

CAPTCHAの表示方法を選択したら、「Where To Show(表示先)」タブに切り替えます。この画面で「WooCommerce Registration Form(アカウント登録フォーム)」と「WooCommerce Checkout Form(決済フォーム)」の両方をオンにしましょう。「変更内容を保存」をクリックして完了です。

WooCommerce決済フォームとアカウント登録フォームにGoogle reCAPTCHAを導入
WooCommerce決済フォームとアカウント登録フォームにGoogle reCAPTCHAを導入

設定を保存したら、ストアの決済ページを開いて、CAPTCHAが機能していることを確認しましょう。「私はロボットではありません」チェックボックスが表示されればOKです。

3. スパム対策プラグインを使用する

CAPTCHAはボットによる不正注文を防ぐのに役立ちますが、特に巧妙なスパムの手口に対処するには、不十分である可能性があります。したがって、スパム対策プラグインのインストールも検討してみてください。迷惑メールを自動的にフィルタリングし、疑わしいIPアドレスをブロックして、WooCommerceのデータベースに届く前に不正注文のパターンを検出することができます。

WooCommerceにはスパム対策機能は組み込まれていないため、専用のプラグインを使用することで、顧客との摩擦を増やすことなくスパムを大幅に削減することができます。

WooCommerceサイトには、CleanTalk Spam ProtectとAkismetの2つがおすすめです。今回は、WooCommerceの不正注文対策に特化した前者のインストールおよび設定方法をご紹介します。

CleanTalk Spam Protectの設定方法

CleanTalk Spam Protectは、不正注文をフィルタリングし、偽アカウントをブロックして、ボットによるアカウント登録を防ぐ有料スパム対策プラグインです。バックグラウンドで動作し、注文やフォーム送信をスパムデータベースと照合します。

利用するには、WordPress管理画面で「プラグイン」>「新規プラグインを追加」に開いて、「CleanTalk Spam Protect」を検索して見つけて、インストール・有効化します。

CleanTalk Spam Protectプラグインをインストール、有効化
CleanTalk Spam Protectプラグインをインストール、有効化

有効化後、「設定」>「CleanTalk Spam Protect」に移動すると、アクセスキーの入力を求められます。このプラグインは有料のため、CleanTalkのウェブサイトでアカウントを作成して、プランを契約する必要があります。

アカウントの登録後、提示されたアクセスキーをコピーして、「アクセスキー」に貼り付けます。

CleanTalk Spam Protectのアクセスキーを入力
CleanTalk Spam Protectのアクセスキーを入力

キーを入力したら、「高度な設定」をクリックして、「WooCommerce」セクションまで下にスクロールし、「WooCommerce checkout form(決済フォーム)」を「On」にします。

CleanTalk Spam Protectの設定
CleanTalk Spam Protectの設定

画面下部の「変更を保存」をクリックして完了です。これで、WooCommerceストアで不正注文や偽のアカウント登録を防ぐことができます。

4. 会員登録なしの購入を無効にする

先に触れたとおり、会員登録なしの決済がデフォルトで有効になっていることもWooCommerceで不正注文が発生する原因の1つです。

買い物客がアカウント登録なしで商品を購入できるようにすることで、決済プロセスを高速化することができ、ユーザー体験の改善につながりますが、同時にボットや悪意あるユーザーが制限なく注文を送信できるようになります。

会員登録なしの購入を無効にすると、買い物客は商品購入前にストアでアカウントを作成しなければなりません。特にCAPTCHAやメール認証と組み合わせると、ボットが登録に必要なフィールドを完了させるのが困難になるため、このシンプルな操作が強力なセキュリティ対策になります。

ただし、会員登録なしの購入を無効にする前に、それが収益に与える影響を考慮することも重要です。中にはスムーズな買い物体験を望むユーザーもいるため、アカウント作成が必要となると、決済に至らずにサイトを離脱してしまう可能性もあります。リピート顧客よりも一度しか商品を購入しない買い物客が多い場合は、会員登録なしの購入を無効化せず、他のセキュリティ対策導入を検討した良いかもしれません。

会員登録なしの購入を無効にするには、WordPress管理画面で「WooCommerce」>「設定」に移動します。「アカウントとプライバシー」タブを開いて、「ゲストの購入手続きを有効化」のチェックを外します。

不正注文を防ぐためにWooCommerceでゲスト購入を無効化
不正注文を防ぐためにWooCommerceでゲスト購入を無効化

最後に「変更を保存」をクリックして完了です。

5. 不正防止プラグインを使用する

CAPTCHAやスパム対策を行っても、不正な取引が生じることがあります。例えば、盗まれたクレジットカード、偽の顧客情報、大量に生成された注文を使用してWooCommerceサイトを悪用するユーザーは存在します。

これに関しては、不正防止プラグインを使用することで、疑わしい取引を完了前にブロックすることができます。

このプラグインは、IPアドレス、メールドメイン、請求情報、特殊な注文行動など、様々なリスク要因を分析し、危険と判断した場合は注文をブロックしたり、確認のために保留にしたり、ECサイト管理者に通知を送信したりします。

WooCommerceサイトにおすすめなのは、Fraud Prevention For WooCommerce and EDD(旧Woo Blocker Lite)です。以下、設定方法をご紹介します。

Fraud Prevention for WooCommerceの設定方法

Fraud Prevention For WooCommerce and EDDは、不正注文や正当でない取引を防止するために設計された、軽量かつ強力なプラグインです。独自のルールを作成して、ブラックリストに登録されたユーザー情報を確認し、不正注文のレポートを作成することができます。

インストールするには、WordPress管理画面で「プラグイン」>「新規プラグインを追加」に移動して、「Fraud Prevention For WooCommerce and EDD」を検索して、インストール・有効化します。

Fraud Prevention for WooCommerceプラグインをインストール
Fraud Prevention for WooCommerceプラグインをインストール

有効化にすると、プラグインの使用方法や機能を紹介する解説動画が表示されます。確認後、「Dotstore Plugins」>「Fraud Prevention」に移動して、ストアの不正検知設定を行います。

Fraud Preventionプラグインの設定を行なって不審な注文をブロック
Fraud Preventionプラグインの設定を行なって不審な注文をブロック

Blacklist Settings(ブロックリストの設定)」タブでアカウント登録時、決済時、またはその両方で不正なユーザーをブロックするかどうかを設定します。

Fraud Preventionのブラックリストルールを設定
Fraud Preventionのブラックリストルールを設定

メールアドレス、IPアドレス、国、または郵便番号に基づいて、特定のユーザーを手動でブラックリストに登録することも可能です。特定の送信元から不正な行為が繰り返されていることを検出した場合は、これにより今後の不正注文を防ぐことができます。

不審なユーザーを手動でブラックリストに追加
不審なユーザーを手動でブラックリストに追加

さらにこのプラグインは、疑わしい活動を監視し、ブロックされた注文を追跡できる詳細なレポートも提供してくれます。不正取引のパターンを素早く特定し、WooCommerceサイトの安全性を確保するための対策を講じるのに非常に有用です。

Fraud Preventionの便利なレポート機能
Fraud Preventionの便利なレポート機能

必要な設定を終えたら、「Save Changes」をクリックして完了です。これで一般的な詐欺や不正注文からストアを保護することができます。

まとめ

WooCommerceの不正注文は深刻な問題ですが、適切なセキュリティ対策を講じることで、ストアを安全に保つことができます。

Kinstaは、24時間年中無休体制のカスタマーサポート、3分ごとのサイト監視、マルウェアスキャン、エンタープライズレベルのCloudflare統合により、不正注文や不審な行動をストアに到達する前にブロックします。WooCommerceに特化したWordPress専用マネージドクラウドサーバーで、WooCommerceサイトの速度を最大200%改善し、スムーズで安全なトランザクションを確保することができます。

サーバーまわりの問題にお困りの方や、サーバーの移行を検討中の方は、Kinstaをぜひ一度お試しください

Joel Olawanle Kinsta

Kinstaでテクニカルエディターとして働くフロントエンド開発者。オープンソースをこよなく愛する講師でもあり、JavaScriptとそのフレームワークを中心に200件以上の技術記事を執筆している。