※当記事内には、商品プロモーションを含む場合があります
WordPressのセキュリティ・脆弱性対策、できることを全部まとめてみました!

今回は、WordPress(ワードプレス)のセキュリティ対策・脆弱性対策について、初心者の方からでも実践できる設定を全てまとめました。

世界中で圧倒的なシェアを誇るWordPressは、その人気ゆえに悪意のあるハッキングやマルウェア感染、アカウント乗っ取りの標的になりやすいという側面を持っています。
「自分のサイトは大丈夫かな…」と不安な方や、不正アクセス・改ざん被害を未然に防いでサイトを安全に運用したい方は、ぜひ本記事の対策一覧やチェックリストを参考にセキュリティを強化してください。
当記事を書いている人
サイト運営者
こちらの記事は、プログラミング・Web制作歴15年以上、ブログ歴10年以上のプログラマーが書いています。
プライベートでも仕事でも多くのレンタルサーバーを利用してきた経験から、サーバーに関する豊富な知識をもとに書いています。
>> プロフィール

コンテンツ

WordPressのセキュリティ対策・脆弱性対策が必要な理由

「WordPressは脆弱性が多いから危険」という声を聞いたことがあるかもしれません。
ですが、実際には、WordPressのシステム自体が特別に脆弱(セキュリティが甘い)というわけではありません。

圧倒的なシェアゆえに「標的」にされやすい

WordPressは、世界中のWebサイトの約43%で使われている、非常に人気の高いCMSです。
WordPressのシェア
引用:W3Techs

利用者が圧倒的に多い分、悪意のあるハッカーから狙われやすく、結果として脆弱性が報告される機会も多くなっています。

脆弱性の9割以上は「プラグイン」や「テーマ」から

実は、報告されるWordPressの脆弱性の大部分は、WordPress本体(コア)ではなく、拡張機能である「プラグイン」や「テーマ」に起因しています。
便利な機能を簡単に追加できる反面、開発者のセキュリティ意識にばらつきがあるため、そこがハッキングの入り口にされるケースが非常に多いです。

だからこそ、「とりあえずインストールして終わり」ではなく、本記事で紹介するような適切なセキュリティ対策が必須となります。
正しい知識を持って対策と運用を行えば、被害を受けるリスクを大きく減らすことができます。

WordPressインストール時に行うセキュリティ対策

まずは、WordPressのインストール時に行うセキュリティ対策をまとめていきます。

【必須】管理画面の「パスワード」は複雑にする

管理画面へログインするためのパスワードは、必ず複雑な文字列にしてください。
私がおすすめするパスワードの設定ルールは以下になります。

  • 数字を必ず含める
  • 大文字アルファベットと小文字アルファベットを混在させる
  • 記号を含める
  • 最低12文字以上にする

ちなみに、Web制作の仕事をしていると、
稀に、"パスワードが覚えにくいからもっと簡単なものに変更して!"と、お客さんから言われることがあります。

その場合は、危険性を説明して、お客さんにも理解してもらうようにしましょう。

【既存サイトで簡単なパスワードを設定してしまっている場合】

既に運用中のWebサイトがあり、そちらで簡単なパスワードを設定してしまっている場合には、必ず変更してください。

WordPressには自動でパスワードを生成してくれる機能があるので、
そこで作り出されたパスワードをそのまま利用するのもおすすめです。
WordPress パスワード再設定

WordPress パスワード再設定

【任意】管理画面の「ユーザー名」には「admin」以外を使用する

古いバージョンのWordPressだと、管理者のユーザー名が強制的に「admin」になっていました。
その名残りで、今でもユーザー名に「admin」を設定される方もいます。

ユーザー名は、パスワードほど複雑にする必要はないですが、「admin」以外を使用するようにしましょう。

パスワードを複雑にしておけば、ユーザー名が「admin」でも突破される可能性はかなり低くなります。
ですが、念には念を入れて、「admin」以外を使用されることをおすすめします。

【既存サイトでadminを設定してしまっている場合】

もし、「admin」を使い続けている場合、ユーザー名を変更する方法としては3つです。

  • プラグイン(Easy Username Updaterなど)で変更する
  • 新しく管理者ユーザーを作成し、その後adminユーザーを削除する
  • データベースに直接アクセスして変更する

「プラグイン」を利用して変更するのが一番簡単です。

