WordPressのセキュリティを強化する20の方法:安全なサイト運営ガイド

WordPressのセキュリティを強化する20の方法:安全なサイト運営ガイド

WordPressは世界で最も人気のあるコンテンツ管理システム(CMS)であり、全Webサイトの43.2%がWordPressで構築されています。ただし、その圧倒的な普及率のために、サイバー攻撃者にとってはセキュリティ上の脆弱性を狙う格好の標的となっているのも事実です。

とはいえ、WordPress自体のセキュリティ機能に重大な問題があるわけではありません。セキュリティ侵害はユーザー側の意識や対策の不足によっても起こり得ます。ですから、攻撃者がウェブサイトにをハッキングしようとする前に、適切な防御策を講じておくのが最善の策となります。

この記事では、WordPressサイトのセキュリティを大幅に向上させ、さまざまなサイバー攻撃から守るための20の実践的な方法を紹介します。プラグインを使った簡単な対策から、手動で行う詳細な設定まで、初心者から中級者までがすぐに実践できるベストプラクティスやコツを詳しく解説します。なお、これらの対策の一部は、WordPress以外のプラットフォームにも応用可能です。

WordPressのセキュリティチェックリスト

「セキュリティ対策は1つか2つやっておけば安心」などという考えでは、WordPressサイトを完全に守ることはできません。

重要なセキュリティ対策が適切に実施されているかを管理できるよう、専用のWordPressセキュリティチェックリストを用意しました。ダウンロードして活用してみてください。ここからは、サイトをより強固に保護するためのWordPressのセキュリティに関するヒントを紹介します。

1.WordPressを常に最新版に保つ

WordPressでは、パフォーマンスとセキュリティの向上を目的としたソフトウェアアップデートが定期的にリリースされています。これらのアップデートは、サイバー脅威からもサイトを守ります。

WordPressのバージョンを更新することは、セキュリティを強化するうえで最もシンプルかつ効果的な方法です。しかし驚くべきことに、WordPressサイトの約50%が古いバージョンのまま放置されており、深刻なセキュリティリスクにさらされています。

現在のWordPressが最新バージョンかどうかを確認するには、管理画面にログインし、左側のメニューから「ダッシュボード」→「更新」をクリックします。もし古いバージョンと表示された場合は、できるだけ早く更新することを強く推奨します。

サイトが古いWordPressのバージョンで動作しないようにするために今後の更新リリース予定も定期的に確認ましょう。

WordPressのサイトにインストール済みのテーマやプラグインも忘れずに更新してください。古いテーマやプラグインは、新しいWordPressコアとの互換性に問題を起こし、エラーやセキュリティ上の脅威にさらされたりすることがあります。

古いテーマやプラグインを取り除くには、以下の手順で行ってください。

  1. WordPress管理画面で「ダッシュボード」→「更新」に移動します。
  2. プラグイン」や「テーマ」の各セクションまでスクロールして、更新可能なリストを確認します。すべて一括で更新することも、個別に選択することも可能です。
  3. プラグインを更新」ボタンをクリックします。

専門家によるヒント

自動更新機能を有効にすると日々の管理が楽になりますが、古いプラグインやテーマとの非互換性によってサイトがダウンする可能性もあります。自動更新を使用する場合は、万が一の問題に備えて定期的なバックアップを必ず取得し、問題発生時には迅速に前のバージョンに戻せる体制を整えておきましょう。

Editor

Mantas S.

Webサイトエンジニア

2.安全な管理画面へのログイン認証を使用する

WordPressユーザーがよく犯してしまうミスの一つに、「admin」「administrator」「test」といった誰でも予想できる簡単なユーザー名を使うことがあります。これは、ブルートフォース攻撃(総当たり攻撃)の格好の標的となります。さらに、攻撃者は同様の攻撃で脆弱なパスワードを使用しているWordPressサイトも狙ます。

そのため、ユーザー名とパスワードの両方を、ユニークなものに設定する必要があります。

または、以下の手順に従って、新しいユーザー名で新しいWordPress管理者アカウントを作成してください:

  1. WordPressダッシュボードから「ユーザー」→「新規追加」をクリックします。
  1. 新しいユーザーを作成し、権限グループで「管理者」に設定します。パスワードを設定して「新規ユーザーを追加」をクリックすれば完了です。

パスワード作成時のポイントとして、数字、記号、大文字・小文字を巧みに組み合わせることが重要です。特に12文字以上の長いパスワードは解読が極めて困難になるため、積極的に採用しましょう。

