[WordPress] ログイン周りを改善してセキュリティを高める
WordPressは人気のあるCMSだけでに「WordPressアタック」と呼ばれるWordPressサイトを狙ったスパム攻撃も多くあります。 サイトを攻撃される前に対処しておくのが一番大事なのですが、今回はログイン周りのセキュリティを高めていきます。
更新日: 2018.7.17公開日: 2017.9.2
ログインURLをwp-login.phpから変更する
まずはWordPress系の総当たりスパムが好んでアタックしてくる「wp-login.php」というURL自体をなくしてしまいます。
プラグインを使用すると簡単でいいんですが、裏でどんな作業をしているのかとか、プラグインのアップデートでどう挙動が変わるのかなどをトラッキングする手間がある分、PHPをある程度書ける人なら、function.phpに直接書く方法をオススメします。
プラグインを使用する場合
さくっと初心者でもできるのはプラグイン「SiteGuard WP Plugin」を使う方法です。
設定方法などは下記の記事を参考にしてください。
WordPressのログイン画面のURLをwp-loginから変更する
「SiteGuard WP Plugin」には、セキュリティに関する様々な機能が同梱されているので、ログインURLの変更以外でも利用できます。
コードで対処する場合
function.phpに直接変更するプラグラム書く方法です
エス技研さんに素敵なコードが公開されています。そちらを参考にしてください。
海外からのアクセスを除外する
レンタルサーバーでWordPressの簡易インストールに対応しているサーバーには、「海外からの管理画面へのアクセス禁止」という項目があることが多いので、ある場合はそちらで設定します。
VPSなど自分でサーバーを用意している場合は、自分で海外IPアドレスを取得してapacheの設定なり、.htaccessにdenyの記述を入れるなりすることになります。
結構手間なんですが、VPSなどはサーバーリソースに限りがあるので、総当たり攻撃を防ぐことでサーバーの使用リソースを削減して、リソースを一般ユーザー向けに割けるようになるので、やっておくと良いでしょう。
特に中華系のスパムはサイトの内容をまるっとパクっていくものもあるので、アクセスログを見ながら悪質なユーザーの割合が多い国だけでもアクセス拒否しておくとベターです。
ログインを制限する
スパムにはログインすることを目標とするものがあります。ログインをした上で悪意のあるコードを仕込んだり、データ改ざんをしたりします。
ですので、まずはログインをさせないことが大事です
試行回数を制限する
こちらは、DBと連携する必要があるので、自作するよりかはプラグインの気軽に導入できます。
Limit Login Attempts Reloadedというプラグインが人気のようです。
似た名前でも「Limit Login Attempts」という前のバージョンは2012年頃から更新されていないようなので、間違えないようにしましょう。
reCaptchaを導入する
Googleが提供している画像キャプチャを導入するのが最も手軽でしょう。
専用のプラグインGoogle Captchaも用意されているので、そちらをインストールすれば簡単にreCaptchaを導入できます。なお、使用にはGoogle APIでの設定が必要です。
ちなみに、「Google Captcha」だと不正ログインだけでなく、自分のログインもreCaptchaが出てしまうので若干面倒です。(コメントなどログインした後に出るページについてはreCaptchaを出さない設定があります)
ざくっとですが、ログイン周りのセキュリティを高める方法を見てきました。
プラグインは簡単に導入できる反面、それ自体にセキュリティホールがあったり、動作が重くなったりと、良いことだけではないので、プラグインのレビューやIPAなどが出しているWordPressの脆弱性に関するレポートなどもチェックするようにしましょう。