WordPressのセキュリティ:サイトを保護および保護するための16のステップ
公開: 2021-08-18セキュリティに関しては、WordPress固有のタイプのセキュリティは存在しません。 セキュリティに関するすべての問題は、すべてのWebサイトまたはアプリケーションに共通しています。
ただし、WordPressのセキュリティ問題は、Webの約40%に電力を供給し、オープンソースであるため、非常に興味深いものです。 WordPressコアまたはプラグインのいずれかに脆弱性が見つかった場合、それを使用している他のWebサイトはすべて同じコードを使用しているため、脆弱になります。
一方、Webサイトのセキュリティを強化するために使用できるプラグインはかなりの数あります。
このコラムでは、WordPressサイトをさまざまな種類の脆弱性に対して強化する方法を学習しますが、この記事の範囲はより広く、すべての種類のWebアプリケーションに適用されます。
WordPressの脆弱性に対する保護
最も一般的なタイプの脆弱性は次のとおりです。
- バックドア。
- ファーマハック。
- ブルートフォースログインの試み。
- 悪意のあるリダイレクト。
- クロスサイトスクリプティング(XSS)。
- サービス拒否(DDoS)。
これらは一般的なタイプの脆弱性ですが、これらだけに限定されているわけではありません。 一般的に、セキュリティについて考えるときは、360度の方法で考える必要があります。
Webサイトをハッキングする方法は限られていません。 攻撃者は多くの手法を使用してサイトにアクセスできます。
たとえば、彼らはあなたのPCを盗み、あなたのコンピュータに物理的にアクセスすることができます。 また、監視技術を使用して、パブリックネットワークからWebサイトにログインするときにパスワードを確認することもできます。
攻撃者の生活を少し難しくするために、WordPressのインストールを強化する方法を詳しく見ていきましょう。
WordPress Webサイトのセキュリティを強化するためのこれらの16の方法のそれぞれについて詳しく知るために、読み続けてください。
- HTTPSを使用します。
- 常に強力なパスワードを使用してください。
- パスワードマネージャーを使用してパスワードを保存します。
- ログインフォームでキャプチャを有効にします。
- ブルートフォースログインの試行を防止します。
- 2要素認証を使用します。
- 最新のプラグインを維持します。
- セキュリティHTTPヘッダーを設定します。
- WordPressファイルの正しいファイル権限を設定します。
- WordPressからのファイル編集を無効にします。
- 不要な機能をすべて無効にします。
- WordPressバージョンを非表示にします。
- WordPressファイアウォールをインストールします。
- バックアップを保持します。
- SFTPを使用します。
- ユーザーのアクティビティを監視します。
1.HTTPSでサイトを保護する
HTTPSでWebサイトを保護することから始めるのは偶然ではありません。
あなたがすることはすべて、ネットワークとワイヤーケーブルを通って流れます。 HTTPは、ブラウザとサーバー間でデータをプレーンテキストとして交換します。 したがって、サーバーとブラウザの間のネットワークにアクセスできる人なら誰でも、暗号化されていないデータを表示できます。
接続を保護しないと、機密データが攻撃者に公開されるリスクがあります。 HTTPSを使用すると、データは暗号化され、攻撃者はネットワークにアクセスできる場合でも、送信されたデータを読み取ることができなくなります。
したがって、Webサイトを保護するための最初のステップは、HTTPSを有効にすることです。 まだHTTPSに移行していない場合は、このガイドを使用してWordPressをHTTPSに移行できます。
HTTPからHTTPSへの移行に使用できるツールとWordPressプラグイン
- より良い検索置換。
- データベース検索および置換スクリプト。
2.常に強力なパスワードを使用する
ハッカーがWebサイトにアクセスする最も一般的な方法は、弱いパスワードまたはpwnされたパスワードを使用することです。 これらにより、ブルートフォース攻撃に対して脆弱になります。
以下にリストされている他のどの方法よりも強力なパスワードを使用して、セキュリティを強化します。
常に強力なパスワードを使用し、パスワードがpwnされているかどうかを定期的に確認してください。
パスワードのセキュリティを強化するWordPressプラグイン:
- Pwnedパスワードを禁止します。
- PasswordPolicyManagerをダウンロードします。
- パスワードbcrypt。
3.パスワードマネージャーを使用してパスワードを保存します
パブリックネットワークから作業しているときにログインすると、ラップトップで入力している内容やパスワードを記録している内容を誰が監視しているかを確認できません。
この問題を解決するには、パスワードマネージャーを使用してパスワードに簡単にアクセスし、安全な場所に保存します。
PCにアクセスしても、パスワードを取得することはできません。 パスワードマネージャーはブラウザーベースであり、WordPressプラグインではありません。
パスワードマネージャーブラウザアドオン:
- LastPass。
- 1Password。
- NordPass。
4.ログインおよび登録フォームにCAPTCHAを追加します
WebサイトをHTTPSで保護し、強力なパスワードを使用すると、ハッカーの生活はかなり困難になります。
ただし、ログインフォームにCAPTCHAを追加することで、さらに困難にすることができます。

