WordPressのセキュリティ対策3選 - 最低限これだけはやりましょう!
WordPressは手軽に誰でもCMS機能付きのサイトを作れる便利なサービスですが、不正アクセスなどの被害に合う可能性も十分にあります。
この記事では、不正アクセスなどの被害に合わないためにも「必ず設定しておきたいことを3つ」紹介します。この対策をしないと、被害に合う可能性が格段に上がり、最悪の場合、個人情報の流出や損害賠償なども起きるかもしれません。
個人情報の流出や損害賠償などは誇張な表現ではなく、超現実的なことです。
WordPressに少しだけ詳しければ、ログイン画面にアクセスしてメールアドレスの特定までは簡単にできます(対策を何もしていないサイトの場合)。つまり、後はパスワードさえ分かれば「管理画面にアクセスできてしまう」ということです。
なのでセキュリティ対策は必ず行いましょう。
「WordPressのセキュリティ対策」と聞いて、何をすればいいのかパッと思いつかない人は、この記事をしっかりと読んでほしいです。
今回は、以下3つの対策を紹介していきます。
- ログインURLの変更
- ログインユーザー名がバレないようにする
- wp-config.phpにアクセスされないようにする
ログインURLの変更
WordPressはログインURLが全てのサイトで共通です。
https://domain/wp-login/のように、/wp-login/でアクセスできます。他にも、/wp-admin/などでもアクセスできます。
この仕組みを知っている人であれば、誰でもログイン画面にアクセスできるので、後はメールアドレスとパスワードさえ分かれば管理画面にアクセスできてしまいます。
対策
https://domain/wp-login/でログイン画面にアクセスできないように設定を変えます。
主に2つの方法があります。
- プラグインを使う
- .htaccess(設定ファイル)を使う
どちらかの方法で、/wp-login/にアクセスしたらリダイレクトするようにします。
そして、/login?xxxxx/のような、新しいログインURLを作ります。このxxxxxの部分を自由に変えることで、自分専用のログインURLになるので、自分以外は基本的にはアクセスできなくなります。
さらにセキュリティを高めるには、ログイン画面にBasic認証をするのもいいでしょう。
今回はプラグインを使った方法を解説します。.htaccess(設定ファイル)を使った方法はこちらの記事で解説しています。
プラグインでログインURLを変える
「SiteGuard WP Plugin」をインストールします。
このプラグインは、ログインURLを簡単に変えられる他、ログインに画像認証を追加したり、一定回数ログインに失敗したらロックをかけるなど、様々なセキュリティをしてくれる非常に便利なプラグインです。
今回はログインURLの変更方法のみ解説するので、他のセキュリティも興味がある場合はご自身で色々触ってみてください。
「SiteGuard WP Plugin」をインストールしたら、プラグインの設定ページに移動して「ログインページ変更」を選択します。
青く塗りつぶした部分にオリジナルのログインURLを入力します。このURLは必ずメモって起きましょう。
そして、オプションの「管理者ページからログインページへリダイレクトしない」にチェックを入れます。
これで設定は完了です。
ログインユーザー名がバレないようにする
https://domain/?author=1のように、/?author=1でアクセスすると、ユーザーID1の投稿一覧のページにリダイレクトされます。
このページのURLは、https://domain/ユーザー名になっているので、URLを見ればユーザー名がバレてしまいます。ユーザー名をメールアドレスにしている場合は、メールアドレスもバレてしまいます。
こちらも対策することができます。
対策
functions.phpに以下コードを追加しましょう。
/**
* /?author=1 などでアクセスしたらリダイレクトさせる
*/
if (!is_admin()) {
// default URL format
if (preg_match('/author=([0-9]*)/i', $_SERVER['QUERY_STRING'])) die();
add_filter('redirect_canonical', 'my_shapespace_check_enum', 10, 2);
}
function my_shapespace_check_enum($redirect, $request) {
// permalink URL format
if (preg_match('/\?author=([0-9]*)(\/*)/i', $request)) die();
else return $redirect;
}
このコードを追加すると、先程のように/?author=1でアクセスすると404ページへリダイレクトされるようになります。
wp-config.phpにアクセスされないようにする
wp-config.phpには、データベースのIDやパスワードなどの重要な情報が書かれており、このファイルにアクセスされるとデータベースへアクセスされる可能性もあります。
なので、wp-config.phpには外部からアクセスできないようにします。
対策
一番手軽な方法はFTPでファイルのパーミッション(権限)を400に変えることです。
FTPのソフトでwp-config.phpを選択して、パーミッションの変更で400にするだけでOKです。
参考:【パーミッションってなに?】意味と実践的な変更手順をご紹介!
しかし、サーバーによってはFTPでアクセスできなかったりパーミッションを変更できない場合があります。そのような場合は.htaccessで対応することもできます。
以下コードを追加するだけで外部からのアクセスを遮断します。
<files wp-config.php>
order allow,deny
deny from all
</files>
まとめ
- ログインURLの変更
- ログインユーザー名がバレないようにする
- wp-config.phpにアクセスされないようにする
これらの対策を行えば、よっぽどなことがない限り不正アクセスなどは起きません。
しかし、WordPressは本体やプラグインに脆弱性が見つかることが多々あります。殆どの場合、脆弱性を対策したバージョンにアップデートすれば問題ないですが、アップデートをサボるとその脆弱性を突かれる可能性もあります。
なので、WordPressは定期的にメンテナンスをするようする・不要なプラグインは使わないなどを心がけるようにしましょう。