専門家によるヒント

パスワードは長ければ長いほど安全性が高まりますが、強力なパスワードにするために必ずしも極端に長く複雑である必要はありません。一般的な文字の代わりに、記号や数字を効果的に使ってください。例えば「Alabama!」より「41@bAm@!」のような形式のほうが記憶しやすく、同時に解析も難しくなります。さらに、「qpzmwoxn」のようなキーボード配列を使ったパターンも効果的です。こうした方法を組み合わせることで、より強固なパスワードが作成できます。

Editor

Dominykas V.

サイバーセキュリティの専門家

強力なパスワードの生成に助けが必要な場合は、LastPass1Passwordなど信頼性の高いオンラインツールの利用がおすすめです。これらのツールは、安全な保管機能も備えており、複雑なパスワードを覚える必要がなくなります。

新しいWordPressの管理者アカウントを作成したあとは、古いアカウントを削除することが不可欠です。

  1. 作成したばかりの新しいWordPressのユーザー情報でログインします。
  2. ユーザー」→「ユーザー一覧」に移動します。
  1. 削除対象の古い管理者アカウントを選択し、一括操作のドロップダウンメニューを「削除」に変更し、実行をクリックしてください。

また、サイトを安全に保つには、ログインする前のネットワーク環境の確認も重要です。知らないうちに「ハニーポット」と呼ばれるハッカーが設置した偽のネットワークに接続すると、ログイン情報が盗まれる危険性があります。

一見すると安全そうな学校の図書館のWi-Fiなどの公共のネットワークでも、実際には十分なセキュリティが確保されていないことが多いのです。ハッカーは通信を傍受し、暗号化されていないログイン情報などのデータを盗み取ることができます。

こうしたリスクを避けるため、公共ネットワークを使用する場合はVPNサービスの利用を強く推奨します。VPNは通信に暗号化の層を加え、データの傍受を困難にし、オンライン上の行動を効果的に保護してくれます。

3.管理画面にセーフリストとブロックリストを設定する

URLロックダウン機能を有効にすると、ログインページを不正なIPアドレスやブルートフォース攻撃から効果的に守ることができます。そのためには、CloudflareSucuriといったWebアプリケーションファイアウォール(WAF)を利用する必要があります。

Cloudflareを使う場合は、 ゾーンロックダウンのルールを設定できます。保護したいURLと、そのURLへのアクセスを許可するIPアドレスの範囲を指定することで、指定外のIPからのアクセスをすべてブロックできます。

Sucuriにも同様の、URLパスブラックリストという機能がありますます。まずログインページのURLをブロックリストに登録してアクセスを遮断し、次に認証済みのIPアドレスをセーフリストに追加して、必要なアクセスのみを許可する仕組みです。

または、サイトの.htaccessファイルを設定することでログインページへのアクセスを制限することが可能です。このファイルはルートディレクトリからアクセスできます。

重要!変更を加える前に、必ず元の.htaccessファイルのバックアップを取得してください。問題が発生した場合でも、すぐに元の状態に戻すことができます。

以下のルールを.htaccess追加することで、wp-login.php へのアクセスを特定のIPアドレスに限定できます。他の場所からの攻撃者によるアクセスを防ぐ有効な手段です。

# Block IPs for login Apache 2.2
<files /wp-login.php>
order deny,allow
allow from MYIP
allow from MYIP2
deny from all
</files>
# Block IPS for login Apache 2.4
<Files "wp-login.php">
Require all denied
</Files>

このルールは「# BEGIN WordPress」と「# END WordPress」の記述の後に配置する必要があります。

固定IPアドレスを持っていない場合でも、契約中のインターネットプロバイダーが割り当てる共通IP範囲でアクセスを制限することで、同等の効果を得ることが可能です。

この手法は/wp-adminのような、他の認証が必要なURLにも応用できます。

専門家によるヒント

ブラックリスト方式は、既知の脅威に対しては有効ですが、ハッカーはブラックリストによる検出を回避するために特別に設計されたマルウェアを使用することがあります。一方で、セーフリスト方式はより強固なセキュリティを実現できますが、導入にはより複雑な設定が求められる場合があります。特に第三者に構築を依頼する際には、使用中のすべてのアプリケーションについて詳細な情報を提供することが重要です。

Editor

Mantas S.

Webサイトエンジニア

4.信頼できるWordPressテーマを選択する

