WooCommerceの脆弱性とセキュリティ対策を網羅的に解説

WooCommerceのセキュリティ対策

WooCommerceを使ってオンラインショップを開設しようとしているあなた。

HARU

セキュリティ面で不安を感じていませんか?

ECサイトは顧客情報や決済データを扱うため、サイバー攻撃や情報漏洩のリスクが高いです。

これらのリスクに対する対策をしっかり考えてから導入したいと思っていることでしょう。

もしセキュリティが不十分な状態でサイトを公開し、ハッキングなどの攻撃を受けた場合、ビジネスの信頼性は大きく失われ、法的な責任も問われる可能性があります。

あなたの大切なオンラインショップを守るためには、最初からガチガチなセキュリティを整えることが不可欠です。

このブログを読むことで、WooCommerceを安全に導入するための具体的なセキュリティ対策を学べます。

画像付きで詳しく手順を解説しているので、操作が不安の方も安心してセキュリティ対策に取り組めます

今すぐこの記事を読んで、セキュリティ対策を万全にしましょう。

目次

WooCommerceのセキュリティ機能と脆弱性

WooCommerceのセキュリティ機能と脆弱性

WooCommerceは、世界中で利用されている人気のECサイト運営プラグインです。

強力なセキュリティ機能が備えており、顧客情報や取引データを保護するための仕組みが備わっています。

他のCMSと比較してセキュリティが弱いというわけではありませんが、オープンソースなため狙われやすいという欠点があります。

そのため、WordPressやサーバー全体のセキュリティ対策が重要であり、リスクに対処するためには適切なセキュリティ対策を組み合わせることが不可欠です。

まずは、WooCommerceのセキュリティ機能と脆弱性について理解しておきましょう。

1.WooCommerceのプラグインに備わる2つの安心セキュリティ機能

1-1.クレジットカード情報の保存なし

WooCommerceでは、顧客のクレジットカード情報を自社サーバーに保存せず、「外部の決済サービス」に管理を任せています。

この仕組みにより、カード情報が漏洩するリスクを大幅に軽減しています。

WooCommerce対応の決済サービス
  • Stripe
    トークン化技術を採用し、カード情報を安全に処理
  • PayPal
    クレジットカード番号を入力せずに決済が可能
  • Square
    PCI DSS準拠の仕組みでカード情報を直接保存せず安全を確保

1-2.迅速なアップデート対応

WooCommerceは、脆弱性が発見されるとすぐに修正パッチが提供されます。

定期的な更新により、最新のセキュリティ状態を維持できます。

2.WooCommerceの脆弱性

WooCommerceは、いくつかの脆弱性も存在します。

これらの脆弱性が悪用されると、サイトや顧客データが危険にさらされます。

以下、主な脆弱性とその影響を簡潔に説明します。

2-1.WordPress不正ログインリスク

攻撃者がWordPressの管理画面に不正にアクセスし、サイトの管理権限を奪うことです。

簡単なパスワードやログイン試行制限がない場合、リスクが高まります。

不正ログインの影響
  • サイトの管理権限を奪われる。
  • 顧客情報や取引データが盗まれる。
  • 悪意のあるコードやマルウェアを挿入される可能性。

2-2.サーバー不正ログインリスク

サーバー管理パネルに不正アクセスされることです。

サーバー管理の資格情報が盗まれることで、サイトのデータや設定にアクセスされます。

不正アクセスの影響
  • サーバー内の全データが改ざんされる。
  • サイトが乗っ取られる。
  • サーバーに不正なアクセスの入り口が設置され、継続的に攻撃されるリスク。

2-3.キャッシュ問題

WooCommerceのカートやチェックアウトページなど、動的なデータがキャッシュされることによる設定ミスです。

キャッシュ設定ミスの影響
  • 他のユーザーのカート内容や情報が表示される。
  • 最新の在庫状況や価格が反映されない。

2-4.非SSL化

SSL証明書を適用しない場合、顧客情報が暗号化されず、盗聴されるリスクがあります。

非SSL化の影響
  • 顧客情報や取引データが盗まれる可能性。
  • ブラウザに『安全ではありません』と警告が表示され、信頼性が下がる可能性。

WooCommerceサイトのWordPress不正アクセス対策

WooCommerceサイトのWordPress不正アクセス対策

WooCommerceは強力なECサイト構築プラグインですが、セキュリティの一部はWordPressやサーバー環境に依存しています。

そのため、WooCommerceを安全に運用するには追加の設定や対策が必要です。

WordPressの不正アクセス防止策について、必要となる具体的な対策と手順を詳しく解説します。

1.セキュリティプラグインの導入

WooCommerceサイトを安全に運営するには、セキュリティプラグインの導入が必須です。

不正アクセスやマルウェアなどの脅威を防ぐために、非常に効果的な手段です。

中でも「Wordfence Security」が最もおすすめです。

WooCommerceとの相性が良く、不正アクセスやマルウェアへの対策に優れています。

また、無料版でも高いセキュリティ機能が備わっており、基本的な防御をしっかりカバーできます。

他にもいくつかの選択肢がありますので、それぞれの特徴を以下で比較しながら紹介します。

無料版

プラグイン名マルウェアスキャンログイン試行回数制限2段階認証対応WAFreCAPTCHA
Wordfence Security
Solid Security
Sucuri Security
All In One WP Security & Firewall

※〇:対応 △:一部対応 ー:非対応

有料版

プラグイン名マルウェアスキャンログイン試行回数制限2段階認証対応WAFreCAPTCHA
Wordfence Security
Solid Security
Sucuri Security
All In One WP Security & Firewall

※〇:対応 △:一部対応 ー:非対応

1-1.Wordfence Securityの導入手順

①WordPressにログインします。

②ダッシュボードの「プラグイン」>「新規プラグインを追加」をクリックします。

Wordfence Securityの導入手順1

③画面右のプラグイン検索窓に「Wordfence」を入力します。

Wordfence Securityの導入手順2

④「今すぐインストール」をクリックします。

Wordfence Securityの導入手順3

⑤「有効化」をクリックします。

Wordfence Securityの導入手順4

⑥「WORDFENCEライセンスを入手」をクリックします。

使用するためにはライセンスを取得する必要あり、無料で取得できます。

Wordfence Securityの導入手順5

