今回は「WordPress のセキュリティ対策」についてです。
WordPress は世界中で今も第一線で使用されている CMS です。
I-SEED でも WordPress での開発・納品が多いです。
WordPress のメリットとしては
- 無料(オープンソース)
- インストールなどの初期設定が簡単
- デザイン(テーマ)が豊富
- 簡単に機能を追加できるプラグインが豊富
- 管理画面が最初から整備されているので、クライアント側で入力ができる
など、挙げればきりがないほどありますが、最大のデメリットが今回のテーマでもある「セキュリティ」です。
先に言っておきますが、WordPressは決してセキュリティ対策が甘いというわけではありません。
頻繁にバージョンアップがありますし、対策用プラグインも多数用意されています。
ただ、世界中で使用されているということは、比例してそれだけ狙う輩も多いですし、セキュリティ対策ができていない管理者も多いので、相対的にそういう印象を持たれがちです。
WordPress も、しっかりセキュリティ対策すれば、安全な運用が可能なのです。
今回の記事は、「誰でもできる」ということを重要視して、エンジニアでない管理者の方でも、WordPressのセキュリティ対策ができるように書いています。
是非参考にしてみてください。
セキュリティ対策プラグインを導入する
身も蓋もないですが、セキュリティ対策プラグインを入れるのが一番簡単で手っ取り早いです。
オススメするプラグインは「SiteGuard WP Plugin」です。
WordPress のプラグインメニュー → 新規追加 → プラグインの検索 で「SiteGuard WP Plugin」と入力して、有効化するだけで使用できます。
有効後は、以下の対策をしてみてください。
ログイン画面のURLを変更する
WordPressへの攻撃は、主にログインページ画面に行われます。
初期設定の「wp-login.php」や「wp-admin」を使用していると、攻撃対象となります。
そこで、ログイン画面のURLを変えてやるのです。
この機能は、SiteGuard WP Plugin を有効化するだけでオンになりますが、以下の手順でオリジナルのログイン画面URLを発行できます。
- SiteGuard WP Plugin メニューの「ログインページ変更」を選択
- 「変更後のログインページ名」に、新しいログイン画面となるURLを入力
※ 意味のある英語よりも、日本語をローマ字にして、ランダムな数字も入力するとより良い。
このままだとログイン画面URLを変更しても、wp-login.php にアクセスすると、自動的に上記ページに遷移(リダイレクト)できてしまいます。
オプションで、「管理者ページからログインページへリダイレクトしない」にチェックをつけると、上記で決めた新しいログインURL以外ではアクセスできなくなります。
新しいログイン画面URLを各所に伝えるなど、管理上問題ないか確認してからチェックをつけてください。
ログイン画面に画像認証機能を追加する
もしログイン画面に対して攻撃されても、画像認証機能が付いていれば、ログインされる危険性はかなり減ります。
導入すると、以下画像の様に、表示されている画像から文字を読み取って入力しなければログインできなくなります。
ログインが若干面倒にはなりますが、効果はあります。
この機能をオンにするには、SiteGuard WP Plugin メニューから「画像認証」を ON にしてください。
設定画面では、画像認証を求める箇所と、入力文字をひらがなが英語のどちらか選択することもできます。
ログインに失敗したときの制限をかける
サイトを攻撃する輩はユーザーIDやパスワードを自動生成して、何度もログインを試みようとします。
これに対しては、何度かログインに失敗したら、しばらくログインできないようにしてやるのが効果的です。
この機能は SiteGuard WP Plugin を有効にすると、自動的にオンになります。
設定画面では、制限する時間などを細かく設定することもできます。
プラグイン以外でのセキュリティ対策
上記セキュリティ対策プラグインの導入だけでもかなりの効果が見込めますが、それ以外でもできるセキュリティ対策をご紹介しておきます。
少し難易度が上がるものもありますが、プラグインと合わせて導入するとさらに強固なセキュリティとなります。
管理者アカウントのユーザー名とパスワードを変更する
WordPress の管理者アカウントにログインされてしまうと、あっという間にサイトを掌握されてしまいます。
そうならないように、管理者アカウントのログイン情報は厳重にしてください。
よくやりがちなのが、ユーザー名に「wp-admin」などの誰もが想像しやすいものを使用してしまうことです。
また、パスワードも複雑なものを使用してください。
以下サイトで自動生成することも可能です。

WordPress 本体と各種プラグインのアップデート
WordPress はセキュリティ対策として、頻繁にアップデートを用意してくれています。
また、各種プラグインもそれに対応してアップデートされることがあります。
これらを最新版にアップデートするだけで、セキュリティ対策として効果があります。
ただ、WordPress 本体のアップデートをしてしまうと、オリジナルや古いテーマを使用している場合、表示が崩れたり、サイト上にPHPのエラーメッセージが出てしまうことがあるので、必ずバックアップをしてから行いましょう。
プラグインのアップデートは、そこまで影響は無いと思いますが、こちらも念の為バックアップをしておくことをオススメします。
使用していないプラグインの削除
使用していないのにインストールしているプラグインは、できる限りアンインストールするようにしましょう。
ログイン画面にベーシック認証を設定する
ログイン画面(wp-login.php)に別途パスワード(ベーシック認証)を設定することで、セキュリティを高めることができます。
ベーシック認証を導入する手法は2パターンあり、「サーバー側の機能」または「.htaccess」があります。
「サーバー側の機能」のほうが簡単で、契約しているサーバーの管理画面から設定できます。
「.htaccess」での設定は以下記事が参考になります。

ログイン画面にIP制限をかける
ログイン画面に接続できるIPを制限することにより、指定のネットワーク以外からのアクセスを拒否できます。
設定するには、「.htaccess」に以下のコードを書き込み、アップロードします。
<Files wp-login.php>
order deny,allow
deny from all
allow from 許可するIP
</Files>
許可するIPには、ご自身のIPを入力してください。
現在使用中のIPを知りたい場合は、以下サイトで確認できます。
まとめ
まだまだセキュリティ対策はありますが、今回ご紹介したものは導入しやすいと思います。
私もこれまで何度も制作した WordPress が狙われるという事案に遭遇してきました。
「WordPressは必ずいつか狙われる」と想定して、上記セキュリティ対策を必ずしておいてください。
ただ、いくらセキュリティ対策をしても、ログイン情報が流出するような管理体制では意味がないので、この機会に社内ルールなどを一度見直してみるのも良いと思います。
サイトへの攻撃は WordPress が原因というより、管理がずさんなため起こることがほとんどです。
この場合、WordPress を敬遠して、他のものを使用しても結局は同じことです。
今一度しっかりセキュリティ対策をして、WordPress と良い付き合いをしていきましょう。