キャプチャは、ブルートフォース攻撃からログインフォームを保護するための優れた方法です。
WordPressログインでキャプチャを追加するプラグイン:
- ログインいいえキャプチャreCAPTCHA。
- ログインセキュリティreCAPTCHA。
5.ブルートフォースログインの試みから保護する
ログインCAPTCHAは、特定の時点までのブルートフォース攻撃に対する保護を提供しますが、完全ではありません。 多くの場合、キャプチャトークンが解決されると、それらは数分間有効になります。
たとえば、GooglereCaptchaは2分間有効です。 攻撃者は、この2分間を使用して、その間にログインフォームへのブルートフォースログインを試みることができます。
この問題を解決するには、失敗したログイン試行をIPアドレスでブロックする必要があります。
ブルートフォース攻撃を防ぐためのWordPressプラグイン:
- WP制限ログイン試行。
- 再ロードされたログイン試行を制限します。
6. 2要素(2FA)認証のセットアップ
安全なパスワードとログインフォームのキャプチャを使用すると、より保護されます。
しかし、ハッカーが監視方法を使用し、ビデオに入力したパスワードを記録してWebサイトにアクセスした場合はどうなるでしょうか。
彼らがあなたのパスワードを持っている場合、攻撃者からあなたのウェブサイトを保護できるのは二要素認証だけです。

2FA認証をセットアップするためのWordPressプラグイン:
- 2要素。
- Google認証システム。
- WordPress二要素認証(2FA、MFA)。
7.WordPressCoreとプラグインを最新の状態に保つ
脆弱性はWordPressコアとプラグインで頻繁に発生し、発生すると発見されて報告されます。 既知の報告されたファイルの穴からWebサイトがハッキングされるのを防ぐために、プラグインを最新バージョンに更新してください。
自動更新に切り替えると、知らないうちにWebサイトが破損する可能性があるため、お勧めしません。
ただし、これらの更新にはコアのセキュリティパッチが含まれているため、wp-config.phpにこのコード行を追加して、WordPressコアのマイナー更新を有効にすることを強くお勧めします。
define('WP_AUTO_UPDATE_CORE'、'マイナー');
8.セキュリティHTTPヘッダーを設定します
セキュリティヘッダーは、Webサイトを閲覧するときにブラウザーとサーバー間で実行できるアクションを制限することにより、保護の追加レイヤーをもたらします。
セキュリティヘッダーは、クリックジャッキングおよびクロスサイトスクリプティング(XSS)攻撃から保護することを目的としています。
セキュリティヘッダーは次のとおりです。
- Strict-Transport-Security(HSTS)。
- コンテンツ-セキュリティ-ポリシー。
- Xフレーム-オプション。
- X-Content-Type-Options。
- メタデータヘッダーをフェッチします。
- リファラー-ポリシー。
- キャッシュ制御。
- Clear-Site-Data。
- 機能-ポリシー。
各セキュリティヘッダーの説明については詳しく説明しませんが、それらを修正するためのプラグインをいくつか紹介します。
セキュリティヘッダーを有効にするWordPressプラグイン:
- Webサイトのセキュリティを向上させるHTTPヘッダー。
- GDセキュリティヘッダー。
9.WordPressファイルの正しいファイル権限を設定します
ファイルのアクセス許可は、WordPressファイルをホストするOSのルールです。 これらのルールは、ファイルの読み取り、編集、および実行の方法を設定します。 このセキュリティ対策は、特に共有ホスティングでWebサイトをホストする場合に不可欠です。