⑦「Get a Free License」をクリックします。

Wordfence Securityの導入手順6

⑧「I’m OK waiting 30 days for protection from new threats」をクリックします。

無料で利用するためにはこちらを選択。

Wordfence Securityの導入手順7

⑨以下の内容を入力してください。

  • メールアドレスの入力
  • セキュリティアラートの通知「YES」を選択
  • 利用規約を確認しチェックボックスにチェックを入れる
  • Register」をクリック
Wordfence Securityの導入手順8

⑩「メールを確認してください」の表示が出ます。

Wordfence Securityの導入手順9

⑪先ほど登録したメールを確認し、画面をスクロールして、「Install My License Automatically」をクリックします。

メールを開く際は、WordPressと同じブラウザで開かないとエラーが出ます。

Wordfence Securityの導入手順10

⑫「ライセンスインストール」をクリックします。

Wordfence Securityの導入手順11

⑬インストールが完了しました。

「ダッシュボードへ」をクリックしてください。

Wordfence Securityの導入手順12

⑭「自動更新を有効化」をクリックします。

自動更新を有効にしておくことで、最新のセキュリティパッチが迅速に適用され、サイトを守ることができます。

Wordfence Securityの導入手順13

2.ログインに2段階認証の導入

WordPressへの不正ログイン対策で最も効果が高いものが2段階認証です。

これは、WordPressにログインする際に、通常のログインIDとパスワードに加え、スマホに届く数値を入力しなければログインできないといった仕組みです。

これにより、ほぼ完全にWordPressへの不正ログインを防ぐことができます。

毎回2段階認証するのが面倒な場合、自分のIPアドレスのみ除外設定することもできます。

2-1.2段階認証のおすすめ設定方法

WordPressで2段階認証を導入するには、以下を組み合わせる方法がおすすめです。

  • Google Authenticatorアプリ
    (スマートフォン用)
    スマホにインストールして一時的な認証コードを生成します。
  • Wordfence Securityプラグイン
    (WordPress用)
    セキュリティ対策と2段階認証機能を提供する強力なプラグインです。

Wordfence Securityには2段階認証機能が組み込まれているため、Google Authenticatorプラグインを別途インストールする必要がありません

これにより、プラグインの数を減らして、サイトの管理をシンプルにできます。

2-2.Google Authenticato導入手順

①スマートフォンに「Google Authenticator」のアプリをインストールします。

ログインに2段階認証の導入1

②Wordfence Securityをインストールします。

Wordfence Securityのインストール手順はこちらのリンクから確認してください。

③WordPressのダッシュボードにログインします。

④Wordfence>ログインセキュリティをクリックします。

ログインに2段階認証の導入2

⑤「次へ」>「次へ」>「完了」をクリックします。

ログインに2段階認証の導入3
ログインに2段階認証の導入4
ログインに2段階認証の導入5

⑥画面を上にスクロールして、二段階認証をクリックします。

ログインに2段階認証の導入6

⑦リカバリーコードをダウンロードします。

スマホを紛失した際に備え、リカバリーファイルをダウンロードして保存しておきます。

ログインに2段階認証の導入7

⑧スマートフォンにインストールしたアプリの「Google Authenticator」を開き、「+」ボタンをクリックします。

ログインに2段階認証の導入8

⑨「QRコードスキャン」をタップするとカメラに切り替わるので、パソコン画面のQRコードを読み込みます。

ログインに2段階認証の導入9

⑩アプリに表示される6桁のコードをWordfenceの設定画面に入力し、連携を完了します。

ログインに2段階認証の導入10
ログインに2段階認証の導入11

2-3.2段階認証のログイン手順

①WordPressにログインします。

ログインに2段階認証の導入12

②2段階認証の画面になります。

ログインに2段階認証の導入13

③スマホアプリの「Google Authenticator」を開き、表示された6桁のコードを確認し、WordPressの認証画面に入力します。

ログインに2段階認証の導入124

④ログインが完了しました。

2-4.自分のIPアドレスのみ2段階認証を省略する

①WordPressのダッシュボードにログインします。

②「Wordfence」>「ログインセキュリティ」をクリックします。

ログインに2段階認証の導入15

③設定をクリックします。

ログインに2段階認証の導入16

④画面をスクロールして「一般」の項目に、除外したい自分のIPアドレスを入力します。

ログインに2段階認証の導入17

⑤自分のIPアドレスを調べます。

こちらのサイトから調べることができます。

⑥IPアドレスの入力が完了したら、「を保存」をクリックします。

ログインに2段階認証の導入18

⑦完了です。

次回ログインから設定したIPアドレスのみ、2段階認証が省略できるようになりました。

3.強力なログインパスワードを設定

2段階認証がある場合でも、万が一の脆弱性やパスワード漏洩に備えて、強力なパスワードを設定しておくことが重要です。

WordPressのログインパスワードを強力なパスワードに変更しましょう。

短く単純なパスワードを避け、ランダムな文字列をしましょう。

3-1.WordPressのログインパスワード変更手順

①WordPressのダッシュボードにログインします。

②「ユーザー」>「プロフィール」をクリックします。

強力なログインパスワードを設定1

③画面を下にスクロールして、アカウント管理の項目にある「新しいパスワードを設定」をクリックします。

強力なログインパスワードを設定2

④パスワードを記録しておきます。

⑤画面を下にスクロールして「プロフィールを更新」をクリックします。

強力なログインパスワードを設定3

⑥パスワードの変更が完了しました。

4.自動プログラム対策

WordPressサイトを安全に運営するためには、不正ログインを試みる「自動プログラム」への対策が欠かせません。

2段階認証が設定されている場合でも、自動プログラム攻撃はサーバーに過度な負荷をかける可能性があり、サイト全体の動作に影響を及ぼすため、対策が重要です。

自動プログラム攻撃とは何か、そしてその対策として効果的なreCAPTCHA機能について解説し、設定方法を紹介します。

4-1.自動プログラム攻撃とは?

自動プログラム攻撃とは、人ではなくプログラムを使用して、ユーザー名やパスワードを自動的に何度も試行し、不正ログインを試みる攻撃です。

このような攻撃は短時間で大量の試行が可能で、セキュリティの弱いサイトが狙われやすい特徴があります。

4-2.WordfenceのreCAPTCHA機能が効果的な理由

