WordPressの「セキュリティ対策」について
「WordPress」は世界中で利用されているシェアの広い「CMS(Contents Management System)」ですが、大切な「WEBサイト」を守るためにも「セキュリティ」について考慮しながら利用していくことが重要です。
「ログインURL」の変更について
WordPressの「ログインURL」はデフォルトの設定では「wp-login.php」となっていますが、この「ログインURL」が攻撃の対象となることが多いため、「セキュリティプラグイン」などを利用して「ログインURL」を変更することが必要です。
もし「ログインURL」を変更せずにそのままにしていると、第三者が「ユーザー名・パスワード」を用いて「ログイン」を試すことが可能となってしまいます。

大量に「ログイン」を試すことで、「ログインできてしまう可能性」があります。
「ログインを試せる状態」が危険な状態のため、「ログインURL」を外部から推測しづらいものに変えることで、第三者は「ログイン画面」を表示することができないため「ログインの試行」ができないようになります。
例えば、下図のように「wp-login.php」から「k8hf2md3sa」のように変更すると、

第三者は「ログインURL」がわからないため、「ログイン画面」を表示することができないようになり、「WordPress」をより安全な状態に保つことができます。
WordPressの「ユーザー名・パスワード」について
WordPressの「ユーザー名・パスワード」は「できる限り推測がしづらいユーザー名・パスワード」を設定することが大切です。
例えば、「名前・住所・生年月日」など、「個人の情報」を元に「ユーザー名・パスワード」を設定することや「単純すぎる値」や「規則性のある値」を「ユーザー名・パスワード」に設定しないことも大切です。
例えば、
- 123456(規則性のある数値の羅列)
- abcdef(規則性のある文字列の羅列)
- yamada_taro(人名を元にした文字列)
- asdfghjk(キーボードのキーの配列を利用した文字列)
などは避けるようにしていただければと思います。
「ユーザー名」を「ku8dmenw3ese2w」などのように複雑なものにすることが理想ですが、複数のユーザーアカウントを作成した際に誰のアカウントなのかわからなくなってしまうこともあります。
そこで、「yamadatarou8uejh32gse」のように識別しやすい文字列の末尾にランダムな値を付加するという方法もあります。
先頭部分で誰のユーザーアカウントなのかがわかるため、「推測されづらく識別しやすいユーザー名」を作ることも可能です。
パスワードは「ks8djhehsje8wds」のようにランダムな値をできるだけ長く設定するとより安全性も高くなります。
データベースの「ユーザー名・パスワード」について
WordPressでは「データベース」は「MySQL」を利用していますが、「MySQL」は「データベースソフトウェア」の1つで「WordPressで利用するデータ」を管理しています。
「WordPress」と「データベース」の関係性は下図のようになります。

「WEBサーバー(WordPress)」から「データベースサーバー(MySQL)」へ「SQL文」と呼ばれる「データベースを操作するための命令文」が送られます。
「データベースサーバー(MySQL)」は処理の結果を「WEBサーバー(WordPress)」へ返すという手順で処理が行われています。
「データベースサーバー(MySQL)」は、「ユーザー認証」の仕組みが用意されているため、「データベースサーバー(MySQL)」を利用するためには「ユーザー名・パスワード」を「データベースサーバー(MySQL)」に送信し、「データベースサーバー(MySQL)」に認証してもらう必要があります。
「データベース(MySQL)」の「認証」の流れは下図のようになります。

「データベース」も第三者がアクセスを行う危険性があるため、「WordPress」と同様に「データベース」へのユーザー認証に必要な「ユーザー名・パスワード」を「推測され難い値」に設定することで「データベース」をより安全な状態に保つことができます。
「データベース名」と「テーブル名」について
「データベース名」や「テーブル名」も「推測し難い値」に設定しておくことが大切です。
データベースは下図のように「データベース」の中に「テーブル」が複数あり、「テーブル」の中にデータが格納されています。

「データベース」と「テーブル」を作成する際に名前を付ける必要がありますが、「乱数」など「推測しづらい値」を設定することで、よりセキュリティを強化することができます
例えば、「WordPressのテーブル名」は「wp_データ種別」のようにテーブル名の接頭辞がデフォルトで設定されていますが、この部分を複雑な文字列に変えることで、テーブル名が推測されにくくなります。
例えば、「wp_comment」だと推測されやすいため、「ju8eush2hk_comment」のように「推測がし難い文字列」を「テーブルの接頭辞」に設定をします。
「データベース名」も同様に外部から「推測され難い文字列」を設定することでより セキュリティ的に安全な状態を保つことができるようになります。
まとめ
ここまでご説明させていただいた項目は、
- WordPressのログインURL
- WordPressのユーザー名
- WordPressのパスワード
- データベース名
- テーブル名
- データベースのユーザー名
- データベースのパスワード
になりますが、これらの設定に気を付けることで、「第三者が外部からアクセスがし難いWordPress」を構築することができ、セキュリティ的にもより安全な状態になるため、「大切なWEBサイト」を守るためにもご留意いただければと思います。