WordPressなどのCMSにおいて、管理画面へのログインを制限することはセキュリティ上重要なことです。
しかし、注意しなければいけないこともあります。
皆さん、こんにちは。
業務改善を行う業務コンサルタント、高橋です。
最近では、WordPressなどのCMSをレンタルサーバ側にて用意してくれているところも多くあります。
また、それらの管理画面へのログインに対して『海外からのログインを制限する』といったボタンを用意してくれているところもあります。
しかし、これに関しては注意しなければいけないこともあります。
海外からのログインを制限する上での注意
WordPressなどのCMSで作られたウェブサイトが攻撃を受ける場合、多くは海外からのものにはなります。
それを回避するために海外からの管理画面へのログインを制限してしまうことを行うわけですが、海外のキャッシュサーバ、CDNなどを使っている場合においては注意が必要です。
例えば、レンタルサーバ側に海外からのログインを制限する項目があったとして、それを有効にしているとします。
この場合、多くはwp-login.phpと/wp-admin/に対して制限がかかるわけですが、前述のように海外のCDNなどを使っていた場合においては問題が起きるケースがあります。
ユーザー名、パスワード、(認証コード)を入れてログインボタンを押した際、wp-login.phpのGET POST処理が走り、この時に問題は起きます。
403エラーとなってしまうことがあるのです。
通常、海外のCDNなどを使っていて、そのIPアドレスが海外のものであったとしても物理的な場所は日本であったりもします。
しかし、これがローテーションで物理的な場所が日本以外のIPアドレスとなった場合、403エラーになるわけです。
403エラーに対する対処法
この場合、一番手っ取り早いのは海外からの管理画面へのログイン制限をオフにすることですが、どうにもすべてを可能な状態にしておくのも少々不安であるとも思えます。
ではどうするか?
.htaccessなどにwp-login.phpファイルにおけるGET POST処理を制限する記述を加えます。
<Limit GET POST>
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
allow from xxx.xxx.xxx.xxx
</Limit>
allow from xxx.xxx.xxxの部分はCDNなどにて使われるIPアドレスをすべて記述していきます。
これでCDNなどの物理的なIPアドレスが海外であったとしても問題なく、それ以外のIPアドレスからは制限されることになります。
そしてもう1つ、一番簡単な方法としては記事を投稿するなど管理画面にログインしなければいけない時だけ海外からの管理画面へのログイン制限をオフにし、作業が終わったらオンに戻すといったことであればもっとシンプルではあります。
ただし、この方法はオンに戻すことを忘れてしまった場合のリスクはありますので注意が必要です。