WordPress サイトを保護する 14 の方法 – ステップバイステップ
公開: 2022-01-05WordPress のセキュリティは、サイト所有者にとって最優先事項です。 なんで? WordPress サイトには毎分最大 90,000 件の攻撃があるためです。
それが十分ではない場合、Google は毎週約 20,000 の Web サイトをマルウェアのブラックリストに、50,000 をフィッシングのブラックリストに登録しています。 また、Web サイトがブラックリストに登録され、ユーザーがリスクに同意することを余儀なくされると、トラフィックの約 95% が失われます。
WordPress の最新バージョンは常に利用可能な最も安全なリリースですが、サイトをハッカーやボットに侵入されないようにするためにできることは他にもあります。
ここでは、サイトを保護するためのベスト プラクティスのヒントをいくつか紹介します。
- 優れた Web ホストを使用する
- 高品質のテーマとプラグインのみを使用する
- WordPress のコア、テーマ、プラグインを最新の状態に保つ
- 「管理者」をユーザー名として使用しないでください
- 強力なパスワードを使用する
- 二要素認証を使用する
- ログイン試行を制限する
- SSL 証明書をインストールする
- データベース接頭辞の変更
- wp-config.php および .htaccess ファイルの保護
- セキュリティ キーを追加する
- ファイル編集を無効にする
- PHP ファイルが実行されないようにする
- XML-RPC を選択的に無効にする
1. 優れた Web ホストを使用する
優れた Web ホストは、サイトへの攻撃に対する防御の最前線です。 したがって、安価な共有ホスティングを自動的に選択しないでください。 代わりに、宿題をしてください。
PHP や MySQL などの基本的な Web テクノロジの最新バージョンをサポートする評判の良いホストを使用してください。 ホストが PHP 7 をサポートしていることを確認してください。これは、WordPress の公式推奨 PHP バージョンです。
管理された WordPress ホストの選択を検討してください。 これらのサービスは WordPress 専用に設定されており、セキュリティ、バックアップ、稼働時間、パフォーマンスなど、ホスティングの重要な技術的側面をすべて管理します.
2. 高品質のテーマとプラグインのみを使用する
WPScan によると、Web サイトの脆弱性の 52% はプラグインが原因で、11% はテーマが原因です。 組み合わせると、WordPress のセキュリティの 60% 以上になります
プラグインとテーマが攻撃に耐えられるようにする最も簡単な方法は、信頼できるソースからのみダウンロードすることです。 これには、WordPress.org とプレミアム プロバイダーが含まれます。 テーマやプラグインに悪意のあるコードを隠している危険な開発者からダウンロードすると、サイトが危険にさらされる可能性があります。
ダウンロードしようとしている Web サイトが安全かどうかわからない場合は、お客様の声やレビューを調べて、必要な製品が高品質であることを確認してください。
また、使用するプラグインとテーマも十分にサポートされ、定期的に更新されていることを確認してください。 プラグインやテーマが長期間更新されていない場合、パッチが適用されていないセキュリティ ホールや、ハッキングに対して脆弱なコードが含まれている可能性があります。
最後に、実際に必要で使用するプラグインとテーマのみを保持します。 所有しているほど、ハッキングされるリスクが高くなります。 そのため、プラグインとテーマのリストを定期的に確認し、不要なものを無効にして削除してください。
3. WordPress のコア、テーマ、プラグインを最新の状態に保つ
WordPress はオープンソース ソフトウェアであり、世界中のボランティア コミュニティによって開発および保守されています。 新しいリリースごとに、セキュリティの脆弱性にパッチが適用されます。
デフォルトでは、WordPress は自動的にマイナー アップデート (WordPress 4.9.4) をインストールします。 ただし、メジャー リリース (WordPress 4.9 など) の場合は、手動で最新バージョンに更新する必要があります。
これらのコア アップデートは、サイトのセキュリティとパフォーマンスにとって重要です。 そのため、必ずサイトをバックアップし、コア アップデートが利用可能になったら適用してください。
同様に、常に最新で安全なバージョンのソフトウェアを使用できるように、プラグインとテーマを定期的に更新することも重要です。
4.「管理者」をユーザー名として使用しないでください
サイトのユーザー名として「admin」を使用しないでください。 以前のバージョンの WordPress では、デフォルトのユーザー名として「admin」を使用していたため、ハッカーが簡単に攻撃できるようになりました。
しかし、WordPress の最近のリリースではこれが変更され、インストール時にユーザーが自分のユーザー名を入力できるようになりました。 ただし、元のユーザー名を思いつくのではなく、「admin」を使用することを選択する人もいます. ただしないでください。
悪意のある攻撃者がサイトに侵入するのをより困難にしたいので、攻撃に時間がかかり、攻撃が成功する前に攻撃を特定して阻止することができます。
5.強力なパスワードを使用する
WordPress の管理者アカウント、データベース、ホスティング アカウント、メール アドレス、およびすべての FTP アカウントには、常に強力で一意のパスワードを作成してください。 ユーザー名と同様に、パスワードもハッカーが推測するパズルのピースの 1 つです。パスワードが強力であるほど、ハッカーがサイトにログインするのが難しくなります。
インストール中、WordPress は強力なパスワードを強制しようとし、弱いパスワードを入力した場合はチェックボックスをオンにするよう求めます。 独自のパスワードを作成したい場合は、Secure Password Generator などのツールを使用して強力なパスワードを作成できます。
6.二要素認証を使用する
強力なユーザー名とパスワードを使用しても、ブルート フォース攻撃は依然として多くの Web サイトにとって問題です。 ここで、2 要素認証が役に立ちます。
2 要素認証では、ログイン プロセスにもう 1 つの手順が追加され、ユーザーは通常のログイン資格情報を入力するだけでなく、携帯電話に送信されたコードを入力する必要があります。 これにより、自動攻撃を阻止し、サイトがハッカーの犠牲にならないようにすることができます。
iThemes Security などのプラグインは、2 要素認証を実装できます。 2 要素認証のような無料のプラグインもあり、この追加のセキュリティ層をサイトに追加できます.
7. ログイン試行を制限する
デフォルトでは、WordPress アカウントへのログインは何度でも試行できます。 これは、パスワードを忘れがちで、1 回目または 3 回目でもパスワードを正しく取得できない場合に便利な場合がありますが、ブルート フォース攻撃を実行するハッカーにとっても便利です。ユーザー名とパスワードの組み合わせ。
これは、ユーザーがサイトで試行できるログイン試行の失敗回数を制限することで簡単に修正できます。 WP Limit Login Attempts のような無料のプラグインを使用すると、ログイン試行を制限し、IP アドレスを一時的にブロックできます。
8. SSL 証明書をインストールする
サイトに SSL 証明書をインストールすることは必須です。e コマース ストアがある場合は特にそうです。 ハッカーがユーザーのブラウザーとサーバーの間で機密情報を傍受するのが難しくなるだけでなく、Google が現在、すべてのサイトに機密情報を含める必要があると主張しているからです。
2018 年 7 月の Chrome 68 のリリース以降、HTTPS なしで読み込まれるウェブページは「安全ではない」とマークされます。 つまり、ユーザーが SSL 証明書を持たないサイトにアクセスしようとすると、サイトが信頼できないという警告が表示されます。
Cloudflare によると、Web 訪問者の半数以上がこれらの警告を目にすることになるため、この発表は重要です。
SSL証明書の取得はますます簡単になっています。 Let's Encrypt は無料のオープン ソース証明書を提供しますが、ホスティング会社は通常、無料で (場合によっては無料で) 提供します。
9. データベースのプレフィックスを変更する
デフォルトでは、WordPress はサイトのデータベース内のすべてのテーブルのプレフィックスとして wp_ を使用します。 つまり、WordPress の一般的な知識であるデフォルトを使用している場合、ハッカーはテーブル名を簡単に推測できるため、SQL インジェクションに対して脆弱になります。
これを修正する簡単な方法は、ランダム文字列ジェネレーターを使用して5jiqtu69dg_
のようにプレフィックスをランダムなものに変更することです。 テーブルのプレフィックスを更新するには、サイトのファイル ディレクトリのルートにある wp-config.php ファイルを開き、次の行を見つけます。
$table_prefix = 'wp_';
私の例を使用すると、次のように行を置き換えます。
$table_prefix = '5jiqtu69dg_';
次に、データベースで使用されているプレフィックスを更新する必要があります。 iThemes Security などのセキュリティ プラグインを使用すると、すばやく簡単に行うことができますが、phpMyAdmin を使用して手動で行う方法については、こちらを参照してください。
10. wp-config.php および .htaccess ファイルの保護
サイトの wp-config.php ファイルは通常、Web サイトのルート フォルダーにあり、データベースの名前、ホスト、ユーザー名、パスワードなど、WordPress のインストールに関する重要な情報が含まれています。 一方、.htaccess は、ディレクトリ レベルのサーバー構成を設定し、プリティ パーマリンクを有効にし、リダイレクトを可能にする隠しファイルです。
これらの重要なファイルへのアクセスを防ぐのは簡単です。 wp-config.php を保護するには、以下を .htaccess ファイルに追加するだけです。
<ファイル wp-config.php> 注文許可、拒否 全部否定する </ファイル>
または、WordPress が自動的に検索するため、wp-config.php ファイルを上位のディレクトリに移動することもできます。
.htaccess への不要なアクセスを停止するには、コード内のファイル名を変更するだけです。
<ファイル .htaccess> 注文許可、拒否 全部否定する </ファイル>
11. セキュリティ キーを追加する
WordPress のセキュリティ キーとソルトは、ブラウザの Cookie に保存されている情報を暗号化し、パスワードやその他の機密情報を保護します。 AUTH_KEY
、 SECURE_AUTH_KEY
、 LOGGED_IN_KEY
、およびNONCE_KEY
の合計 4 つのセキュリティ キーがあります。
これらの認証キーは、基本的にランダム変数のセットであり、パスワードのクラックを困難にします。 「wordpress」のような暗号化されていないパスワードは、攻撃者が解読するのにそれほど労力を要しません。 しかし、「L2(Bpw 6#:S.}tjSKYnrR~.Dys5c>+>2l2YMMSVWno4`!%wz^GOBf};uj*>-tkye」のような長くランダムなパスワードは解読がはるかに困難です。
セキュリティ キーとソルトの追加は手動プロセスであり、簡単に行うことができます。 方法は次のとおりです。
- セキュリティ キーとソルトの新しいセットを取得します。 ここでランダムに生成できます。
- 次に、wp-config.php ファイルを更新します。 ファイルを開き、下のセクションが見つかるまで下にスクロールし、古い値を新しいキーとソルトに置き換えます。
/**#@+ *認証の一意のキーとソルト。 * *これらを別のユニークなフレーズに変更してください! * これらは {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org 秘密鍵サービス} を使用して生成できます。 * いつでもこれらを変更して、既存のすべての Cookie を無効にすることができます。 これにより、すべてのユーザーが再度ログインする必要があります。 * * @since 2.6.0 */ define('AUTH_KEY', 'ここに一意の変数を追加'); define('SECURE_AUTH_KEY', 'ここに一意の変数を追加'); define('LOGGED_IN_KEY', 'ここに一意の変数を追加'); define('NONCE_KEY', '一意の変数をここに追加'); define('AUTH_SALT', 'ここに一意の変数を追加'); define('SECURE_AUTH_SALT', 'ここに一意の変数を追加'); define('LOGGED_IN_SALT', 'ここに一意の変数を追加'); define('NONCE_SALT', 'ここに一意の変数を追加'); /**#@-*/
- wp-config.php ファイルを保存します。 WordPress サイトから自動的にログアウトされ、再度ログインする必要があります。
12.ファイル編集を無効にする
WordPress には、プラグインとテーマ ファイル用の内部コード エディターがあります。 これは、ファイルをすばやく変更したい管理者にとって便利ですが、ハッカーや高レベルのユーザーもファイルを変更できることを意味します。 この機能は、WordPress 管理画面の[外観] > [エディター]で見つけることができます。
wp-config.php ファイルでファイル編集を無効にすることができます。 ファイルを開いて、次のコード行を追加するだけです。
define('DISALLOW_FILE_EDIT', true);
WordPress 管理画面ではなく、FTP または cPanel 経由でプラグインとテーマを編集できます。
13. PHP ファイルが実行されないようにする
ハッカーが WordPress でマルウェアをアップロードする一般的なフォルダーはwp-content/uploads ですが、 wp-includes/もあります。 これらのフォルダーでファイルが実行されないようにするには、テキスト エディターで新しいテキスト ファイルを作成し、次のコードを貼り付けます。
<ファイル *.php> 全部否定する </ファイル>
次に、このファイルを .htaccess として保存し、FTP または cPanel 経由で/wp-content/uploadsフォルダーとwp-includes/フォルダーの両方にアップロードします。
14. XML-RPC を選択的に無効にする
XML-RPC (XML リモート プロシージャ コール) は、Web アプリやモバイル アプリを WordPress サイトに接続するのに役立つ API です。 WordPress 3.5 ではデフォルトで有効になっていましたが、その後、ブルート フォース攻撃を大幅に増幅することがわかっています。
たとえば、ハッカーがサイトで 500 の異なるパスワードを試したい場合、通常は 500 回のログイン試行を行う必要があります。 しかし、XML-RPC を使用すると、ハッカーはsystem.multicall
関数を使用して、1 つの HTTP 要求で多数のユーザー名とパスワードの組み合わせを試すことができます。
サイトでこの機能を完全に無効にするのは簡単ですが、Jetpack などのプラグインの機能が失われることになります。 代わりに、特別に設計されたプラグインを使用して XML-RPC を実装および無効にする方法を選択することをお勧めします。
おまけ: 脆弱性をチェックする方法
サイトの脆弱性をチェックするには、オンライン サイト スキャナーまたはプラグインを使用する方法がいくつかあります。
これらの無料のオンライン ツールでは、サイトの URL を入力するだけで、既知の脆弱性についてサイトのスキャンが開始されます。
WordPress セキュリティ スキャン– このツールは、基本的なセキュリティの問題を受動的にチェックします。 高度なテストを行うには、プレミアム プランにアップグレードする必要があります。
Sucuri SiteCheck – 既知のマルウェア、ブラックリストのステータス、Web サイトのエラー、および古いソフトウェアについて Web サイトをチェックします。 プレミアム アップグレードにより、このツールはマルウェアのクリーンアップ、DDoS/ブルート フォース保護、ブラックリストの削除、およびセキュリティ監視を行います。
WPScan – GitHub でホストされているこのブラック ボックスの WordPress 脆弱性スキャナーを使用すると、サイトをスキャンして、コア、プラグイン、およびテーマを使用して既知の脆弱性を見つけることができます。 このアプリケーションを実行するには、ターミナルを使用する必要があります。 個人使用は無料で、Sucuri が後援しています。
おまけ: 最高の WordPress セキュリティ プラグイン
WordPress サイトにセキュリティ プラグインをインストールすると、起こりうる攻撃に対する別の防御ラインが追加されます。 サイトスキャンなど、サイトを保護するための幅広い機能を提供し、サイトが侵害されたときに通知することができます.
上位 3 つのプラグインは次のとおりです。
ワードフェンス
WordFence は非常に人気のある無料のセキュリティ プラグインで、200 万以上のアクティブなインストールとプレミアム オプションが利用可能です。 最新のファイアウォール ルール、マルウェア シグネチャ、悪意のある IP アドレスを取り込み、Web サイトを維持する「脅威防御フィード」を備えています。
Web アプリケーション ファイアウォールは悪意のあるトラフィックを特定してブロックし、リアルタイムの IP ブラックリストは悪意のある IP からのすべてのリクエストをブロックして、負荷を軽減しながらサイトを保護します。
このプラグインは、ログイン試行を制限し、強力なパスワードを適用し、その他のログイン セキュリティ対策を実施することで、ブルート フォース攻撃から保護します。 サイトで何らかの種類の感染が見つかった場合は、電子メールで通知されます。 サイトへのトラフィックをリアルタイムで監視して、攻撃を受けているかどうかを確認することもできます.
スクリ
無料のセキュリティ プラグインの場合、Sucuri のセキュリティ プラグインは、サイトに加えられた変更を監視できるセキュリティ アクティビティ監査、ファイルの整合性監視、リモート マルウェア スキャン、ブラックリスト監視、およびセキュリティ強化対策など、包括的な機能セットを提供します。
プラグインの「ハッキング後のセキュリティ アクション」セクションでは、侵害後に行うべき 3 つの重要な事項について説明します。 また、セキュリティ通知を有効にして、サイトで感染が見つかった場合や侵害された場合に、すぐに警告を受けるようにすることもできます。
プレミアム バージョンにアップグレードすると、Web サイト ファイアウォールにアクセスして保護を強化できます。
iThemes セキュリティ
iThemes Security の無料版は、WordPress をロックダウンし、一般的な穴を修正し、ユーザー資格情報を強化するのに役立ちますが、プロ版は、必要なほぼすべてのセキュリティ対策を備えています.
2 要素認証、マルウェア スキャンのスケジューリング、およびユーザー アクションのログ記録があるため、ユーザーがいつコンテンツを編集したか、ログインまたはログアウトしたかを追跡できます。 セキュリティ キーとソルトの更新、パスワードの有効期限の設定、サイトへの Google reCAPTCHA の追加を行うことができます。
その他の機能には、オンライン ファイル比較、WP-CLI 統合、および一時的な権限昇格が含まれているため、一時的な管理者または編集者のアクセス権をサイトに付与できます。
結論
セキュリティの脅威から WordPress サイトを保護する正しい方法はありません。 あなたができる最善の方法は、WordPress のコア、テーマ、およびプラグインを最新の状態に保ち、脆弱性にパッチを当て、重要なファイルを保護し、ユーザーに資格情報の強化を強制するさまざまなソリューションを実装することです。
定期的なバックアップのスケジュールも必須です。 いつサイトが攻撃を受けて倒れるかわからないため、緊急時に備えてサイトを迅速に復旧できるように準備を整え、計画を立てておくことが重要です。
サイトの脆弱性をスキャンし、アクションを監視し、何かが正しくない場合に警告することができる堅牢なセキュリティ プラグインに投資することも、サイトを強化し、脅威から十分に保護するのに役立ちます.