EC-CUBE 管理者パスワードを忘れた時に強制的にログインする

■管理者パスワードを忘れた時に強制的にログインする

パスワードを忘れたりなくしたりした場合に下記の手順を行えば強制的にログインする事ができる。
パスワードを再設定した後は速やかに元の状態に戻すこと

手順:
LC_Page_Admin_Index.phpを編集する
管理画面のメンバー管理から管理者情報を設定する
LC_Page_Admin_Index.phpを元の状態に戻す
ログインができるか確認する

■LC_Page_Admin_Index.phpを編集する

  /**
   * Page のアクション.
   *
   * @return void
   */
  public 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 {
          // ブルートフォースアタック対策
          // ログイン失敗時に遅延させる
          sleep(LOGIN_RETRY_INTERVAL);

          SC_Utils_Ex::sfDispError(LOGIN_ERROR);
        }
        break;
      default:
        break;
    }

    // 管理者ログインテンプレートフレームの設定
    $this->setTemplate(LOGIN_FRAME);
  }
チェックを素通りするので何をいれてもログイン出来る状態になる

■管理画面のメンバー管理から管理者情報を設定する

ec_cube_081
管理画面にログインして『システム設定』→『メンバー管理』へ移動する
編集対象のメンバーの『編集』をクリックする

ec_cube_082
管理者情報を設定して『この内容で登録する』をクリックする

■LC_Page_Admin_Index.phpを元の状態に戻す

  /**
   * Page のアクション.
   *
   * @return void
   */
  public 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 {
          // ブルートフォースアタック対策
          // ログイン失敗時に遅延させる
          sleep(LOGIN_RETRY_INTERVAL);

          SC_Utils_Ex::sfDispError(LOGIN_ERROR);
        }
        break;
      default:
        break;
    }

    // 管理者ログインテンプレートフレームの設定
    $this->setTemplate(LOGIN_FRAME);
  }

■ログインができるか確認する
ec_cube_083

Comments are closed.