違法に配布されているWordPressテーマ(通称「nulledテーマ」)は、正規のプレミアムテーマを不正にコピーしたものです。通常、正規品よりも安価で販売されており、ユーザーを惹きつけるように見えますが、実際には深刻なセキュリティ上のリスクを伴います。

こうした違法テーマを配布しているのは、正規テーマを改変してマルウェアやスパムリンクなどの悪意あるコードを埋め込むハッカーであることが多く、、あなたのWordPressサイトを危険にさらす可能性のある他の悪用へのバックドアとなってしまう恐れもあります。

さらに、違法なテーマであるため、開発者からのサポートは受けられません。つまり、WordPressサイトに何か問題があった場合はすべて自己責任で対応しなければならず、セキュリティ対策も自力で行う必要があります。

こうしたリスクを避けるためには、WordPressテーマは必ず公式リポジトリや信頼できる開発者から入手してください。もしくは、ThemeForestなどのテーマのマーケットプレイスでは、安全に利用できる何千ものプレミアムテーマが提供されています。

専門家によるヒント

Webサイトのテーマやプラグインについては、定期的なセキュリティスキャンを行うことを習慣にしてください。 Patchstackなどのツールを活用すれば、WordPressデータベースの脆弱性を効率よく確認できます。

Editor

Mantas S.

Webサイトエンジニア

5.SSL証明書をインストールする

SSL(Secure Sockets Layer)は、Webサイトと訪問者の間でやり取りされるデータを暗号化する通信プロトコルです。この仕組みによって、攻撃者が重要な情報を盗み取ることが非常に困難になります。

さらに、SSL証明書の導入はWebサイトの検索エンジン最適化(SEO)にも効果があり、検索順位が向上しやすくなるため、結果として訪問者数の増加にもつながるでしょう。

SSL証明書が有効なWebサイトは、「HTTP」ではなく「HTTPS」で表示されるため、一目で安全性を確認できます。

多くのレンタルサーバー事業者が、提供するプラン内にSSL証明書を含めています。たとえばHostingerでは、すべてのレンタルサーバープランに無料のLet’s Encrypt SSL 証明書が付属しています。また、有料オプションとしてComodo PositiveSSL証明書へのアップグレードも可能です。

レンタルサーバーのアカウントにSSL証明書をインストールした後は、WordPressサイト上での有効化が必要です。

Really Simple SSL SSL Insecure Content Fixerなどのプラグインを使用すると、技術的な設定とSSLの有効化を数クリックで完了できます。Really Simple SSLの有料版では、サイトアクセス時にHTTPS使用を強制するHTTP Strict Transport Securityヘッダーを有効にできます。

設定が完了したら、サイトのURLを「HTTP」から「HTTPS」に変更してください。WordPressの管理画面で「設定」→「一般」に移動し、「サイトアドレス(URL)」フィールドでURLを正しく更新します。

6.未使用のWordPressプラグインとテーマを削除する

使用していないプラグインやテーマをWordPressサイトに残しておくのは危険です。特に、長期間更新されていないものは脆弱性が放置されている可能性が高く、ハッカーに悪用されやすいため、サイバー攻撃のリスクが大きくなります。

未使用のWordPressプラグインを削除する手順はこちらです。

  1. プラグイン」→「インストール済みプラグイン」に移動します。
  2. インストール済みプラグインの一覧が表示されます。プラグイン名の下にある「削除」をクリックします。

※注意:削除ボタンは、該当プラグインを無効化してからでないと表示されません。

次に、未使用テーマの削除手順をご紹介します。

  1. WordPress管理画面から「外観」→「テーマ」に移動します。
  2. 削除したいテーマをクリックします。
  3. ポップアップウィンドウが表示され、テーマの詳細が表示されます。右下の「削除」ボタンをクリックします。

専門家によるヒント

WordPress管理パネルからプラグインやテーマを削除しても、関連データが完全に削除されないことがあります。専用のアンインストーラーが提供されていない場合は、FTPクライアントを使ってサーバーやデータベースに直接アクセスし、不要なデータを手動で削除しなければなりません。

Editor

Mantas S.

Webサイトエンジニア

7.WordPressの管理画面で二段階認証を有効にする

WordPressサイトのログイン時におけるセキュリティを強化するには、二段階認証(2FA)の導入が効果的です。この認証方法は、ログイン時にユーザー名とパスワードに加えて、固有のコード入力を求めることで、WordPressのログイン画面に2段階のセキュリティを追加します。

このコードは、テキストメッセージや認証アプリを通じて本人だけが取得できます。