WordfenceはWordPress用のセキュリティプラグインで、「reCAPTCHA機能」は自動プログラムによる不正ログインを防ぐための優れたツールです。

  • Google reCAPTCHAを活用
    GoogleのreCAPTCHA技術により、ログインフォームでアクセス者が「人間」か、「自動プログラム」かを判別します。
  • セキュリティ強化
    不正な自動プログラムがログインフォームを利用できなくなるため、攻撃や不正アクセスのリスクを大幅に低減します。

4-3.WordfenceのreCAPTCHA機能の設定手順

Google reCAPTCHA v3 Serviceにアクセスします。

②「v3 Admin Console」をクリックします。

自動プログラム対策1

③以下の項目を入力および選択して送信をクリックしてください。

  • ラベル>ドメイン名を入力
  • reCAPTCHA タイプ>スコアベース(v3)を選択
  • ドメイン>ドメイン名を入力
  • プロジェクト名>分かりやすい名前を入力(例:haru-art-design-recaptcha)

ドメイン名は”https//”を省略する必要があります。

自動プログラム対策2

④「サイトキー」と「シークレットキー」を、それぞれコピーします。

自動プログラム対策3

⑤ワードプレスのダッシュボードにログインします。

⑥Wordfence>ログインセキュリティをクリックします。

自動プログラム対策4

⑦画面を下にスクロールし、「reCAPTCHA」の項目にある、チェックボックスにチェックを入れ、「サイトキー」と「シークレットキー」をそれぞれペーストします。

自動プログラム対策5

⑧「を保存」をクリックして設定を保存します。

自動プログラム対策6

⑨WordPressからログアウトし、ログインページにアクセスします。

⑩ログインフォームにreCAPTCHAが表示されてることを確認します。

自動プログラム対策7

⑪設定が完了しました。

5.ログインIDを隠す

WordPressの「ブログ上の表示名」は、必ずニックネームに変更しておきましょう。

なぜなら、WordPressのテーマによっては、ブログやプロフィールページに「ユーザー名(ログインID)」がそのまま表示される場合があり、第三者にログインIDが知られてしまうリスクがあるからです。

このような状況では、不正アクセスのリスクが高まります。

WordPressにログインする際には、ログインIDとパスワードを入力しますよね。

ログインIDは「ユーザー名」と同じなので、ブログ上で公開されると、攻撃者がそのIDで不正アクセスを試みることが簡単になります。

だからこそ、ログインIDが第三者にバレないように、「ニックネーム」を設定し、「ブログ上の表示名」としてニックネームを設定するようにしましょう。

これにより、不正アクセスのリスクを低減できます。

5-1.ブログ上の表示名を変更する方法

①ワードプレスにログインします。

②「ユーザー」>「プロフィール」をクリックする

ログインIDを隠す1

③画面を下にスクロールし、ニックネームを入力し、ブログ上の表示名はニックネームを選択します。

ログインIDを隠す2

④「プロフィールを更新」をクリックします。

ログインIDを隠す3

⑤ブログ上の表示名が、ユーザー名(ログインID)からニックネームに変更することができました。

6.テーマとプラグインの改ざん防止

テーマとプラグインの改ざん防止1

WordPressの管理画面では、テーマやプラグインのコードを直接編集できる機能があります。

  • テーマファイルエディッタ
  • プラグインファイルエディタ

この機能を無効化することで、誤操作や不正アクセスによる改ざんを防ぐことができます。

この設定は、特に管理画面のセキュリティを強化したい場合に有効です。

6-1.設定手順

シンレンタルサーバーを例に設定手順を解説します。

シンレンタルサーバーにログインします。

テーマとプラグインの改ざん防止2

②ファイル管理をクリックします。

テーマとプラグインの改ざん防止3

③設定したいドメインを選びます。

テーマとプラグインの改ざん防止4

④「wp-config.php」>「編集」をクリックします。

パーミッション設定で「400」にしている場合は、「600」に変更してから編集してください。
変更後は「400」に戻しましょう。

テーマとプラグインの改ざん防止5

⑤以下のコードを「wp-config.php」ファイルに追加します。


define(‘DISALLOW_FILE_EDIT’, true);

追加する位置は”/* That’s all, stop editing! Happy publishing. */ ”の直前です。

テーマとプラグインの改ざん防止6

⑥WordPress管理画面からのテーマ・プラグインエディタが無効化されました。

⑦「ダッシュボード」>「外観」の「テーマエファイルディッタ」と、「プラグイン」の「プラグインファイルエディッタ」の表示が消えていれば成功です。

テーマとプラグインの改ざん防止7

7.更新頻度が高く信頼性のあるテーマを使う

WooCommerceにおすすめの無料テーマは以下の記事でご紹介しています。

8.プラグインやテーマを必要最小限にする

プラグインやテーマは必要最小限にすることで、WooCommerceサイトのセキュリティを強化し、パフォーマンスを向上させることができます。

プラグインやテーマを多く使いすぎると、次のようなリスクが発生します。

  • セキュリティホールが発見されることがあり、更新を怠ると攻撃者に悪用される可能性がある。
  • プラグイン同士が干渉してエラーや予期しない挙動を引き起こすことがある。
  • 不必要なプラグインがサイトの読み込み速度を遅くする原因になる。

例えば、複数のキャッシュ系プラグインやセキュリティ系プラグインを導入している場合、機能が重複し、サイト全体の挙動が不安定になることがあります。

また、使用していないプラグインやテーマを放置すると、アップデートが行われず、セキュリティリスクが増大します。

そのため、WooCommerceサイトを安全かつ快適に運営するためには、必要なプラグインとテーマだけを厳選して使用し、不要なプラグインやテーマはアンインストールすることが重要です。

9.定期的にアップデートする

セキュリティ対策を行う上で、WordPress本体、テーマ、プラグインを定期的にアップデートすることは非常に重要です。

アップデートには「自動更新」と「手動更新」の2種類があり、それぞれにメリットとデメリットがあります。

これらを正しく理解し、自動更新と手動更新を適切に切り分けて設定しておきましょう。

9-1.アップデートの種類

