管理画面にアクセス制限を設定する方法

ECサイトには個人情報が満載です。
なので、今回は手軽にセキュリティを強化する方法をご紹介します。

Basic認証を設定する

ECサイトの動きをちょっと見ればEC-CUBEを使って作ったことはすぐわかりますね。

/admin/などのURLにアクセスするとそのまま管理画面のログインが見えてしまいます。もちろん、そこからIDとパスワードがないと管理画面には入れないのですが、入り口が見えてしまうよりは見えないほうがよいですよね。

そこで、まず紹介するのは、特定の場所へアクセスする際にIDとパスワードを使ってユーザーを認証するBasic認証です。
例えばEC-CUBEの管理画面へアクセスしたときに、認証を要求するようにしたい場合、以下の手順で設定します。

まず、認証するためのアカウントが記述されたファイルを作成します。
コマンドが実行できる環境であれば、html/adminディレクトリに移動して次のようなコマンドを実行します。
※この場合、カレントディレクトリ(html/admin)に.htpasswdというファイルが作成されます。

# htpasswd -c .htpasswd ユーザーID
New password: パスワード
Re-type new password: パスワードの確認入力


複数のアカウントを作成する場合、2回目以降のhtpasswdコマンドは-cオプションを付けずに実行します。

もし、コマンドが実行できなくても、インターネットで「Basic認証 パスワード生成」などのキーワードで検索すると、
パスワード生成ツールがたくさん紹介されるので、生成した文字列をhtpasswdに記述すればOKです。

次にhtml/adminディレクトリに「.htaccess」というファイルを作成し、作成したファイルに以下の内容を記述します。

AuthType Basic
AuthName 認証時に表示されるメッセージなど
AuthUserFile  .htpasswdファイルの場所
require valid-user


IPアドレス制限を設定する

IDとパスワードが分かれば、どこからでも管理画面へアクセスできてしまうのでは心配、という方にはIPアドレス制限がオススメです。
特定のIPアドレスからしか管理画面へアクセスできないようにしておけば安全性が高くなります。
(プロバイダなどで固定IPを利用できるサービスを利用していない場合は、IPアドレスが変わってしまうのでこの方法は利用できません。)

設定は簡単。
html/adminディレクトリに「.htaccess」というファイルを作成し、以下の内容を記述するだけです。

order deny,allow
deny from all
allow from 127.0.0.1
allow from 許可するIPアドレス
allow from 許可するIPアドレス
     :

ここで注意しなければいけないのが、クレジット決済モジュールを利用する場合です。
決済モジュールを利用する場合は、モジュールが通信するためのIPアドレスもアクセスを許可するように設定する必要があります。
クレジット以外にも利用しているモジュールやサービスによっては、その対象となるIPアドレスを許可する必要がありますので、その点はご注意ください。