二段階認証を設定するには、Wordfence Login Securityのようなセキュリティ用プラグインをWordPressにインストールし、スマートフォンにはGoogle Authenticatorなどの認証アプリを導入します。

専門家によるヒント

どの二段階認証プラグインを選ぶか迷った場合は、更新頻度が高く、レビュー件数の多いものを選びましょう。

Editor

Dominykas V.

サイバーセキュリティの専門家

プラグインと認証アプリをインストールしたら、以下の手順で二段階認証を有効にします。

  1. WordPress管理画面のプラグインページに移動します。Wordfence Login Securityを使用している場合は、左側メニューパネルの「Login Security」メニューに移動します。
  2. Two-Factor Authentication」タブを開きます。
  1. 携帯電話のアプリを使用してQRコードをスキャンするか、アクティベーションキーを入力します。
  2. 携帯電話アプリで生成されたコードを、復旧コードセクション下の利用可能なフィールドに入力します。
  3. ACTIVATE」ボタンをクリックして設定を完了します。

また、認証アプリをインストールしたデバイスを紛失した場合に備えて、発行される復旧コードは必ずダウンロードして保管してください。

8.ログイン試行回数を制限する

WordPressはユーザーがサイト上で無制限にログインを試みることが可能です。このため、ハッカーが総当たり攻撃を仕掛け、あらゆるパスワードの組み合わせを試すことで管理画面への侵入を試みる危険性があります。

こうした攻撃を防ぐには、ログイン試行回数の制限が重要です。失敗回数を制限することで、サイトへの不審なアクセスの監視にもつながります。

通常、正規のユーザーであれば1〜数回の試行でログインできるため、制限回数に達するIPアドレスには警戒が必要です。

WordPressのセキュリティを向上させるためにログイン試行回数を制限するひとつの方法として、プラグインの導入が有効です。以下のような素晴らしい選択肢がたくさんあります:

  • Limit Login Attempts Reloaded — 特定のIPアドレスの失敗試行回数を設定し、ユーザーをセーフリストに追加したり完全にブロックしたりでき、Webサイト訪問者に残りのロックアウト時間を通知します。
  • Loginizer — 2FA、reCAPTCHA、ログインチャレンジ質問などのログインセキュリティ機能を提供します。
  • Limit Attempts by BestWebSoft — ログイン試行制限に達したIPアドレスを自動的にブロックし、拒否リストに追加します。

こうしたセキュリティ対策を講じる際の注意点として、正規のユーザーが誤ってロックアウトされる可能性があります。しかし、ロックアウトされたWordPressアカウントを復旧する手段は複数あるため、過度な心配は不要です。

9.WordPressログインページのURLを変更する

総当たり攻撃からWebサイトをさらに保護するためには、ログインページのURLを変更することも有効です。

多くのWordPressサイトでは「yourdomain.com/wp-admin」という共通のログインURLが使われており、これによりハッカーが容易にログインページを狙える状況になっています。

WPS Hide Login Change wp-admin Loginといったプラグインを利用すれば、独自のログインURLを設定できます。

WPS Hide Loginプラグインを使ってログインURLを変更する手順は以下のとおりです。

  1. ダッシュボードで「設定」→「WPS Hide Login」に移動します。
  1. Login URL」フィールドにカスタムのログインURLを入力します。
  2. 変更を保存」ボタンをクリックしてプロセスを完了します。

10. 一定時間操作がないユーザーを自動的にログアウトする

多くのユーザーはWebサイトからログアウトしないまま、セッションを継続しています。その結果、同じ端末を使う他の人がユーザーアカウントにアクセスし、機密情報を悪用する恐れがあります。とくにインターネットカフェや公共の図書館など、共用パソコンを利用する場面でこの問題が発生しやすくなります。

こうしたリスクを防ぐためには、一定時間操作がないユーザーを自動的にログアウトさせる設定をWordPressサイトで行うことが重要です。多くの銀行系Webサイトも同様の仕組みを採用しており、不正アクセスを防ぎながら、利用者の情報を保護しています。

Inactive LogoutなどのWordPressのセキュリティプラグインを使うと、長時間操作がないユーザーアカウントを自動でログアウトさせることができます。さらに、セッションが終了する直前にカスタムの警告メッセージを表示することも可能です。

11.ユーザーアクティビティを監視する

管理画面上で行われた操作を記録することで、Webサイトを危険にさらす不適切な操作や悪意のある行動を特定できます。