WordPressのアップデートは、以下の3つに分類されます。それぞれの特徴を理解しておきましょう。

  1. メジャーアップデート
    • : 6.0 → 7.0
    • 内容: 新機能の追加や大規模な仕様変更を伴います。プラグインやテーマとの互換性に影響を与えるリスクが高いため、慎重な対応が必要です。
  2. マイナーアップデート
    • : 6.1 → 6.2
    • 内容: 小規模な機能の改善や追加が行われます。後方互換性が保たれることが一般的ですが、場合によってはバグや互換性問題が発生することがあります。
  3. パッチアップデート
    • : 6.10 → 6.11
    • 内容: セキュリティ修正やバグ修正を目的とした更新です。リスクが低いため、迅速な適用が推奨されます。

9-2.自動更新のメリット・デメリット

以下のように自動更新にはメリットとデメリットがあるので、適切に使い分ける事が必要です。

メリット
  • アップデートが迅速に適用される
  • 更新を忘れる心配がない
  • 手動更新の手間を省ける
メリット
  • プラグインやテーマとの相性問題によりバグが発生するリスクがある
  • メジャーアップデートやマイナーアップデートでは、サイト全体の動作に影響を与える可能性がある

9-3.WordPress本体の更新

WordPress本体のアップデートは、基本的に手動更新を推奨します。

特に、メジャーアップデートやマイナーアップデートでは、プラグインやテーマとの互換性問題が発生しやすいため、テスト環境で事前確認を行うことが必要です。

WordPressの自動更新設定や「Easy Updates Manager」などのプラグインでは、パッチアップデートのみを自動で適用する設定はできません

そのため、以下の方法で手動管理を行うことを推奨します

手動更新の方法

自動更新を完全に無効化するには、「wp-config.php」ファイルに以下のコードを追加します。

define(‘AUTOMATIC_UPDATER_DISABLED’, true);

追加する位置は、”/* That’s all, stop editing! Happy publishing. */”コードの直前になります。

定期的にアップデートする1

9-4.テーマの更新

WooCommerce専用のテーマ(例: OceanWP)やWordPress標準テーマ(例: Twenty Twenty-Five)は、自動更新を有効化して問題ありません。

これらのテーマはセキュリティ修正やバグ修正が頻繁に行われ、最新の状態を保つことで脆弱性リスクを軽減できるためです。

ただし、テーマにカスタマイズを加えている場合は、子テーマを使用し、自動更新の影響を避けることが推奨されます。

また、バックアップや事前テストを行うことで、更新時の不具合リスクを最小限に抑えることが可能です。

使用していないテーマは削除するか、自動更新を有効にしておきましょう。

9-5.プラグインの更新

プラグインの更新は種類や役割に応じて、自動更新手動更新を使い分けることが重要です。

  • 自動更新を推奨するプラグイン
    セキュリティプラグイン(例: Wordfence)は、脆弱性修正が迅速に反映されるため、自動更新を有効化します。
  • 手動更新を推奨するプラグイン
    決済プラグイン(例: PayPal、Stripe)や物流連携プラグインは、安定性が重要なため、手動更新で慎重に対応します。更新前にステージング環境でのテストが推奨されます。

10.WordfenceのWAF設定

WordfenceのWAF(Web Application Firewall)は、不正ログインや攻撃からサイトを守る重要な機能です。

Wordfenceファイアウォールを最適化して「拡張保護モード」を有効化することで、サイトのセキュリティを大幅に向上させることが可能です。

10-1.WAF導入のメリット・デメリット

デメリットはありますが、適切な設定で解消可能です。

セキュリティ強化のメリットが大きく、WooCommerceサイトにはWAF導入が必須です。

WAF導入メリット
  • ログインページをブルートフォース攻撃から守る
  • 顧客データや決済情報を保護
  • 攻撃ログを確認し、セキュリティの現状を可視化できる
WAF導入デメリット
  • サイトパフォーマンスの負荷
  • 誤検知のリスク

10-2.WAFの設定手順

①WordPressのダッシュボードにログインします。

②「Wordfence」>「ファイアウォール」をクリックします。

WordfenceのWAF設定1

③「WAF管理」をクリックします。

WordfenceのWAF設定2

④「Wordfence ファイアウォールの最適化」をクリックします。

WordfenceのWAF設定3

⑤「.HTACCESSをダウンロード」と「.USER.INIをダウンロード」をそれぞれクリックして、任意の場所に保存します。

WordfenceのWAF設定4

⑥「閉じる」をクリックします。

WordfenceのWAF設定5

⑦WAF設定が完了しました。

11.xmlrpc.phpの無効化

xmlrpc.phpは、WordPressがリモート通信を行うためのファイルで、主にトラックバックピンバックといった古い機能に利用されてきました。

しかし、現在これらの機能を使うサイトはほとんどなく、悪用されるリスクが高いため、無効化が推奨されます。

xmlrpc.phpは、不正アクセスや攻撃の入り口として狙われやすいポイントです。

このファイルを無効化することで、不要なリスクを排除し、WordPressサイトの安全性を向上させましょう。

無効化のメリット
  • 不正アクセスのリスクを軽減
  • サーバー負荷の軽減

11-1.トラックバックやピンバックとは?

  • トラックバック: 他のブログにリンクを貼ると、リンク先に「リンクされました」と通知を送る機能。手動で設定が必要。
  • ピンバック: 自動でリンク元とリンク先を検知し、通知を送る仕組み。WordPressが自動処理。

これらはかつてブログ同士の交流を促進するために使われていましたが、現在はほぼ不要で、むしろスパムや攻撃に悪用されることが多くなっています。

11-2.無効化の手順

シンレンタルサーバーを例にして無効化の手順を解説します。

レンタルサーバーにログインします

xmlrpc.phpの無効化1

②ファイル管理をクリックします。

xmlrpc.phpの無効化2

③無効化設定するドメインを選びます。

xmlrpc.phpの無効化3

④「public_html」をクリックします。

xmlrpc.phpの無効化4

⑤「.htaccess」>「編集」をクリックします。

xmlrpc.phpの無効化5

⑥以下のコードを「.htaccess」に追加します。

#xmlrpc.php無効
<Files xmlrpc.php>
Order deny,allow
Deny from all
</Files>

追加する位置は、ファイルの先頭に記述します。

保存文字コードが「UTF-8」になっていることを確認して「更新」をクリックします。

コードを間違えるとサイトにアクセスできなくなる可能性があるので注意してください。

