EC-CUBEの管理者パスワードを忘れた時

ひさしぶりにEC-CUBEをさわろうと
http://(EC-CUBEサーバーアドレス)/admin
にアクセス、ユーザー、パスワードを忘れた時
PHPをいじって、無条件に入れるようにしました
※本番環境では危険です

手元にあった、EC-CUBE 2.12.3でためしました

data/class/pages/admin/LC_Page_Admin_Index.php 85行目
if (SC_Utils_Ex::isBlank($this->arrErr))
↓
if (! SC_Utils_Ex::isBlank($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 {
                // ブルートフォースアタック対策
                // ログイン失敗時に遅延させる
                sleep(LOGIN_RETRY_INTERVAL);

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

ログインできたら、パスワードを変更してPHPを元に戻したらいいですね

EC-CUBEのメンテナンス切り替え機能プラグインを入れてみた

EC-CUBEで安全にモジュールやプラグインを入れるためメンテナンス中表示にしたかったですが標準ではついてません

メンテナンスページ作って.htaccessとかで飛ばしてもよかったですがプラグインがあったので入れてみました
http://www.ec-cube.net/products/detail.php?
product_id=281

OSはUbuntu 12.04
データベースはMySQL 5.5.38
EC-CUBEは2.12.3
プラグインは1.0.3
で試しました

EC-CUBEのオーナーズストアにログインしてダウンロードします
自分のEC-CUBEの管理者画面へログイン、
オーナーズストア>プラグイン管理、でダウンロードしたtar.gzをインストール、
有効、にチェックを入れておきます
eccube-plugins

するとメニューが基本情報管理>メンテナンス管理、のメニューが増えます
クリックするとシステムエラー発生

ログを見るとデータベースのテーブル名が違う..テーブルは小文字だけなのにプログラムは大文字が混じってる..
プログラムを変更してみました


# vim data/downloads/plugin/SiteMaintenance/admin/basis/plg_SiteMaintenance_LC_Page_Admin_Basis_Maintenance.php

70行めの括弧のなかをすべて小文字に


$this->arrMainte = $masterData->getMasterData("plg_sitemaintenance_mtb_maintenance");

再度、画面にアクセス
※最初、メンテナンス中になってました
eccube1

サイトにアクセスすると
eccube2
こんな感じでメンテナンス中になります

管理画面で、通常営業中にすると元通りでした
やっつけですが参考まで

おれおれSSLを入れてみた

SSLを入れてテストしたいことがあったので自分でSSL証明書を用意して入れてみました(おれおれSSL)
Ubuntu 12.04のApacheで試しました

鍵と証明書を作成します
$ openssl genrsa 2048 > server.key
$ openssl req -new -key server.key > server.csr
$ openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt
参考) http://d.hatena.ne.jp/ozuma/20130511/1368284304

好きなディレクトリへ作った証明書と鍵を移動
$ sudo mkdir /etc/apache2/ssl
$ sudo mv server.key /etc/apache2/ssl/
$ sudo mv server.crt /etc/apache2/ssl/

Apacheのsslを有効に
$ sudo a2enmod ssl
$ sudo service apache2 restart

$ sudo vim /etc/apache2/sites-available/default-ssl
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key

$ sudo a2ensite default-ssl
$ sudo service apache2 reload

で https://localhost/ にアクセス
あやしい証明書なので、警告がでますが許可すればアクセスできました

Github organizationアカウントの作り方

集まってごにょごにょしようという、コミュニティを作ったのでGithubで専用アカウントを作ってみました
こういうのはorganizationアカウントというらしいです

詳しくはhelpページを
https://help.github.com/categories/organizations/

organizationアカウントは
https://github.com/organizations/new
にアクセスして作ります

お持ちのgithubアカウントでログインして
github-organization1
名前とEmailと入力、プランを選んで次へ

github-organization2
オーナーとなる人を招待して終わりです

githubへログインしてトップ画面へ行くと、プルダウンでアカウントが選べるようになります
github-organization3