複数のユーザーや投稿者がWordPressサイトにアクセスしている場合には、特にこの対策が有効です。ユーザーが誤ってテーマの設定やプラグインの構成など、本来変更すべきではない部分を操作してしまうことがあるためです。

操作履歴を監視すれば、意図しない変更を行ったユーザーを特定できるほか、第三者による不正アクセスの有無も判断できます。

操作の記録を行うには、次のようなWordPressのプラグインを活用するのが手軽な方法です。

  • WP Activity Log — 投稿やページ、テーマ、プラグインを含むサイトの各領域での変更を監視します。新しく追加されたファイルや削除されたファイル、任意のファイルへの変更もログに記録します。
  • Activity Log — WordPressの管理画面で行われたさまざまな操作を監視し、メール通知用のルールも設定できます。
  • Simple History — WordPressの管理画面でのアクティビティログ記録に加え、Jetpack,、WP Crontrol Beaver Builderなど複数のサードパーティ製プラグインの活動も監視できます。

12.マルウェアをチェックする

AV-TEST Instituteの調査によると、毎日45万件以上の新しいマルウェアと潜在的に望ましくないアプリケーション(PUA)が登録されています。中には、検出を逃れるために自身のコードを変化させるポリモーフィック型と呼ばれるマルウェアも存在します。

攻撃者は常に新たな脅威を開発しているため、Webサイトを定期的にスキャンすることが欠かせません。

幸い、WordPressサイトのセキュリティを強化するマルウェアスキャン対応の優れたプラグインが多数存在します。

以下は、当社の専門スタッフが導入を推奨するプラグインです。

  • Wordfence — マルウェアの署名をリアルタイムで更新し、他サイトから疑わしい動きが報告された際に警告通知を行う、高い人気を誇るセキュリティプラグインです。
  • BulletProof Security — 一定時間操作がない場合の自動ログアウト機能や、プラグイン画面に表示されない隠しフォルダー、データベースのバックアップ・復元ツールなどを備え、セキュリティ対策を幅広く支援します。
  • Sucuri Security — 市場でも評価が高いセキュリティプラグインの一つで、リモートスキャンやSSL証明書の取り扱い、ハッキング後の対応機能を備えています。

専門家によるヒント

WordPressサイトがマルウェアに感染した際は、以下の重要なポイントを守ってください。

1. wp-admin領域に常にアクセスできることを確認し、スキャンを実行してマルウェアを除去します。
2. プラグイン、テーマ、WordPressコアソフトウェアが最新であることを確認します。
3. 脆弱性データベースをチェックして、プラグインやテーマがリスクとしてリストアップされているかを確認します。
4. データベースにカスタムプレフィックスを使用するなど、他のWordPressセキュリティ対策も講じます。 

Editor

Mantas S.

Webサイトエンジニア

13.PHPエラーレポートを無効にする

PHPエラーレポートは、Webサイト内のファイルパスやディレクトリ構造など、詳細な情報を表示できるため、PHPスクリプトの不具合を確認するには便利な機能です。

しかし、こうした情報がWeb上に表示されてしまうと、WordPressサイトのセキュリティにとって大きなリスクになります。

たとえば、エラーメッセージに特定のプラグイン名が含まれていた場合、攻撃者がそのプラグインの脆弱性を突いて不正アクセスを試みる可能性があります。

PHPエラーレポートを無効にする方法は2通りあります。1つはPHPファイルを編集する方法、もう1つはレンタルサーバーの管理画面から設定する方法です。

PHPファイルの変更

PHPファイルを変更する手順はこちらです。

  1. FileZillaなどのFTPクライアントまたはレンタルサーバープロバイダーのファイルマネージャーを使用して、サイトの「wp-config.php」ファイルを開きます。
  2. 以下のコードスニペットをファイルに追加します。他のPHPディレクティブより前に追加してください。
error_reporting(0);
@ini_set(‘display_errors’, 0);
  1. 保存」をクリックして変更を適用します。

コントロールパネルを使用したPHP設定の変更

プログラムの編集に不慣れな場合は、レンタルサーバーの管理画面から設定を変更するのがおすすめです。hPanelでは、次の手順で設定できます。

  1. hPanelダッシュボードから「詳細設定」セクションに移動し、「PHP設定」をクリックします。
  2. PHPオプション」タブに移動し、「displayErrors」オプションのチェックを外します。
  1. 保存」をクリックします。

14.より安全なレンタルサーバーに移行する