もしデータベースに直接アクセスして変更する場合、phpMyAdminを利用しましょう。

「xxx_user」テーブルがあるので、「user_login」の項目を修正するだけです。
userテーブルの修正

【任意】データベースのテーブルプレフィクスをデフォルト値以外にする

WordPressでは、インストール時、データベース内に自動で複数のテーブルが作成されます。
そのテーブル名にはプレフィクスというモノが付けられます。

このプレフィクスは、設定ファイル「wp-config.php」で設定する事ができます。

この記述です↓
$table_prefix = 'wp_';

デフォルトの「wp_」のままにしておかず、変更するようにしましょう。

【既存サイトでwp_を設定してしまっている場合】

既に「wp_」というプレフィクスを設定してしまっている場合、プラグインを利用するのがおすすめです。
「Change Table Prefix」というプラグインがあるのですが、これが最もシンプルで使いやすいです。

ちなみに、データベースを直接修正する方法もあります。
ですが、プレフィクスの変更は複雑なので、おすすめはしていません。

【任意】認証用ユニークキーの設定

WordPressの設定ファイル「wp-config.php」には、認証用ユニークキーを設定する箇所があります。

この認証用ユニークキーをデフォルトのままにされている方も多いです。
こちらもきっちりと設定するようにしてください。

設定方法は簡単です。

レンタルサーバーのインストール機能を利用される場合には、多くの場合、自動で設定されます。
その為、設定不要な場合が多いです。

もし、手動でWordPressのインストールを行う場合には、以下のように設定してください。

■まず、ブラウザ上から以下のURLにアクセスしてください。
https://api.wordpress.org/secret-key/1.1/salt/

■自動で以下のようなユニークな文字列を作成してくれるので、それらをすべてコピペしてください。