xmlrpc.phpの無効化6

⑦xmlrpc.phpの無効化が完了しました。

12.「.htaccess」へのアクセス無効化

「.htaccess」は、WordPressやサーバーの動きを管理する重要なファイルであり、攻撃者に狙われることがあります。

例えば、ブラウザを使って「https://example.com/.htaccess」に直接アクセスし、設定内容を確認しようとする攻撃があります。

このようなアクセスを無効化することで、ファイルの内容を守り、不正な操作を防ぐことができます。

12-1.無効化の手順

①「.htaccess」ファイルの編集手順については、xmlrpc.phpの無効化を参考にしてください。

②以下のコードを「.htaccess」に追加します。

#.htaccessアクセス無効
<Files .htaccess>
Order deny,allow
Deny from all
</Files>

追加する位置は、ファイルの先頭に記述します。

保存文字コードが「UTF-8」になっていることを確認して「更新」をクリックします。

コードを間違えるとサイトにアクセスできなくなる可能性があるので注意してください。

「.htaccess」へのアクセス無効化1

③「.htaccess」へのアクセス無効化が完了しました。

13.WordPressの管理画面を保護する

WordPressの管理画面やログインページへの不正アクセスを防ぐには、HTTPS通信を強制的に適用する設定が効果的です。

この設定により、管理画面へのアクセスを暗号化し、盗聴や不正アクセスのリスクを大幅に軽減できます。

13-1.なぜHTTPSを強制するのか?

  1. ログイン情報の保護
    管理画面へのログイン時にユーザー名やパスワードが暗号化され、盗聴や中間者攻撃のリスクを防ぎます。
  2. HTTPアクセスの防止
    HTTPSを強制することで、誤ってHTTPでアクセスした場合でも自動的にHTTPSにリダイレクトされ、通信が暗号化されます。

13-2.設定方法

wp-config.phpファイルに以下のコードを記述します。

define(‘FORCE_SSL_ADMIN’, true);

設定する位置は、”/* That’s all, stop editing! Happy publishing. */ ”の直前です。

WordPressの管理画面を保護する1

WooCommerceサイトのサーバーセキュリティ対策

WooCommerceサイトのサーバーセキュリティ対策

WooCommerceサイトのサーバー不正アクセス対策について、効果的なものから順番にご紹介していきます。

1.サーバーログイン時の2段階認証を行う

サーバー不正ログイン対策に対して2段階認証を導入することが最も効果的です。

万が一パスワードが漏洩しても、攻撃者がサーバーにアクセスするリスクを大幅に低減できます。

2段階認証では、パスワードに加えてワンタイムコードや認証アプリの確認が必要になるため、パスワードだけでログインされるリスクを防ぎます。

私がメインで使っているシンレンタルサーバーでは、「シンアカウントでのログイン」と、「サーバーパネルへのログイン」の2つの方法でログインできるので、それぞれに対して2段階認証を設定します。

1-1.シンアカウントでのログイン2段階認証手順

レンタルサーバーにログインします

サーバーログイン時の2段階認証を行う1

②画面右上のシンアカウントメニューから「登録情報確認・編集」をクリックします。

サーバーログイン時の2段階認証を行う2

③画面を下にスクロールして、二段階認証の項目の「設定変更」をクリックします。

サーバーログイン時の2段階認証を行う3

④「設定する」を選択し、「設定を変更する」をクリックします。

サーバーログイン時の2段階認証を行う4

⑤「QRコードを表示」をクリックします。

⑥QRコードが表示されます。

サーバーログイン時の2段階認証を行う5

⑦スマートフォンにアプリ「Google Authenticator」をインストールします。

サーバーログイン時の2段階認証を行う6

⑧スマートフォンにインストールしたアプリの「Google Authenticator」を開き、「+」ボタンをクリックします。

サーバーログイン時の2段階認証を行う7

⑨「QRコードスキャン」をタップするとカメラに切り替わるので、パソコン画面のQRコードを読み込みます。

サーバーログイン時の2段階認証を行う8

⑩アプリに表示される6桁のコードを、「認証コードを入力」の欄に入力して「認証」をクリックします。

サーバーログイン時の2段階認証を行う9

⑪バックアップコードをメモして保存し、「登録情報確認・編集トップに戻る」をクリックします。

スマホを紛失した場合、ログインできなくなるので、そのためのバックアップコードです。

大切に保管してください。

サーバーログイン時の2段階認証を行う10

⑫シンアカウントへログインする際の2段階認証設定が完了しました。

⑬1度ログアウトして、実際にシンアカウントにログインして確認してみましょう。

サーバーログイン時の2段階認証を行う11

⑭二段階認証ログイン画面になりました。

サーバーログイン時の2段階認証を行う12

⑮スマートフォンにインストールしたアプリの「Google Authenticator」に表示される6桁の数値を入力します。

サーバーログイン時の2段階認証を行う13

⑯2段階認証でのログインが成功しました。

1-2.サーバーパネルへのログインの2段階認証手順

サーバーパネルにログインします

サーバーログイン時の2段階認証を行う14

②サーバー」>「二段階認証設定」をクリックします。

サーバーログイン時の2段階認証を行う15

③スマートフォンにアプリ「Google Authenticator」を開きます。

サーバーログイン時の2段階認証を行う16

④「QRコードを表示」をクリックします。

サーバーログイン時の2段階認証を行う17

⑤QRコードが表示されました。

サーバーログイン時の2段階認証を行う18

⑥スマートフォンにインストールしたアプリの「Google Authenticator」を開き、「+」ボタンをクリックします。

サーバーログイン時の2段階認証を行う19

⑦「QRコードスキャン」をタップするとカメラに切り替わるので、パソコン画面のQRコードを読み込みます。

サーバーログイン時の2段階認証を行う20

⑧アプリに表示される6桁のコードを、「STEP3:認証コードを入力」に入力して「認証して設定する」をクリックします。

サーバーログイン時の2段階認証を行う21

⑨バックアップコードをメモして保存し、「閉じる」をクリックします。

スマホを紛失した場合、ログインできなくなるので、そのためのバックアップコードです。

大切に保管してください。

サーバーログイン時の2段階認証を行う22

⑩2段階認証の設定が完了しました。

⑪1度ログアウトして、実際にサーバーパネルにログインして確認してみましょう。