現在利用しているレンタルサーバーの環境がサイバー攻撃を受けやすい場合、どれだけWordPressのセキュリティ対策を講じても十分な効果は期待できません。レンタルサーバー事業者は、サーバー内のすべてのWebサイトデータとファイルが安全に保たれるように管理すべきであり、そのためには、セキュリティレベルの高い事業者を選ぶことが重要です。

現在のサーバーが安全性に欠けると感じる場合は、WordPressサイトをより信頼できるレンタルサーバーへ移行するタイミングかもしれません。移行先を選ぶ際には、以下の点を参考にしてください。

  • レンタルサーバーの種類 — 共有サーバーや一般的なWordPress向けホスティングは、リソースを他のユーザーと共有しているため、比較的攻撃に弱い傾向があります。可能であれば、VPSや専用ホスティングなど、リソースが分離されたプランを提供する事業者を選びましょう。
  • セキュリティ — 信頼性の高いサーバー事業者は、ネットワーク上の不審な動きを監視し、サーバーのソフトウェアやハードウェアを定期的に更新しています。あらゆるサイバー攻撃からの保護体制が整っているかを確認しましょう。
  • 機能 — レンタルサーバーの種類にかかわらず、自動バックアップ機能やマルウェア防止機能など、セキュリティツールの有無は必須条件です。万が一サイトが侵害された場合に備え、復元可能な体制があることが望まれます。
  • サポート — トラブルが起きた際に迅速に対応してくれる、技術力の高い24時間対応のサポートチームを持つ事業者を選ぶと安心です。セキュリティの問題にも柔軟に対応できます。

HostingerのWordPress向けホスティングは、Webアプリケーションファイアウォールなど、基本的なセキュリティ機能を標準で備えています。さらに、リソースを個別に管理したい場合は、VPSクラウドサーバープランの利用も可能です。

15.ファイル編集機能をオフにする

WordPressには、管理画面からPHPファイルを直接編集できる機能が標準で搭載されていますが、もし攻撃者がこの機能を乗っ取った場合、サイトが深刻な被害を受ける恐れがあります。

こうしたリスクを避けるため、一部のWordPressユーザーはファイル編集機能を無効にしています。設定はとても簡単で、以下のコードを「wp-config.php」ファイルに追加するだけです。

define( 'DISALLOW_FILE_EDIT', true );

WordPressサイトでこの機能を再度有効にしたい場合は、FTPクライアントまたはレンタルサーバープロバイダーのファイルマネージャーを使用して、「wp-config.php」から前のコードを削除するだけです。

16..htaccessファイルを使用してアクセスを制限する

.htaccess」ファイルは、WordPressのリンクが正しく動作するように制御する設定ファイルです。設定が不適切な場合、多くのページで404 Not Foundエラーが表示されてしまいます。

このファイルはさらに、特定のIPアドレスからのアクセスをブロックしたり、特定のIPだけにアクセスを制限したり、特定のフォルダー内でPHPファイルの実行を無効にするなど、セキュリティ対策にも活用できます。以下では、「.htaccess」ファイルを用いてWordPressサイトのセキュリティを強化する方法を紹介します。

重要!変更を加える前に、必ず現在の「.htaccess」ファイルをバックアップしてください。万が一、設定ミスなどでサイトに問題が発生した場合でも、簡単に復元できます。

特定フォルダーでのPHP実行を無効にする

ハッカーは「Uploads」フォルダーにバックドア用スクリプトをアップロードすることがあります。通常、このフォルダーはメディアファイル専用であり、PHPファイルを含むべきではありません。

WordPressサイトの安全性を高めるために、以下の内容を含む「/wp-content/uploads/」に新しい「.htaccess」ファイルを作成しましょう。

<Files *.php>
deny from all
</Files>

wp-config.phpファイルを保護する

ルートディレクトリの「wp-config.php」ファイルには、WordPressの基本設定やMySQLデータベースの接続情報が記載されており、攻撃者にとって格好の標的です。

このファイルへの不正アクセスを防ぐには、次の.htaccess設定をサイトのルートディレクトリに追加します。

<files wp-config.php>
order allow,deny
deny from all
</files>

17.デフォルトのWordPress用のデータベースプレフィックスを変更する

WordPressのデータベースには、サイトの機能に必要なすべての重要情報が保存されています。そのため、サイバー攻撃の中でも特にSQLインジェクションが多く発生しており、データベースはしばしば攻撃の標的になります。攻撃者は有害なコードを注入することで、セキュリティ対策をすり抜けてデータベース内の情報を取得しようとします。

