Webサイトのお困りごとはこちらへ

EC-CUBE4系の管理画面にBasic認証を設定する方法

今回は、EC-CUBEでECサイトを運用していると欠かせないのが「管理画面」です。

ですが、EC-CUBEを利用しているECサイトのお仕事をさせていただく、案外セキュリティ対策が甘いケースが多いです。

Basic認証を追加すると、管理画面へアクセスした際にユーザー名とパスワードの入力を求められるようになります

EC-CUBEのログイン画面を直接表示させにくくするため、管理画面のセキュリティ対策の一つとして利用できます。

そこで今回はEC-CUBEの管理画面への不正アクセスを防ぐカスタマイズを紹介いたします。

目次

.htpasswdを作成

まず、ローカルのターミナルで.htpasswdを作成します。

以下のコマンドを実行してください。

htpasswd -c .htpasswd [ユーザー名]

例えば、ユーザー名をadminuserにする場合は、以下のようになります。

htpasswd -c .htpasswd adminuser

コマンドを実行すると、パスワードの入力を求められます。

New password:
Re-type new password:
Adding password for user adminuser

パスワードを入力すると、現在のディレクトリに.htpasswdが作成されます。

.htpasswdをサーバーへアップロードする

作成した.htpasswdを、FTPやSFTPなどを使ってサーバーへアップロードします。

.htpasswdは、できるだけWeb上から直接アクセスできない場所へ設置してください。

例えば、次の場所へアップロードしたとします。

/home/example/.htpasswd

この場合、後ほど.htaccessAuthUserFileに、同じパスを指定します。

既存の.htpasswdへユーザーを追加する場合

すでに.htpasswdが存在する場合は、-cを付けずに実行します。

htpasswd .htpasswd [ユーザー名]

-cは新しいファイルを作成するオプションです。既存ファイルに対して使用すると、ファイルを上書きする可能性があるため注意してください。

.htaccessにBasic認証の設定を追加

作業を始める前に既存の.htaccessをバックアップするようにしてください。

次に、EC-CUBEの.htaccessを編集します。

# 関係ないところは省略

AuthUserFile ".htpasswdの絶対パス"
AuthGroupFile /dev/null
AuthName "Member Site"
AuthType BASIC
require valid-user

# admin_testの部分は自分の所の管理画面のを入れる
SetEnvIf Request_URI "^/admin_test" admin_path
<RequireAll>
    Require all granted
    Require not env admin_path
</RequireAll>

AuthUserFileを変更する

AuthUserFileには、.htpasswdの絶対パスを指定します。

例えば、.htpasswdを以下の場所に作成した場合を考えます。

/home/example/.htpasswd

この場合、記述は以下のようになります。

AuthUserFile “/home/example/.htpasswd”

URLではなく、サーバー上のファイルパスを指定してください。

管理画面のURLに合わせて変更する

以下の部分は、実際の管理画面URLに合わせて変更します。

SetEnvIf Request_URI “^/admin_test” admin_path

管理画面のURLがhttps://example.com/kanri/の場合は、次のようにします。

SetEnvIf Request_URI “^/kanri” admin_path

admin_testのままにすると、実際の管理画面にBasic認証が適用されない可能性があります。

Basic認証の設定を確認する

設定後、ブラウザからEC-CUBEの管理画面へアクセスします。

Basic認証のダイアログが表示されたら、.htpasswdで設定したユーザー名とパスワードを入力してください。

認証後に、EC-CUBEのログイン画面が表示されれば設定完了です。

あわせて、次のページも確認してください。

  • EC-CUBEのトップページ
  • 商品一覧ページ
  • 商品詳細ページ
  • カート
  • マイページ
  • 問い合わせフォーム

.htaccessはサイト全体の動作に影響する場合があります。管理画面だけでなく、ショップ側も正常に表示されるか確認しましょう。

Basic認証を設定するときの注意点

.htaccessをバックアップする

編集前に、既存の.htaccessを必ずバックアップしてください。

設定後に500エラーや表示崩れが起きた場合、元の状態へ戻せるようにしておきます。

.htaccessを破損もしくは不適切な状態で保存してしまうと、真っ白な画面やエラーコードが出てしまうなどの不具合に繋がります。そのためにも状態を回復できるようにバックアップは必ず用意してください。

HTTPS環境で利用する

Basic認証を設定する場合は、HTTPS環境で利用してください。

SSL化されていないサイトでは、認証情報が安全に送信されません。

EC-CUBEのバージョンやサーバー環境を確認する

EC-CUBEのバージョン、Apacheの設定、PHPのバージョンなどによって、Basic認証後の動作が異なる場合があります。

過去には、Basic認証の設定後にEC-CUBEの管理画面やマイページが表示できなくなる事例も報告されています。ですが、事例としては2019年と現在とバージョンもかけ離れており、私自身遭遇したことはございません。

Basic認証以外の対策も検討する

Basic認証は管理画面へのアクセス対策の一つです。

EC-CUBE 4.1では、管理画面の2段階認証も利用できます。

必要に応じて、管理画面URLの変更、IP制限、2段階認証なども組み合わせてください。

【実体験】ECサイトは顧客情報などの宝庫だからこそセキュリティ対策

実際に試してわかったこと

ECサイトの場合、管理画面には商品・注文・顧客情報など重要な情報が集まっているので、EC-CUBE標準の管理者ログインだけに任せず、Webサーバー側でもう1段入口を作る意味があります。

その対策が今回の「Basic認証」になります。

運営者目線で見れば、「ログインの手間になる」とお考えの人がいるかもしれません。

ですが、ニュースで個人情報流出などを目にしたことがあると思います。こういった可能性をログイン時の少しの手間で可能性を下げられるのであれば、必ず導入すべきと考えております。

もちろんEC-CUBE側の不備で不正なアクセスが起こりやすい状況になっていたとしても、「Basic認証」を用意しておくと予備の防波堤になってくれるという考え方ができます。

この記事をシェアする

コメント(承認制)

コメントする

目次