ここでは、シンアカウントIDを入力します。

サーバーログイン時の2段階認証を行う23

⑫二段階認証ログイン画面になりました。

サーバーログイン時の2段階認証を行う24

⑬スマートフォンにインストールしたアプリの「Google Authenticator」に表示される6桁の数値を入力します。

サーバーログイン時の2段階認証を行う25

⑭2段階認証でのログインが成功しました。

2.PHPの推奨バージョンを使う

PHPはWordPressを動作させるプログラムであり、レンタルサーバーの推奨バージョンを使うことがセキュリティ上非常に重要です。

古いPHPバージョンはサポートが終了しており、セキュリティの脆弱性が修正されないため、ハッキングのリスクが高まります。

2025年1月4日現在では、PHPバージョン8.0以下はサポートが終了しています。

多くのレンタルサーバーでは、推奨されるPHPバージョンがドメインを設定時に自動で付与されますが、時間が経つと推奨バージョンが更新されている可能性があるため、手動で定期的に確認・更新することが大切です。

特に、WooCommerceを利用する場合は、セキュリティ対策が重要になるため、サーバーの推奨するPHPバージョンを必ず使用してください。

2-1.PHPバージョンの確認手順

シンレンタルサーバーを例にしてPHPバージョンの確認手順について解説します。

レンタルサーバーにログインします。

PHPの推奨バージョンを使う1

②サーバー管理をクリックします。

PHPの推奨バージョンを使う2

③画面をスクロールしてドメインの項目からPHPバージョンが確認できます。

PHPの推奨バージョンを使う3

3.サーバーのWAF設定

WAFは、WooCommerceサイトのセキュリティに必須の対策です。

不正なリクエストを検知し、攻撃をブロックします。

  • サーバーレベルで攻撃をブロック
  • サイトに負荷をかけず、全体を保護

3-1.WAFの設定手順

シンレンタルサーバーを例に設定手順を解説します。

サーバーパネルにログインします

PHPの推奨バージョンを使う4

②「セキュリティ」>「WAF」をクリックします。

PHPの推奨バージョンを使う5

③すべて「ON」に設定します。

PHPの推奨バージョンを使う6

④WAF設定はサーバーに変更が反映されるまで最大で1時間程度かかります。

4.海外からのアクセスを拒否する

WooCommerceサイトを国内向けに運営する場合、海外からのアクセスを拒否するのは効果的なセキュリティ対策です。

特に中国、インド、ロシアは不正アクセスが多い国として知られています。

Wordfenceの有料機能「国別ブロック」を使えば、簡単にこれらの国からのアクセスを遮断し、リスクを大幅に軽減できます。

ちなみに、私が管理しているいくつかのサイトにはシンガポールや日本からの不正アクセスも多いです。

5.wp-config.phpファイルの保護

「wp-config.php」 は、WordPressの重要な設定ファイルです。

この中には、サイトを動かすための情報やデータベースのログイン情報が含まれています。

このファイルが盗まれたり書き換えられたりすると、次のような被害が起こる可能性があります。

  1. サイトのデータが勝手に変更されたり削除される。
  2. サイトに不正なプログラムを仕込まれる。

こうしたリスクを防ぐために、「wp-config.php」を守ることが必要です。

次に、その方法を説明します。

5-1.wp-config.phpファイルの移動

wp-config.phpを公開ディレクトリの外に移動することで、直接アクセスされるリスクを根本的に減らせます。

アクセスそのものが困難になるため、最も高い効果があります。

これは WordPress公式が推奨する設定 であり、安心して実施できます。

ディレクトリの移動例
  • 移動前:/example.com/public_html/
  • 移動後:/example.com/

/
├── wp-config.php <– 移動
├── public_html/
     ├── index.php
     ├── wp-content/
     ├── wp-includes/

注意点としては、サブドメインの場合はこの方法はおすすめしません。

1階層上の保存場所がメインドメインと同じ階層になってしまい、メインドメインの保存場所と共有されるため、セキュリティリスクを完全に回避できません。

wp-config.phpファイルの移動手順

シンレンタルサーバーを例にして解説します。

シンレンタルサーバーにログインします。

PHPの推奨バージョンを使う7

②サーバー管理をクリックします。

PHPの推奨バージョンを使う8

③「サーバー」>「手動バックアップ作成」をクリックします。

PHPの推奨バージョンを使う9

④「作成してダウンロードする」をクリックして、wp-config.phpファイルを移動するドメインのバックアップを作成します。

万が一の不具合に備えてバックアップをダウンロードしておきましょう。

バックアップファイルは任意の場所に保存してください。

PHPの推奨バージョンを使う10

⑤トップページをクリックします。

PHPの推奨バージョンを使う11

⑥ファイル管理をクリックします。

PHPの推奨バージョンを使う12

⑦wp-config.phpファイルを移動するドメインをクリックします。

PHPの推奨バージョンを使う13

⑧「public_html」をクリックします。

PHPの推奨バージョンを使う14

⑨「wp-config.php」>「ダウンロード」をクリックします。

PHPの推奨バージョンを使う15

⑩「ダウンロード」をクリックします。

ダウンロードした、「wp-config.php」は任意の場所に保存します。

PHPの推奨バージョンを使う16

⑪ドメイン名をクリックします。

PHPの推奨バージョンを使う17

⑫「アップロード」をクリックします。

PHPの推奨バージョンを使う18

⑬「ファイルを選択」をクリックして、先ほどダウンロードした「wp-config.php」を選択し、アップロードします。

PHPの推奨バージョンを使う19

⑭「wp-config.php」ファイルが1階層上にアップロードできました。

PHPの推奨バージョンを使う20

⑮「public_html」をクリックします。

PHPの推奨バージョンを使う21

⑯「wp-config.php」>「削除」をクリックして、元のファイルを削除します。

PHPの推奨バージョンを使う22

⑰削除するファイルが「wp-config.php」であることを確認して、「完全に削除」をクリックします。

PHPの推奨バージョンを使う23

⑱「wp-config.php」が1階層上のディレクトリに移動完了しました。

⑲ダウンロードした「wp-config.php」ファイルは削除しておきましょう。

5-2.htaccess でアクセス制限

「wp-config.php」ファイルを公開ディレクトリの外に移動することで、攻撃者がファイルを見つけにくくなりました。