実際にサイバー攻撃の50%以上がSQLインジェクションによるものであり、極めて深刻な脅威の一つです。多くのWordPressユーザーが、初期設定のデータベースプレフィックス「wp_」を変更せずに使用していることも、攻撃の成功率を高めている要因といえます。

WordPressサイトをSQLインジェクションから保護するために、以下の2つの方法でデータベースプレフィックスを変更することを検討しましょう。

重要!作業を始める前に、必ずMySQLデータベースのバックアップを取ってください。

テーブルプレフィックスの変更

  1. hPanelダッシュボードから「ファイルマネージャー」に移動し、「wp-config.php」ファイルを開きます。または、FTPクライアントを使用してファイルにアクセスします。
  2. コード内の「$table_prefix」の値を探します。
  1. デフォルトのWordPressデータベースプレフィックス「wp_」を新しいものに置き換えます。Webサイト用のユニークなプレフィックスを作成するために、文字と数字の組み合わせを使用します。
  1. 保存して閉じる」をクリックします。
  2. hPanelダッシュボードに戻り、「データベース」セクションに移動して「phpMyAdmin」をクリックします。その後、「phpMyAdminに入る」をクリックしてサイトのデータベースを開きます。
  1. 複数のデータベースがある場合は、「wp-config.php」ファイルでデータベース名を見つけます。以下のコードブロックを探してください。
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'MySQL Database' );
  1. phpMyAdminのダッシュボードから、上部メニューバーの「SQL」タブに移動します。
  1. WordPressのデータベースプレフィックスを変更するために、SQLクエリエディターに以下のクエリを入力します。

RENAME table `wp_tablename` TO `wp_1secure1_tablename`;

  1. wp_tablename」を現在のテーブル名に、「wp_1secure1_tablename」を新しいプレフィックスとテーブル名に変更することを忘れないようにしましょう。名前を変更したいテーブルの数に基づいてこのコード行を繰り返し、「実行」を選択します。

テーブル内のプレフィックス値の更新

WordPressサイトにインストールされているプラグインの数によっては、データベース内のいくつかの値を手動で更新する必要がある場合があります。「wp_」プレフィックスを含む値を持つ可能性が高いテーブル(「options」と「usermeta」テーブルを含む)で個別のSQLクエリを実行して行います。

以下のプレフィックスを含むすべての値をフィルタリングするには、以下のコードを使用します。

SELECT * FROM `wp_1secure1_tablename` WHERE `field_name` LIKE '%wp_%'

wp_1secure1_tablename」にはクエリを実行したいテーブル名が含まれます。一方、「field_name」は「wp_」プレフィックスを持つ値が最も現れやすい「フィールド/カラム」の名前を表します。

プレフィックス値を手動で変更する方法は以下のとおりです。

  1. phpMyAdminダッシュボードから、プレフィックス値を更新したいテーブルに移動します。例えば、「wp_1secure1_usermeta」を開きます。
  1. 上部メニューバーの「SQL」タブに移動します。
  1. wp_」を含む値をフィルタリングするために上記のコードをSQLクエリエディターに入力し、「実行」をクリックします。実際のテーブルとフィールド名に応じて情報を変更してください。
  1. フィルター結果が表示されます。対象フィールドの隣にある「編集」ボタンをクリックします。
  1. プレフィックス値を変更し、「実行」をクリックします。フィルタリングされたすべての値に対してステップ4と5を実行します。
  1. データベース内の「wp_」プレフィックスを持つすべての値を更新するために、残りのテーブルについてステップ1から繰り返します。

18.XML-RPCを無効にする

XML-RPCは、モバイルデバイスを使ったコンテンツの投稿や、トラックバックとピンバックの有効化、Jetpackプラグインの利用などに必要なWordPressの機能です。

しかしこの機能には、攻撃者に悪用されやすい脆弱性が存在します。XML-RPCを利用すると、セキュリティ対策をすり抜けて多数のログイン試行が可能になるため、総当たり攻撃の対象となりやすくなります。

また、XML-RPCのピンバック機能を使ってDDoS攻撃を仕掛ける手口も確認されており、攻撃者は一度に何千ものWebサイトにピンバックを送信し、標的のサーバーを過負荷にしてダウンさせることができます。

現在のサイトでXML-RPCが有効になっているかどうかは、XML-RPC検証サービスを利用することで確認できます。成功メッセージが表示されれば、機能が有効な状態であることを意味します。

