WordPressを利用する上で注意しなくてはならないのが、その利用率の高さに比例する「不正アクセス」被害です。
かといってWordPressは世界中の開発者がセキュリティ対策に目を光らせているため、大規模な個人情報流出などに繋がるような大きな不具合は、めったに発見されることはありません。
ここで一番の問題になるのが、利用している私たちユーザーのセキュリティ意識になります。
今日はそこで、WordPressのセキュリティ対策について、最低限実施しておくべき内容を3つご紹介いたします。
1つめの方法. パスワードを強固にする
最もシンプル且つ、最も強力な方法です。
基本としては
- 英字+数字+記号
- 推測されやすい英単語などを用いない
- 数字を連続させない
- 12文字以上
といった条件で、パスワードを設定するようにします。
ここで問題にするべきは「覚えやすさ」といったことでは無く、セキュリティの高さです。
最近ではどんなブラウザでもログインIDとパスワードを保存してくれますし、1Password等のパスワード管理ツールもメジャーになっています。
パスワードは「覚えて使う」ものではなく、セキュリティを高めるために使うもの、という意識に変えていきましょう。
あなたのサイトは…
あなたが管理しているサイトでは、管理者のパスワードはどうなっていますか?
まさか「英単語」「同じ文字列の繰り返し」「数字のみ」「英字のみ」といった、脆弱なパスワードは利用されていないですよね??
もし上記のようなパスワードを利用されていれば、直ちに変えて下さい。
2つめの方法. 管理画面上からのテーマファイル/プラグインファイルの編集機能を制限
通常、WordPressでは管理画面から「テーマ」や「プラグイン」のソースコードを任意に改変出来る機能が備わっています。
- テーマエディター
- プラグインエディター
と呼ばれるような物です。
ただ、この機能が有効化されている場合、管理者ならば誰でもこの機能を使ってテーマやプラグインのファイルが編集できます。
ということは、不正アクセス者が管理者としてログインしてしまったら、サイト内のいろいろなファイルが書き換え放題!ということになります。
本来、WordPressのテーマやプラグインを管理画面から触る、というのは一般的な方法ではありません。
もし、改変したファイルにPHPコードの記述ミスなどがあれば、それだけでサイトが閲覧できなくなり、復旧には結局FTP等の別のアクセス手段が必要になります。
というわけで、セキュリティ的にもこのような機能は害悪以外の何物でも無いので、OFFにしてしまいましょう。
wp-config.phpのdefine( ‘WP_DEBUG’, false )
の下あたりに、下記1行を追加します。
define( 'DISALLOW_FILE_EDIT', true );
これだけで、WordPressのテーマ編集・プラグイン編集機能がOFFになり、セキュリティ効果が高まります。
補足
ちなみにこの方法は、公式Wikiでもセキュリティ対策の方法として紹介されています。
3つめの方法. 管理画面にBasic認証を設定
WordPressの管理画面にアクセスするには、必ずwp-login.phpというファイルを介する必要があります。
このwp-login.phpに対してアクセス出来るユーザーをBasic認証で制限することによって、不正なプログラムなどが管理画面へ到達することを防ぐ方法です。
この方法はLolipopレンタルサーバーなども用いている方法(Basic認証では無くIPアドレス制限)で、比較的効果があります。
.htaccessが利用出来るサーバーであれば、非常に簡単に対応出来ます。
ステップ1. .htaccessに記述を追加する
WordPressの設置ディレクトリに存在する、.htaccessの中に下記の記述を追加しましょう。
<Files wp-login.php> AuthUserFile /{ディレクトリ}/.htpasswd AuthGroupFile /dev/nul AuthName "Restricted Area" AuthType Basic require valid-user </Files>
ステップ2. .htpasswdファイルを用意する
Basic認証では、パスワードを暗号化してIDとペアで記述した.htpasswdファイルが必要になります。
本来はコマンドラインから生成する必要がありますが、下記のウェブサイト等で オンラインで生成できるサービスを提供しています。
生成した内容をファイルに貼り付け、そのファイルを.htaccessという名称で保存しましょう。
参考までに、IDをtest、パスワードをtestとした場合の.htpasswdファイルの中身です。
test:nTRs0cp4mNaF2
ステップ3. .htaccessファイルをサーバーにアップする
最後に.htpasswdファイルをサーバーにアップしましょう。
そして再度 .htaccessファイルを再度開き、/{ディレクトリ}/.htpasswd
となっている箇所を、.htpasswdファイルを設置した正しいパスに書き換えて下さい。
なお、記述する方式は「絶対パス」になります。
絶対パスがわからない?
絶対パスが分からない場合、.htpasswdと同じ階層に、下記の記述だけをしたPHPファイルを設置してアクセスしてみてください。
<?php echo __DIR__; ?>
ここで表示されたディレクトリ名+.htpasswd
とすることで、絶対パスでの表記になります。
なお、.htpasswdのパスが正しく設定されていないと、Basic認証でのログインが必ず失敗してしまうので、注意して下さい。
補足
Basic認証って何?的な基本的な内容については、下記サイトなどをご覧ください。
さいごに
WordPressの最低限のセキュリティ対策として、プラグインを利用せずに簡単に実施できる項目を3つ紹介させて頂きました。
1度不正アクセス被害に遭ってしまうと、サーバー内部に不正なファイルをランダムに配置されてしまったり、不正なデータを投稿に書き込まれてしまったりするため、除染することが非常に難しくなります。
ひとつでも経路が残っていれば、いつでも侵入されてしまうという不安と戦う必要もでてくるため、精神衛生上もよくありません。
まずは今回紹介した、最低限やっておくべき3つのセキュリティ対策を行い、安心してWordPressを運営していきましょう。
また、今回紹介した以外にも、プラグインを使った簡単で強固なセキュリティ対策の方法も下記で紹介していますので、併せてご覧下さい。