正しく設定されていない場合、共有ホスティング上の1つのWebサイトがハッキングされると、攻撃者はWebサイト上のファイルにアクセスし、そこにあるコンテンツ(特に、wp-config.php)を読み取って、Webサイトに完全にアクセスできます。
- すべてのファイルは644である必要があります。
- すべてのフォルダは775である必要があります。
- wp-config.phpは600である必要があります。
上記のルールは、ホスティングユーザーアカウントがファイルを読み取りおよび変更でき、Webサーバー(WordPress)がファイルおよびフォルダーを変更、削除、および読み取りできることを意味します。
他のユーザーはwp-config.phpのコンテンツを読むことができません。 wp-config.phpに600を設定すると、Webサイトがダウンする場合は、640または644に変更してください。
10.WordPressからのファイル編集を無効にする
管理者バックエンドからファイルを編集できるのはWordPressの既知の機能です。
開発者はSFTPを使用し、これを使用することはめったにないため、実際には必要ありません。

11.不要な機能をすべて無効にする
WordPressには、まったく必要ないかもしれない多くの機能が付属しています。 たとえば、WordPressのXML-RPCエンドポイントは、外部アプリケーションと通信するために作成されました。 攻撃者はこのエンドポイントをブルートフォースログインに使用できます。
プラグインDisableXML-RPC-APIを使用してXML-RPCを無効にします。
WordPressに組み込まれているもう1つの問題は、Webサイト上のすべてのユーザーを一覧表示するためのREST-APIエンドポイントを提供することです。
WordPressのインストールに「/wp-json/ wp / v2 / users」を追加すると、ユーザー名とユーザーIDのリストがJSONデータとして表示されます。
このコード行をfunctions.phpに追加して、ユーザーのREST-APIを無効にします
function disable_users_rest_json($ response、$ user、$ request){
戻る '';
} add_filter('rest_prepare_user'、'disable_users_rest_json'、10、3);12.WordPressバージョンを非表示にする
WordPressは、ページのHTMLにWordPressのバージョンを含むコメントを自動的に挿入します。 インストールされているWordPressのバージョンを追加情報として攻撃者に提供します。

