WordPressのセキュリティ対策をしたい…
WordPressには多くの機能があります。そのすべてにセキュリティ対策をしようとすると、初心者には大変です。
たとえば、WordPressブログを始めるとき、読者からのコメントがいらなければコメント機能をオフにします。
小さく始めて、徐々に慣れてコメントが欲しいな、と思ったらコメント機能をオンにして、コメントのセキュリティ対策をする。1つずつやっていくのがおすすめです。
そこで、今回はWordPressで最初にやっておきたい必要最低限のセキュリティ対策について解説します。
全部で8つ!
この記事を書いた人
当ブログの信頼性・成長記録(開く)
【2023年2月5日】
過去28日間でGoogle検索における当ブログへのクリック数が6K(6000)クリックに到達しました。
- WordPressセキュリティ対策の初心者向け全体像、設定方法、注意点、おすすめプラグイン。
WordPress初期のセキュリティ対策8つ
- ログイン環境を設定する
- 投稿者アーカイブを無効化する
- コメント機能をオフにする
- WordPressのバージョン情報を削除する
- XML-RPCを無効化する
- REST APIを無効化する
- 設定ファイルのパーミッションを変更する
- SSL、WAFを設定する
1つずつ見ていきますね。
①ログイン環境を設定する
WordPressのログイン画面は、サイトURLの後に「/wp-login.php」や「/wp-admin/」と入力すれば誰でもアクセスできてしまいます。
WordPressの初期状態はIDとパスワードを入力するだけでログイン可能なため、さまざまな不正ログイン攻撃の対象になります。
ブルートフォース攻撃(IDとパスワードを総当たりで推測する)やパスワードリスト攻撃(流出したパスワードから推測する)、辞書攻撃(よく使われるパスワードを用いてログインを試みる)などがあります。
ログインURLを変更する
ログインURLをオリジナルに変更することで、攻撃者からログイン画面を守ります。
「/wp-login.php」や「/wp-admin/」を入力しても、ログイン画面は現れずエラーになるようにします。
ログインCAPCHAを設定する
ログイン画面に、ひらがなや英数字を手入力する項目を追加します。
ログイン試行回数を制限する
プログラムによる総当たり攻撃などから守るため、ログインがロックされるまでのエラー回数を決めます。
ログインエラーメッセージを簡略化する
攻撃者のヒントにならないようログインエラーのメッセージを簡略化します。
ログインログを記録する
ログインの履歴データを記録して、不自然なログインがないかチェックします。
②投稿者アーカイブを無効化する
WordPressの初期状態は、投稿者アーカイブでログインIDがサイト(またはソースコード)に表示されるようになっています。
ログインIDを隠すため、投稿者アーカイブを無効化します。
③コメント機能をオフにする
コメント機能は当面不要な方
コメント機能もログインIDがサイト(またはソースコード)に表示されるようになっていますので、コメント機能をオフにします。
WordPress管理画面の左側にある[設定]⇒[ディスカッション]メニューをクリックして、「新しい投稿へのコメントを許可」のチェックボックスを外します。
画面を下にスクロールして「変更を保存」ボタンを押します。
コメント機能を使う方
コメント機能を使う方は、コメントをスパムから保護し、コメント投稿者クラスを削除する設定をします。
④WordPressのバージョン情報を削除する
サイトのソースコードには、WordPressのバージョン情報が記されています。
バージョンが最新版でない場合、古いバージョンの脆弱性を攻撃されるおそれがあります。
WordPressのバージョン情報がソースコードに表示されないようにします。
⑤XML-RPCを無効化する
XML-RPCとは、WordPressの外部から記事を投稿できる機能です。
この機能を悪用して、ログインの試行回数制限でも防げないブルートフォース攻撃をされた事例がありました。
WordPressの管理画面で普通に記事を投稿する使い方なら、XML-RPC機能は不要ですので無効化します。
⑥REST APIを無効化する
REST APIは、主にWordPressの開発者が使う機能です。
過去に何度か脆弱性が指摘され、データ改ざんの被害も発生しました。
WordPressのバージョンアップにつれて脆弱性は修正されていますが、初心者には不要ですのでこれも無効化します。
⑦設定ファイルのパーミッションを変更する
WordPressには「wp-config.php」という設定ファイルがあります。
この設定ファイルのパーミッション(閲覧編集の権限)が、初期状態ではゆるい設定になっているためデータ改ざんの被害が過去にありました。
パーミッションの数値を変更してセキュリティレベルを高めます。
⑧SSL、WAFを設定する
SSLとは、サイトをSSL化することによりセキュリティを高めてくれます。SSL化したサイトはドメインの最初の部分が「http」ではなく「https」になります。
WAFはWeb Application Firewallの略称で、クロスサイトスクリプティングやSQLインジェクション攻撃などからサイトを守ります。
これはWordPressではなくサーバー側で設定します。
設定方法
WordPressプラグイン「XO Security」を使う
上記8つのセキュリティ対策のうち、①〜⑥の設定はWordPressプラグイン「XO security」をおすすめします。
▼XO Securityの設定方法
WordPressプラグイン「All in One WP Security & Firewall」を使う
上記⑦(設定ファイルのパーミッションを変更する)の設定は、WordPressプラグイン「All in One WP Security & Firewall」で対応するか、ご利用中のレンタルサーバー会社へ問い合わせてみましょう。
▼WordPress設定ファイル等のパーミッションを変更する方法
パーミッション番号が「644」より低ければ大丈夫ですよ
当ブログで使っているレンタルサーバー「ConoHa WING」は対応済なので、設定不要です。
レンタルサーバーのコントロールパネルで設定する
上記⑧(SSL、WAFを設定する)については、ご利用中のレンタルサーバーのコントロールパネルから設定できます。
下記はConoHa WINGの設定方法です。
▼SSL化の設定方法
▼WAFの設定方法
セキュリティ対策で気をつけたいこと
ソフトウェアを更新する
WordPress自体やプラグインを最新版に保つことによって、古いバージョンの脆弱性からサイトを守ります。
更新したときはサイトの動作確認も忘れずに
サイトの表示速度が遅くならないようにする
セキュリティ対策に有用といわれるプラグインは多くありますが、あまり入れすぎるとサイトの表示速度が遅くなります。
干渉しないテーマやプラグインを選ぶ
最近はWordPressテーマやプラグインが多機能化して、干渉問題が気になります。
せっかくセキュリティ対策をしても、ソフトウェアの干渉でサイトが動かないのでは本末転倒ですよね。
当ブログはWordPressテーマ「SWELL」を使っています。本記事ではなるべくサイトの表示速度を保ち、干渉問題を起こさないプラグインを選びました。
SWELLの関連記事▼
少しでもご参考になりましたら幸いです。