しかし、万が一見つけられた場合でも、直接アクセスを禁止する設定を追加することで、さらなるセキュリティ強化を行いましょう。

「.htaccess」ファイル で「wp-config.php」へのアクセス制限を行う手順

シンレンタルサーバーを例にして手順を解説します。

シンレンタルサーバーにログインします。

PHPの推奨バージョンを使う24

②ファイル管理をクリックします。

PHPの推奨バージョンを使う25

③「.htaccess」ファイル を編集するドメインを選択します。

PHPの推奨バージョンを使う26

④「public_html」をクリックします。

PHPの推奨バージョンを使う27

⑤「.htaccess」>「編集」をクリックします。

PHPの推奨バージョンを使う28

⑩「.htaccess 」ファイルに以下のコードを追加し、wp-config.php への直接アクセスを禁止します。

コードを追加する位置はファイルの先頭です。

コードを間違えるとサイトを閲覧できなくなり、WordPressにもログインできなくなるため注意してください。

#wp-config.php への直接アクセスを禁止
<Files “wp-config.php”>
Require all denied
</Files>

⑪保存文字コードが「UTF-8」になっていることを確認して、更新をクリックします。

PHPの推奨バージョンを使う29

「wp-config.php」へのアクセス制限が完了しました。

これで、第3者がブラウザや自動プログラムを通じてサーバー上にアクセスできないようになりました。

5-3.パーミッション設定

「wp-config.php」ファイルは、WordPressの重要な設定ファイルです。

読み取り専用に設定することで、改ざんを防ぎ、セキュリティを強化できます。

ディレクトリ移動や 「.htaccess」によるアクセス制限を施していても、サーバー内で動作する不正なプログラムや悪意あるコード(例えば、侵入者がアップロードしたファイル)がファイルを書き換えるリスクを防ぐため、パーミッション設定が必要です。

推奨されるパーミッション設定
パーミッション説明
400所有者が読み取りのみ可能で最も安全
600所有者が読み取り・書き込み可能

wp-config.phpのパーミッション設定手順

シンレンタルサーバーを例に解説します。

シンレンタルサーバーにログインします。

PHPの推奨バージョンを使う30

②ファイル管理をクリックします。

PHPの推奨バージョンを使う31

③wp-config.phpのパーミッションを設定するドメインを選びます。

PHPの推奨バージョンを使う32

④「wp-config.php」>「パーミッション変更」をクリックします。

PHPの推奨バージョンを使う33

⑤「パーミッションを数値で指定する」に「400」を入力して、変更をクリックします。

PHPの推奨バージョンを使う34

⑥「wp-config.php」が読み取り専用となりました。

PHPの推奨バージョンを使う35

WooCommerce全体のセキュリティ対策

WooCommerce全体のセキュリティ対策

1.SSL証明書を適用する

WooCommerceで安全なオンラインショップを運営するには、SSL化が非常に重要です。

通常、新規でドメインを設定すると、多くのレンタルサーバーでは無料で標準のSSLが適用されています。

以下では、SSL化の目的と、確認の手順について解説します。

1-1.SSL証明書の目的

  • データの暗号化
    SSL証明書を適用することで、サイトとユーザーの間で送受信されるデータ(パスワードやクレジットカード情報など)が暗号化され、第三者に盗まれるリスクを防ぎます。
  • 信頼性の向上
    サイトURLが「https://」で始まり、ブラウザに鍵マークが表示されることで、訪問者に安全なサイトであることを示し、信頼性が向上します。
    Google ChromeやFirefoxではSSL化されていないサイトに「保護されていない通信」と警告を表示します。
  • SEO対策
    Googleなどの検索エンジンは、SSLを適用しているサイトを優遇する傾向があるため、検索順位が向上する可能性があります。
  • 法的および規約上の要件
    クレジットカード情報を扱う場合、多くの規制や決済サービスプロバイダーがSSLの適用を義務付けています。

1-2.SSL化の確認方法

自分のサイトURLをブラウザに入力し、次の点をチェックします。

  • URLが「https://」で始まっているか。
  • 鍵マークが表示されているか。

2.支払いゲートウェイのセキュリティ確認

WooCommerceの支払いゲートウェイにおけるセキュリティ対策は、以下の3つがポイントです。

  • 信頼できるゲートウェイの選択
  • APIキーの管理
  • 不正防止ツールの活用

これらの対策を講じることで、顧客情報や決済データを安全に保ち、サイトの信頼性を向上させることができます。

2-1.信頼できるゲートウェイの選択

ゲートウェイは以下の3つの中から選ぶとよいでしょう。

  1. PayPal Payments
  2. Stripe for WooCommerce
  3. Square for WooCommerce


これらは以下の必須セキュリティ要件を満たしているため、安全で信頼できます。

  1. PCI DSS準拠
    クレジットカード情報を安全に処理する国際基準
  2. 顧客情報の外部管理
    顧客情報をゲートウェイ側で管理
  3. 顧客情報のトークン化
    カード情報を安全に送信
  4. SSL/TLS暗号化
    ゲートウェイとの通信を暗号化し、データを保護。

対応状況

セキュリティ項目PayPalStripeSquare
PCI DSS準拠
顧客情報外部管理トークン化外部管理
SSL/TLS暗号化

どれを選んでも必須セキュリティ要件を満たしています。

2-2.APIキーの管理

WooCommerceで支払いゲートウェイを安全に利用するには、APIキーの適切な管理が欠かせません。

APIキーは、WooCommerceと支払いゲートウェイ(PayPal、Stripe、Square)を連携させるための認証情報であり、不正利用を防ぐための管理が重要です。

APIキー管理のポイント
  1. 安全な保存
    • WooCommerceの支払い設定画面にAPIキーを入力する。
  2. 不要なキーの削除
    • 使わなくなったキーや古いキーは削除して、不正利用を防止。
  3. 権限の最小化
    • APIキーの権限を必要最低限(読み取り専用など)に設定。
  4. 定期的な更新
    • APIキーを半年~1年に一度更新し、漏洩リスクを低減。
  5. アクセスログの確認
    • APIキーの利用状況をゲートウェイの管理画面で定期的にチェック。

APIキーの管理は、ゲートウェイの提供する管理画面を使って行います。

