最近、こういう機会がちょうどありました。
忘れたのではなく、他の人がパスワードを変えてしまったからだったのですが・・・。(どうりで入れないわけだ)
以下の方法を使って強制ログインし、パスワードを再設定して難を逃れました。
data/class/pages/admin/LC_Page_Admin_Index.php の $this->arrErr… を以下のようにコメントアウト
function action() { // パラメーター管理クラス $objFormParam = new SC_FormParam_Ex(); switch ($this->getMode()) { case 'login': //ログイン処理 $this->lfInitParam($objFormParam); $objFormParam->setParam($_POST); //$this->arrErr = $this->lfCheckError($objFormParam); if (SC_Utils_Ex::isBlank($this->arrErr)) { $this->lfDoLogin($objFormParam->getValue('login_id')); SC_Response_Ex::sendRedirect(ADMIN_HOME_URLPATH); }else{ SC_Utils_Ex::sfDispError(LOGIN_ERROR); } break; default: break; } // 管理者ログインテンプレートフレームの設定 $this->setTemplate(LOGIN_FRAME); }
管理者パスワードをチェックする lfCheckError関数を飛ばしてしまうため、どんなパスワードでもログインできるようになります。
また、管理者IDのチェックも同時に行っているため、管理者IDを忘れてしまった場合も同様にログインできます。
ただし、ログイン後は速やかにパスワードを再設定し、変更ファイルを元の状態に戻すこと!
ログインできたと気を緩めずに元に戻して、パスワードチェックが有効になっているのを確認してから、次の作業に移ってください。
(安全を期するなら、httpd.conf や .htaccess でIP制限やBASIC認証してからの方がよいと思う。)
ピンバック: EC-CUBE NEWS | EC-CUBEに関するニュースやブログの最新情報をお届けします