※こちらのコードはサンプルです
define('AUTH_KEY', ']rOf*6TY+?CrvIP6pV*`]3;A~Y[@;JvN3GWeI_^nd^f3)9-1hw)xU&*[3#]#H(x');
define('SECURE_AUTH_KEY', '?Ag;:w<[%w Rum-$8e+)S)_0<w.}_?rq<+rad5[fg!>%$@{iAo=E/::J[jJO,4)r');
define('LOGGED_IN_KEY', 'p$.u|S`43aH}/(na+p%l[GoNuoE-M1V2M-8F-|ykM@}-!KIw*&~C$G2PQ|lD[$I5');
define('NONCE_KEY', 'xVFKc-jC@&2R,9BVEj4?[AbU;dwJ })[ll/tY3-S+|]mA<esqd}?!;mc8m{mm7v`'); define('auth_salt',="" ')o1=".Wr,Krl]3C.e,RD&f[FtFFP,bqSEM1]OZUr%TJAxf)+=UCukCs8H:ga/RQ4l');" define('secure_auth_salt',="" '2f7wk|jj]@qey+aw|abph9#|h]rw}cg#x="">,`1-maSpc}ATMpw-h7jt;E2txS-wkK');
define('LOGGED_IN_SALT', '`r. txj7@xxSA=1O]fy2[ZR-$:fz>WYtaaMgiixp8(t!?fO4L6%rq1ss}eBk/Ujr');
define('NONCE_SALT', 'J}EV>-7s]6UnBQ:gOM}qT gv;z|2HvDS PT|xI:|,rMAk,5( QM0+_%uV#aCQ=|L');</esqd}?!;mc8m{mm7v`');></w.}_?rq<+rad5[fg!>


■wp-config.phpに以下の記述があるので、それらを全て削除して、上記コードに貼り替えてください。

define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');

これでOKです。

WordPressインストール後すぐに行うセキュリティ対策

次は、WordPressをインストール後すぐに行うセキュリティ対策をまとめていきます。

【任意】wp-config.phpへのアクセスを制限する

WordPressには、wp-config.phpという設定ファイルがあります。

こちらにはデータベースの情報など重要な情報が記述されています。
その為、外部からアクセスできないように制限を掛けておきましょう。

設定方法は以下を参照してください。
[ WordPressのアクセス制限を掛けておくべきファイル ]

【任意】xmlrpc.phpとwp-cron.phpへのアクセスを制限する

xmlrpc.php」はピンバック機能などで、
wp-cron.php」は予約投稿やアップデート通知などで利用されるプログラムファイルです。

これらのプログラムは不正アクセスに利用されてしまうことがあるので、
もし不要であればアクセスできないように制限を掛けておきましょう。

詳細は以下を参照してください。
[ WordPressのアクセス制限を掛けておくべきファイル ]

【任意】重要なファイル、ディレクトリのパーミッション(権限)を変更する

重要なファイルやディレクトリの場合には、そのパーミッションも適切に設定することをおすすめします。

wp-config.php

wp-config.phpのおすすめのパーミッションは「400」か「600」です。
「400」に設定しておくのが最も安全で、ファイルの所有者のみがwp-config.phpの読み込みを行えるようになります。
ただし、共有サーバーでは「400」が使えない場合もあるため、その場合は「600」を設定してください。

.htaccess

「.htaccess」のおすすめのパーミッションは、WordPressの基本基準である「644」です。
よりセキュリティを高めたい場合や、お使いのレンタルサーバーの推奨がある場合は「404」や「604」を設定してみてください。

また、パーマリンクの設定時には、システム上からの「.htaccess」への書き込み権限が必要になります。
その場合には、一時的に「606」や「666」に変更し、設定完了後、必ず元の数字に戻すことを忘れないでください。

ディレクトリ

各ディレクトリのおすすめのパーミッションは「755」です。
国内の特定のレンタルサーバー(さくらのレンタルサーバ等)をお使いの場合は「705」を設定するとより安全です。

ただし、「uploads」ディレクトリへは書き込み権限を設定しないといけない場合もでてきます。
その場合には、「707」や「777」に一時的に変更することもありますが、セキュリティリスクが高いため、可能な限り「755」や「705」で動作するようサーバーの所有権限などを見直すことをおすすめします。

【任意】管理画面へのアクセス元を制限する(特定の場所でのみ作業許可)

WordPress管理画面へアクセスできる場所を、IPアドレスで固定することもおすすめです。
それにより、特定の場所(例えば、社内、事務所内)でしか記事の編集や設定変更などを行えなくすることができます。

注意点としては、作業を出来る場所が限られてしまうというところです。
例えば、営業で外出している場合や自宅からは記事の更新が行えないといった不便さは発生します。

設定方法は以下を参照してください。
[ WordPressのアクセス制限を掛けておくべきファイル ]

こちらの設定は、IPアドレスが固定されている場合のみ行えます。固定IPアドレスを取得されていない場合には、IPアドレスが変わってしまうこともあるので注意してください。

【任意】管理画面の認証方法を複雑にする

管理画面からログインする際の認証機能を強化することも重要です。
強力なのは「二段階認証」ですが、「画像認証」でもOKだと思います。

認証機能の強化はプラグインを使って行います。

「二段階認証」のおすすめプラグイン => 「Google Authenticator」 か 「Duo Universal
※従来の「Duo Two-Factor Authentication」プラグインは2024年9月にサポートが終了しています。現在は「Duo Universal」をご利用ください。
「画像認証」のおすすめプラグイン => 「Advanced noCaptcha & invisible Captcha
※プラグインは他にもあるので、上記プラグインが正常に動作しない場合には、検索して探してみてください。

【任意】WordPressのバージョン情報を見えないようにする

デフォルトのままだと、ユーザー公開側ページのヘッダー部分に、
以下のようなバージョン情報を記載したメタタグが追加されます。
<meta name="generator" content="WordPress 6.x">

ブラウザ上からソースコードを見られると使用しているWordPressのバージョンがばれてしまうので、
隠してしまいましょう。

方法は、functions.phpに以下のコードを追加するだけです。

remove_action('wp_head', 'wp_generator');

【任意】ログイン画面へのログイン履歴を残す

WordPress管理画面へのログイン履歴を残しておくことも重要です。

管理画面へは、通常は運営者や制作者以外はアクセスしません。
にもかかわらず、それ以外のIPアドレスからのログイン履歴が残っている場合、不正アクセスを疑う必要もあります。

明らかに不正なアクセスがあれば「ブルートフォース(総当たり攻撃)」の可能性もあるので、そのIPアドレスからのアクセスに制限を掛けてしまうことも可能です。

管理画面のログイン履歴を残す場合には、「User Login History」というプラグインが便利です。

【任意】プラグインを使ってユーザー名を隠す

WordPressを使っていると、ユーザー名(ログインID)を簡単に取得することが出来ます。

以下のURLにアクセスしてみてください。
https://example.com/blog/?author=1
以下のURLに自動でリダイレクトされてしまいます。

https://example.com/blog/author/ユーザー名/

これは仕様なので仕方ないのですが、「Edit Author Slug」というプラグインを使って、このユーザー名を隠すことが出来ます。

詳細な設定方法は、以下を参照してください。

設定は簡単なので、ぜひ試してみてください!

【任意】readme.html、license.txt、wp-config-sample.phpは削除

WordPressをインストールしたディレクトリ直下には、readme.htmlというファイルが保存されています。

このファイルには、WordPressのバージョン情報などが記載されているので、削除してしまいましょう。

また、license.txtwp-config-sample.phpも不要なので、削除してしまってください。

もし、WordPress本体の更新を行った際には、その都度、これらのファイルが作成されてしまいます。
面倒ですが、更新の都度、これらのファイルの削除も行ってください。

【任意(人によっては必須)】スパム対策のプラグインをインストール

コメント機能を有効にされている方は、スパム対策のプラグインは必須です。
毎日、大量のスパムコメントが送られてくると、うっとうしいですからね!

スパム対策プラグインとしては、「Akismet Anti-Spam」が一番有名です。

ただ、「Akismet Anti-Spam」は設定が面倒なのと、ライセンスの関連がよく分からないプラグインです。
私は、「Antispam Bee 」や「Throws SPAM Away」あたりが使いやすいので、おすすめしています。

【任意】wp-config.phpの保存場所を隠す

wp-config.phpは、データベース(MySQL)への接続情報などが記載されている最も重要なファイルになります。

デフォルトではインストールディレクトリの直下に入っていますが、一つ上の階層に移動させることが可能です。

特別な設定は不要で、wp-config.phpを一つ上の階層に移すだけで認識してくれます。
※元の場所に置かれているwp-config.phpは、忘れずに削除してください。

【注意点】
こちらの設定が有効なのは、WordPressをドキュメントルートにインストールしている場合です。
例えば、
https://example.com/blog/
のように、サブディレクトリにインストールしている場合には、
ブラウザ上から
https://example.com/wp-config.php
というURLにアクセス出来てしまうので、意味が無くなります。
また、階層を移動させることで、動作しなくなるプラグインや予期しないエラーが発生する場合もあるので、注意してください。

【任意】メディアの保存ディレクトリを変更する

WordPressのメディア(画像など)の保存先ディレクトリは、
wp-content/uploads/
の直下と決まっています。

その為、メディアのURLは、
https://example.com/wp-content/uploads/~
となります。

URLに「wp-content」が入ってしまっているので、
これだとWordPressを使ってWebサイトを運営していることが直ぐにばれてしまいます。

その対策として、メディアのアップロード先を変更することが可能です。

メディアのURL以外からでもWordPressを使っているかどうかを見抜く方法はあるので、これは気休め程度の対策です。
なので、時間に余裕のある方は、対応してみましょう!

変更する方法は2パターンありますが、どちらも簡単です。

【パターン①】

wp-config.phpを開いて、ファイルの一番下辺りに、以下を追記してください。

define("UPLOADS", "/photo/");

こうすることで、
メディアのアップロード先が「ドキュメントルート/photo/」に変更され、
URLもhttps://example.com/photo/~になります。

【パターン②】

ブラウザ上から、
https://example.com/wp-admin/options.php
というURLにアクセスしてください。
※ドメイン部分は、各自の環境に変更してください。

「すべての設定」という画面が表示されるので、upload_pathupload_url_pathの2項目を見つけて、以下のように変更してください。

upload_path => ../photo
upload_url_path => https://example.com/photo

これで、設定変更が完了です。

あとは、変更した場所にアップロードした画像が保存されるかを確認して、
問題がなければOKです。

【任意】高度なセキュリティ対策プラグインをインストール

WordPressには、高度なセキュリティ強化に特化したプラグインが多数存在します。

それらのプラグインに共通していることは、高度であるが故に、多機能で複雑です。
その為、使いこなすのが少し大変です。

ですが、脆弱性対策の為の強力なツールになるので、インストールして対策を行うのもおすすめです。

おすすめのプラグインは以下の通りです。

SiteGuard WP Plugin → 国産プラグインで日本語対応。ログインページのURL変更や画像認証など、ログイン周りのセキュリティ強化が手軽にできます。初心者にも扱いやすいのが特徴です。

All In One WP Security & Firewall → ファイアウォール設定やログイン制限、ユーザー名の保護など、幅広いセキュリティ対策を一括で行えます。

Wordfence Security → 世界中で高く評価されているプラグインで、リアルタイムのファイアウォール機能とマルウェアスキャンが強力です。無料版でも十分な防御力があります。

CloudSecure WP Security → 国産プラグインで完全日本語対応。設定画面がわかりやすく、日本人ユーザーに特におすすめです。

有名なプラグインばかりなので、使い方は検索すると直ぐに出てきます。
また、セキュリティ強化プラグインは他にもたくさんあるので、興味のある方は調べてみてください。

ちなみに、以前、セキュリティ強化のプラグインをインストールすると、なぜかログインできなくなるといった不具合を起こしました。
使用する場合、Web制作者の方は、お客さんから「管理画面にログインできないんですけど・・・」みたいな問い合わせが入らないように、十分注意してください。

WordPressの運用開始後に継続して行うセキュリティ対策

【必須】WordPress本体やプラグインを常に最新にしておく

脆弱性を突かれてハッキング被害に遭うのは、多くの場合、古いバージョンのWordPress本体や、更新が止まったままのプラグイン・テーマを放置しているケースです。

WordPress本体のバージョンアップとなるといろいろと、それに伴う不具合が発生する場合もあります。
ですが、それでも常に最新バージョンにしておくことをおすすめしています。

ダッチ

ちなみに、自動更新機能を有効にしておくのもおすすめです。ですが、メジャーアップデートの場合は、事前にバックアップを取り、変更内容を確認してから適用するのがより安全です。

【必須】管理画面のパスワードは「使い回さず・厳重に管理」する

以前は「パスワードの定期的な変更」が常識とされていましたが、現在の最新のセキュリティガイドライン(米国立標準技術研究所「NIST」など)では、パスワードの定期変更は推奨されていません。

定期的に変更させると、「Password01」「Password02」のように末尾の数字を変えるだけの推測されやすいパスワードを設定しがちになり、逆にセキュリティレベルが低下するためです。

現在の正しい対策は以下の通りです。

  • 推測不可能な12文字以上の複雑なパスワードを設定する
  • 他のサービスで使っているパスワードを絶対に使い回さない
  • パスワード変更は「情報漏洩の疑いがある場合のみ」即座に行う

複雑なパスワードをいくつも覚えるのは不可能なため、Googleパスワードマネージャーや1Passwordなどの「パスワード管理ツール」を利用して運用することを強くおすすめします。

【必須】不要になったプラグインを削除

運用開始後、仕様変更などで不要になったプラグインが出てくることも多々あります。
使っていなくてもサーバー上に残していれば、それを悪用して攻撃されることもあります。

使わなくなったプラグインは、管理画面上で無効化して残しておくのではなく、管理画面上から完全に削除してしまいましょう。

【必須】使っていないテーマを削除

運用開始後、途中で使用するテーマを変更することもあります。
また、WordPress本体のインストールと同時にデフォルトで入っているテーマもあります。

プラグインと同様に、不要なテーマがサーバー上に残っていると、その脆弱性を利用して攻撃されることもあります。

不要になったテーマも、出来る限り削除しておきましょう。

【必須】不正アクセス対策は「自動ブロック」を活用する

不正なIPアドレスからのアクセスが見つかった場合、手動でブロックすることも可能です。
しかし、現在のサイバー攻撃は世界中のIPアドレスを次々と変えながら行われるため、手作業でブロックし続けるのは現実的ではありません(イタチごっこになります)。

そのため、前述した「SiteGuard WP Plugin」などのセキュリティプラグインに備わっている、ログインロックアウト機能(一定回数ログインに失敗したIPを自動でブロックする機能)を活用するのが最も確実です。

手動でIPアドレスをブロックする場合

特定のしつこいIPアドレスを手動でブロックしたい場合は、プラグイン「WP-Ban」を利用する方法か、.htaccessを利用する方法があります。

プラグイン「WP-Ban」を利用する場合には、以下のページを参考にしてください。
[ WP-Banを使って不正ログイン対策 ]

.htaccessを利用して設定する場合には、現在の主流であるWebサーバー(Apache 2.4系)に合わせて、以下の記述を追記してください。

<RequireAll>
Require all granted
Require not ip xxx.xxx.xx.xxx
Require not ip xxx.xxx.xx.xxx
</RequireAll>
※「xxx.xxx.xx.xxx」の部分に不正なIPアドレスを記載してください。

その他のWordPressセキュリティ対策・脆弱性対策

【必須】データベース(MySQL)の「パスワード」を複雑にする

WordPressの管理画面だけではなく、データベースとして使用するMySQLのパスワードにも注意してください。

簡単なパスワードだと突破されてしまう可能性もあるので、必ず記号を含めた複雑な文字列を設定してください。

【必須】HTTPSで通信を行う(常時SSL化の設定)

今の時代、Webサイト全体をHTTPSで常時接続(HTTPS接続の強制化)するが当たり前になってきています。

SEO対策の為にSSLのインストールを行っている方も多いです。
ですが、HTTPS通信の本来の目的は、SEO対策ではなくセキュリティ対策(情報の暗号化)です。

SSLを導入されていない方は、直ぐにインストールして、常時SSL化の設定を行ってください。

ちなみに、SSL証明書には3種類ありますが、個人利用の場合には「ドメイン認証SSL(DV)」になります。
※無料SSLは、このドメイン認証SSL(DV)になります。

ですが、法人利用の場合には、よりセキュリティレベルの高い「企業認証SSL(OV)」や「EV認証SSL(EV)」もおすすめです。
有料のSSL証明書の購入は、エックスサーバーSSL(XServer SSL)がおすすめです。
>> エックスサーバーSSLについて

また、SSL証明書の違いについて詳しく知りたい方は、こちらの記事をチェックしてください。

常時SSL化の方法

SSLはインストールしているが、常時SSL化を設定されていない方もいます。
それだと、単純にHTTPS通信できるようになっているだけなので、管理画面も含めて、必ず常時接続の設定を行ってください。

常時接続の設定は、プラグインを利用する方法と.htaccessを利用する方法があります。

プラグインを利用される場合には、「Really Simple SSL」か「WP Force SSL」がおすすめです。

.htaccessを使って設定される場合には、以下のような記述を追記するだけです。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

</IfModule>

【任意】WAF(Web Application Firewall)を有効にする

最近は、多くのレンタルサーバーでWAF(Web Application Firewall)を利用できるようになっています。
日本語にすると、「WEBアプリケーションファイアウォール」になります。

名前の通りですが、WEBアプリケーションに特化したファイアウォールみたいなセキュリティソフトです。
かなり強力なセキュリティ対策になるので、WAFを利用できる場合には、出来れば有効化しておくことをおすすめします。

ただし、本来は正常なはずの操作までブロックしてしまうこともあります。
.htaccessである程度回避することも可能ですが、それでも、ブロックされてしまうこともあります。

特に、"WordPressの記事投稿時に保存できない・・・"といった報告が多いです。

その為、導入時は慎重に行ってください。

【任意】ログイン画面にアクセス元のIPアドレスを表示させる

ログイン画面にIPアドレスを表示させることで、
管理画面にアクセスしてきた相手に「あなたのIPアドレスを取得してますよ!」という脅しになります。

方法は簡単です。
functions.phpに以下のコードを追加するだけです。

気休め程度ですが、余裕のある方は設定してみてください。

function login_ip_display(){return "<p class='message'>あなたのIPアドレスは <span style='color:#FF0000;font-weight:bold;font-size:14px;'>{$_SERVER["REMOTE_ADDR"]}</span> です!</p>";
}
add_filter("login_message", "login_ip_display");

このような表示になります。

WP ログイン画面にIPアドレスを表示

【必須】万が一の被害に備えて「バックアップ」を必ず取る

ここまでは「被害を防ぐため」のセキュリティ対策について解説してきました。
ですが、どれだけ対策をしていても、未知の脆弱性(ゼロデイ攻撃)を突かれたり、設定ミスなどの人為的エラーでサイトが表示されなくなってしまう可能性は決してなくなりません。

そこで、最強のセキュリティ対策は「いつでも復旧できる状態」にしておくことです。
万が一、サイトが改ざんされたりデータが消えてしまっても、正常な状態のバックアップデータさえ手元にあれば、すぐに元の状態に復元することができます。

定期的なバックアップを自動で行うには、プラグインを利用するのが一番簡単で確実です。
おすすめのバックアッププラグインは以下の2つです。

  • UpdraftPlus」:設定がわかりやすく、復元(リストア)も管理画面からボタン一つで簡単にできるため、初心者の方に最もおすすめです。
  • BackWPup」:日本でも利用者が多い老舗プラグイン。細かいスケジューリングや除外設定などを行いたい中級者以上の方におすすめです。

【注意】バックアップデータは外部ストレージに保存する

バックアップデータを、WordPressを運用しているのと同じサーバー上に保存したままにするのは危険です。
サーバー自体に障害が起きたり、サーバーごとハッキングされた場合、バックアップデータも一緒に失われてしまうためです。

取得したバックアップデータは、必ず Google DriveDropbox といった「外部のクラウドストレージ」に自動転送されるように設定しておきましょう。
先ほど紹介したプラグインを使えば、どちらも外部ストレージへの自動転送に対応しています。

もし、転送設定が難しと負いう場合は、手動でダウンロードしてHDDなどに保存しておくのでもOKです。
とりあえず、トラブルが発生しても、バックアップデータが消えないようにすることが大切です。

また、自動バックアップ機能を搭載するレンタルサーバーもたくさんあります。
レンタルサーバーを利用する場合は、自動バックアップ機能を標準搭載しているサービスを選びましょう。

【まとめ】WordPressセキュリティ対策チェックリスト

ここまで解説してきたセキュリティ対策・脆弱性対策を一覧にまとめました。
ご自身のサイトで「すでに対応済みのもの」「まだ対応できていないもの」を把握するためのチェックリストとしてご活用ください。まずは「必須」の項目から優先的に進めるのがおすすめです。

優先度:高(必須レベル)
  • 管理画面パスワード:12桁以上で英数字・記号を混在させる
  • データベースパスワード:推測されにくい複雑な文字列にする
  • アップデート:WordPress本体、プラグイン、テーマを常に最新に保つ
  • 不要データの削除:使っていないプラグイン・テーマは完全に削除する
  • HTTPS通信(常時SSL化):サイト全体を暗号化通信にする
  • 不正アクセス対策:怪しいIPアドレスを見つけたらブロックする
  • バックアップ:プラグイン等で外部ストレージに自動保存する
優先度:中~低(できる限り対応・任意)
  • 管理画面のユーザー名を「admin」以外にする
  • ログイン画面に二段階認証、または画像認証を導入する
  • スパム対策プラグイン(Antispam Bee等)を導入する
  • 重要なファイル(wp-config.php等)のパーミッション変更・アクセス制限
  • セキュリティ特化プラグイン(SiteGuard WP Plugin等)を導入する
  • WAF(Webアプリケーションファイアウォール)を有効にする
  • データベースのテーブルプレフィクス(wp_)を変更する
  • WordPressのバージョン情報やユーザー名(Author Slug)を隠す
  • インストール初期ファイル(readme.htmlなど)を削除する

最後に

今回は、WordPressのセキュリティ対策・脆弱性対策について、実践できるものを全てまとめました。
直ぐ上にご用意した「チェックリスト」も活用しながら、ご自身のサイト状況に合わせて一つずつ進めてみてください。

ただ、正直なところWordPressのセキュリティ対策は、調べれば他にもたくさん出てきます。
一度に全ての対策を行うのはかなりハードルが高いため、まずは当ページをブックマーク(お気に入り登録)していただき、優先度の高い必須項目から設定を行いましょう。

優先順位の低い設定に関しては、時間に余裕がある時でもOKです。

また、「自社での対策だけでは不安」「専門家の目で確実にチェックしてほしい」という場合には、プロによる脆弱性診断サービスを利用するのも強くおすすめします。
特に法人運営のサイトやECサイトなどの場合は、万が一被害に遭った際の影響が大きくなるため、あらかじめセキュリティ対策のための予算を組んでおくことが大切です。

この記事を書いた人
userimg
ダッチ
当サイトは丹波のホームページ屋さんの代表「ダッチ」が運営しています。

プログラミング・WEB制作歴15年以上になります。

ブログ・WordPress・レンタルサーバーに関して分からないことがあればご質問ください!
ご質問・ご相談は無料で受け付けています。

https://dacchi.hp.peraichi.com/

WEB制作に関するお仕事の依頼は、こちらのホームページからお願いします。

京都HP屋さん
丹波のホームページ屋さん

Xでフォローしよう

おすすめの記事