たとえば、コアに脆弱性があると報告されているWordPressバージョンを使用している場合、攻撃者は、報告されている手法を使用してWebサイトをハッキングできることを知っています。
これらのプラグインを使用してWordPressバージョンのメタタグを非表示にします。
- メタジェネレーターとバージョン情報リムーバー。
- DawsunによるWPジェネレーターリムーバー。
13.WordPressファイアウォールをインストールします
ファイアウォールは、Webサイトで実行され、着信HTTP要求を分析するWebアプリケーションです。 高度なロジックを適用して、脅威となる可能性のあるリクエストを除外します。
ファイアウォールの組み込みルールの上にルールを設定して、リクエストをブロックすることができます。 一般的なタイプの攻撃の1つは、SQLインジェクションです。
SQLインジェクションに対して脆弱なWordPressプラグインを実行していて、それについて知らないとします。 ファイアウォールを実行している場合、攻撃者がプラグインのセキュリティ上の欠陥を知っていても、攻撃者はWebサイトをハッキングすることはできません。
これは、ファイアウォールがSQLインジェクションを含むリクエストをブロックするためです。
ファイアウォールは、IPからのこれらの要求をブロックし、危険な要求が連続して来るのを防ぎます。 ファイアウォールは、単一のIPからの要求が多すぎることを検出してブロックすることにより、DDoS攻撃を防ぐこともできます。
Webサーバーに要求が行われる前に実行されるDNSレベルのファイアウォールを実行することも可能です。 例はCloudflareDNSファイアウォールです。
この方法の利点は、DDoS攻撃に対してより堅牢であるということです。
サーバー上で実行されるアプリケーションレベルのファイアウォールにより、HTTPリクエストがWebサーバーにヒットし、それをブロックします。 これは、サーバーがそれらをブロックするためにいくつかのCPU/RAMリソースを消費することを意味します。
DNSレベルのファイアウォールを使用すると、サーバーリソースを消費しないため、攻撃に対してより持続可能になります。
使用できるWordPressファイアウォールプラグイン:
- ワードフェンスセキュリティ。
- スクリ。
- オールインワンWPセキュリティ&ファイアウォール。
- BulletProofセキュリティ。
- シールドセキュリティ。
注:ファイアウォールをインストールする場合は、ログインブルートフォース保護や2F認証などの機能が備わっている可能性があり、上記のプラグインをインストールする代わりに、ファイアウォールの機能を使用できます。
14.バックアップを保持する
ハッキングされた場合、回復するための最良の方法は、感染していない最新バージョンからWebサイトを復元することです。
Webサイトのバックアップを保存しない場合、Webサイトのクリーンアップは時間のかかる操作になる可能性があります。 また、マルウェアがすべてのデータを消去したために、すべての情報を復元できない場合があります。
このようなシナリオを回避するには、Webサイトのデータベースとファイルの定期的なバックアップを実行してください。
ホスティングサポートが毎日のバックアップ機能を提供しているかどうかを確認し、それを有効にします。 そうでない場合は、次のプラグインを使用してバックアップを実行できます。
- BackWPup。
- UpdraftPlus。
- BackupBuddy。
- BlogVault。
15.SFTPを使用する
多くの開発者はすでにSFTPを使用してWebサーバーに接続していますが、それでも接続しない場合に備えて、これを思い出させることが重要です。
HTTPSと同様に、SFTPは暗号化を使用してネットワーク経由でファイルを転送するため、ネットワークにアクセスできる場合でもプレーンテキストとして読み取ることはできません。
16.ユーザーのアクティビティを監視する
未知のハッカーからWebサイトを保護するための多くの方法について説明しました。 しかし、Webサイト管理者にアクセスできる従業員の1人が、コンテンツにリンクを追加するなどの怪しげなことをした場合はどうでしょうか。
上記の方法のいずれも、日陰の従業員を検出することはできません。
これは、アクティビティログを監視することで実行できます。 各ユーザーのアクティビティを調べると、従業員の1人が想定外の記事を編集していることがわかります。
また、疑わしいと思われるアクティビティを調べて、どのような変更が加えられたかを確認することもできます。
ユーザーのアクティビティを監視するWordPressプラグイン:
- 活動記録。
- ユーザーアクティビティログ。
- WPアクティビティログ。
これらのプラグインが保持する期間(またはレコード数)を制限したい場合があることに注意してください。 数が多すぎると、データベースが過負荷になり、Webサイトのパフォーマンスと速度に影響を与える可能性があります。
ハッキングされた場合はどうすればよいですか?
セキュリティの専門家からのすべてのアドバイスと、ハッキングからWebサイトを強化する方法を知っていても、それはまだ起こります。
Webサイトがハッキングされた場合、回復するには以下の手順を実行する必要があります。
- ハッカーが最初にあなたの電子メールにアクセスし、あなたのWebサイトにアクセスできる可能性があるため、最初にすべての電子メールとその他の個人パスワードを変更してください。
- Webサイトを最新の既知のハッキングされていないバックアップに復元します。
- すべてのWebサイトユーザーのパスワードをリセットします。
- 利用可能なアップデートがある場合は、すべてのプラグインをアップデートします。
結論
セキュリティに関しては360°を考えてください。 すべての従業員にセキュリティの重要性を強調して、セキュリティルールに従わない場合に会社が被る可能性のある結果を理解できるようにします。
ハッキングされた場合は、]バックアップからWebサイトを回復し、すべてのパスワードをWebサイトに変更してできるだけ早く電子メールを送信してください。