XML-RPCの無効化は、プラグインを使用する方法と、手動で設定する方法の2種類があります。

プラグインを使用したXML-RPCの無効化

最も簡単で迅速な方法は、専用プラグインの利用です。おすすめは Disable XML-RPC Pingbackプラグインです。これをインストールすることで、ピンバック機能を自動的に無効にでき、XML-RPCを使った攻撃を未然に防ぐことが可能です。

手動でのXML-RPC無効化

すべてのXML-RPCリクエストを停止するもう一つの方法は、手動で行うことですルート・ディレクトリにある「.htaccess」ファイルに移動し、。以下のコードを追加します。ファイルはサイトのルートディレクトリにあります。

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 000.00.000.000
</Files>

特定のIPアドレスからのアクセスのみ許可したい場合は、「000.00.000.000」を許可したいIPに書き換えましょう。

19.ホットリンクをブロックする

ホットリンクとは、他人のWebサイトが自分のサイト上の画像などのアセットを直接表示することを指します。このような行為が繰り返されると、自身のWebサーバーのリソースが消費され、ページの表示速度が低下する原因になります。

自分のコンテンツがホットリンクされているかを確認するには、Google画像検索で以下のクエリを入力します。「yourwebsite.com」の部分は自身のドメイン名に置き換えてください。

inurl:yourwebsite.com -site:yourwebsite.com

ホットリンクを防ぐ方法はいくつかあります。具体的には、FTPクライアントの利用、WordPressのセキュリティプラグインの導入、コンテンツ配信ネットワーク(CDN)の設定変更、またはレンタルサーバーのコントロールパネル上での設定変更が考えられます。

20.ファイル権限を管理する

ファイルとフォルダーのアクセス権限を適切に設定することで、第三者がWordPressの管理者権限を不正に取得するのを防げます。具体的には、どのユーザーがファイルを読み取り・書き込み・実行できるかを制御することが重要です。

ファイルとフォルダーの権限を管理は、レンタルサーバーのファイルマネージャー、FTPクライアント、あるいはコマンドラインを通じて設定できます。

多くの場合、ファイルやフォルダーにはあらかじめ初期権限が割り当てられていますが、用途によって適切な設定が異なることがあります。特に「wp-admin」フォルダーと「wp-config」ファイルについては、「所有者」のみが書き込みを行えるように設定するのが基本です。

まとめ

サイバー攻撃は、マルウェアの仕込みからDDoS攻撃に至るまで、多様な手法で実行される可能性があります。WordPressは世界中で広く使われているCMSであるため、攻撃者にとって格好の標的になりがちです。

ただし、WordPressサイトのセキュリティ強化は「一度設定して終わり」ではありません。攻撃手法は日々進化しているため、対策も継続的に見直していく必要があります。リスクを完全にゼロにすることはできませんが、適切なセキュリティ対策を講じることで被害の可能性を大きく減らすことができます。

この記事が、WordPressサイトを守るための対策や考え方の理解に役立てば幸いです。

WordPressのセキュリティに関するよくある質問

なぜ自分のWordPressサイトが攻撃対象になるのでしょうか?

WordPressサイトには、古いプラグインの使用や、簡単に推測できるパスワードの設定、「wp-admin」ディレクトリへの保護が不十分なアクセスなど、さまざまなセキュリティ上の弱点が潜んでいる可能性があります。こうした脆弱性を放置せず、定期的にメンテナンスを実施することが重要です。潜在的なリスクからサイトを守るためには、WordPressセキュリティチェックリストを活用し、必要な対策が実施されているかを定期的に確認してください。

おすすめのWordPressセキュリティプラグインはありますか?

どのプラグインが最適かはサイトの種類や目的によって異なりますが、包括的な保護機能を備えたセキュリティプラグインとしては、「Wordfence」や「Sucuri」が特に評価されています。両プラグインともに、マルウェアスキャン機能や、悪意あるアクセスを遮断するWebアプリケーションファイアウォール、トラフィック監視機能などを備えています。ECサイトにはSucuriが向いており、無料でしっかりとしたセキュリティ対策を取りたい場合にはWordfenceが堅実な選択肢です。

Author
著者

Yūto Ōmura

イギリスから日本へ帰国後、翻訳者として8年従事。英国の大学ではメディア・映像を専攻し、以来、日英両言語にて10年以上複数のウェブサイトおよび動画メディアを運営。プライベートでは、料理をしたり、家族で小旅行に行ったりするのが好きです!