管理画面のパスワードを忘れてログインが不可能になった場合、EC-CUBE上で再設定する方法はありません。DB上で直接暗号化されたパスワード(ハッシュ)を修正するか、ソースコードを修正してパスワードなしでログインした上で自分のパスワードを変更する必要があります。
ハッシュを修正するには一定の知識が必要ですので、今回はEC-CUBE3のソースコードを修正してパスワードなしで管理画面へアクセスする方法をご紹介します。
src/Eccube/Application.phpのinitSecurtyメソッドを覗くと、’security.access_rules’という、どのページではログインをしていないと閲覧できないというルールを設定している箇所があります。
この’security.access_rules’で管理画面のログイン指定をおこなっている2行目をコメントアウトしてください。
これによって認証を行わずに管理画面へアクセスすることができますので、速やかにパスワードの再設定を行い、コードを元に戻してください。
$this['security.access_rules'] = array( array("^/{$this['config']['admin_route']}/login", 'IS_AUTHENTICATED_ANONYMOUSLY'), //コメントアウト array("^/{$this['config']['admin_route']}", 'ROLE_ADMIN'), array('^/mypage/login', 'IS_AUTHENTICATED_ANONYMOUSLY'), array('^/mypage/withdraw_complete', 'IS_AUTHENTICATED_ANONYMOUSLY'), array('^/mypage/change', 'IS_AUTHENTICATED_FULLY'), array('^/mypage', 'ROLE_USER'), );
このコメントアウトを行うと誰でもEC-CUBEの管理画面にアクセスできることになります。管理者のパスワードを再設定・変更することも可能です。
IPアドレスで制限する、管理画面にBasic認証をかける、分かりにくいパスにするなど、状況に応じて対策をおこなってください。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。