適切に管理することで、支払い情報の安全性を確保しましょう。

2-3.不正防止ツールの活用

不正アクセスや不正な支払いを防ぐためには、ゲートウェイが提供する不正防止ツールを活用しましょう。

たとえば、Stripe RadarPayPalの不正取引保護機能を有効にすることで、不正リスクを軽減できます。

  • Stripe Radar: 不審な取引を検知して自動でブロック。
  • PayPalの不正取引保護: リアルタイムで取引の安全性を評価。
  • Squareのセキュリティツール: 高度な詐欺検出機能を搭載。

3.クリックジャッキングを防ぐ方法

クリックジャッキングは、他のウェブサイトがあなたのサイトを偽装し、不正な操作をユーザーに行わせる攻撃です。

これを防ぐために、簡単なセキュリティ設定を導入しましょう。

3-1.クリックジャッキングとは?

クリックジャッキングは、iframeを使ってあなたのサイトを別のサイト内に表示させ、不正なボタン操作やスパムサイトへの誘導を行う攻撃です。

この攻撃により、以下のリスクが発生します:

  • 管理画面の不正操作
  • ユーザーのスパムサイトへの誘導

3-2.対策方法:.htaccessを使った設定

以下のコードを.htaccessに追加するだけで対策できます。

#.クリックジャッキング対策
Header always append X-Frame-Options SAMEORIGIN

追加する位置はファイルの先頭です。

コードを間違えるとサイトが閲覧できなくなるリスクがあるので注意してください。

クリックジャッキングを防ぐ方法1

WooCommerceのリカバリ対策

WooCommerceのリカバリ対策

1.バックアップの徹底で不測の事態に備える

データの消失やシステムトラブルに備えるために、定期的なバックアップは欠かせません。

WooCommerceでオンラインショップを運営する際は、1日1回の自動バックアップがおすすめです。

ほとんどのレンタルサーバーでは、自動バックアップ機能が標準で提供されています。

たとえば、エックスサーバーやシンレンタルサーバーでは初期設定で自動バックアップされます。

ただし、重要な変更や新しいプラグインの導入を行う場合には、手動でバックアップを追加することで、万が一のトラブルにも迅速に対応できます。

1-1.自動バックアップで十分な場合

通常の運営では、次のような状況で1日1回の自動バックアップが対応可能です。

  • 商品登録や設定の軽微な変更
    サイトの基本的な運営作業では、自動バックアップでカバーできます。
  • 変更頻度が少ない運営初期
    新規立ち上げ段階ではデータの更新頻度も少なく、自動バックアップで問題ありません。

1-2.手動バックアップが必要な場合

WooCommerce運営の初期段階でも、次の場合には手動でバックアップを追加することをおすすめします。

  1. プラグインやテーマの設定変更を行う場合
    設定の変更やカスタマイズを行う前にバックアップを取ると、トラブル時にも元に戻せます。
  2. 新しいプラグインを導入する場合
    プラグインの追加は他のプラグインやテーマとの互換性に影響する可能性があります。導入前にバックアップを取っておきましょう。

1-3.おすすめの運用

  • 通常時:1日1回の自動バックアップを活用。
  • 設定変更時:手動バックアップを1回追加。
  • プラグイン導入時:手動バックアップを1回追加。

WooCommerceのキャッシュ設定とセキュリティ

WooCommerceのキャッシュ設定とセキュリティ

WooCommerceサイトでは、キャッシュ設定のミスが「他人のカート内容や会員情報の表示」「在庫や価格情報の不正確な表示」につながるリスクがあります。

そのため、キャッシュプラグインを導入する場合は慎重に設定を行い、設定に自信がない場合は導入を控えることも考えてください。

特に、カートやチェックアウトページは必ずキャッシュ対象から除外してください。

1.キャッシュ設定の注意点

  1. カート・チェックアウトページのキャッシュ
    • 他人のカート内容や会員情報が誤って表示されるリスク。
    • 最新の在庫状況や価格が正確に反映されない可能性。
  2. サーバー側キャッシュの問題
    • 一部のレンタルサーバーで自動的にキャッシュが適用されることがある。
    • WooCommerce非対応のサーバーキャッシュを使うと、不具合が発生する可能性。
  3. キャッシュプラグインの導入
    • WooCommerce対応のキャッシュプラグインを使用することが必須。
    • 「カートやチェックアウトページのキャッシュ除外」設定ができない場合は導入を控えるべき。

2.推奨アクション

  • サーバーやキャッシュプラグインの設定で、以下を必ずキャッシュ除外:
    • カートページ
    • チェックアウトページ
    • マイアカウントページ
  • WooCommerce対応のキャッシュプラグイン(例: WP Rocket)を活用する。
  • サーバー管理者にキャッシュ設定がWooCommerceに対応しているか確認。

キャッシュ設定は、WooCommerceサイトのパフォーマンスを向上させる一方で、不適切な設定によるリスクも伴います。

設定に不安がある場合、キャッシュプラグインの導入を控えるのも安全な選択肢です。

WooCommerceのセキュリティに関するFAQ

WooCommerceのセキュリティに関するFAQ
WooCommerceでSSL証明書は絶対に必要?

はい、必要です。

SSL証明書は、顧客のデータ(例: パスワードやクレジットカード情報)を暗号化し、安全に通信するために必須です。

さらに、GoogleのSEO対策としてもSSL化は有利であり、ブラウザ上の「安全でないサイト」という警告を防ぐ効果もあります。

プラグインの脆弱性を見分ける方法は?

以下のポイントを確認しましょう

  1. 更新頻度: 最近更新されていないプラグインは脆弱性がある可能性があります。
  2. インストール数と評価: インストール数が多く、評価が高いプラグインを選びましょう。
  3. セキュリティ履歴: 開発者が提供するリリースノートでセキュリティ修正の有無を確認。
  4. 公式プラグインを利用: WooCommerce公式が推奨するプラグインは信頼性が高いです。
無料のセキュリティツールで十分ですか?

ECサイトでは有料ツールが推奨されます。

無料ツールでも基本的なセキュリティ機能(例: ログイン制限、マルウェアスキャン)は対応可能ですが、有料ツール(例: Wordfence Premium)はリアルタイムモニタリングや高度な詐欺検知機能が備わっており、より強力な保護が可能です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次