2014年1月30日木曜日

EC-CUBE脆弱性の対処

昨日の記事を書いていて思い出したのですが、
当店が利用しておりますECサイト構築パッケージ
『EC-CUBE』に脆弱性がある旨報告されました。
今回はユーザー情報を改ざんされる可能性があるとかで、
なにそれこわい状態です。

もちろんすでに対応は終わっているのですが、
メモを残しておくのを忘れていました。
(結構この辺り目当てに来る方も多いようですが、
出来ればそれ系のブログの方が良いかと…(汗
ってことでいつも通り下にメモを残しておこうと思います。


広島ブログ


以下いつも通り私のメモとして

=====================================================================
▽個人情報削除の脆弱性
-------------------------------------------------------------------------------------------------------
/data/class/pages/shopping/LC_Page_Shopping_Deliv.php
99行目付近
-------------------------------------------------------------------------------------------------------
 変更前
-------------------------------------------------------------------------------------------------------
// ログインチェック
if($_POST['mode'] != 'login' && !$objCustomer->isLoginSuccess()) {
    // 不正アクセスとみなす
    SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
}

switch($_POST['mode']) {
-------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------
 変更後
-------------------------------------------------------------------------------------------------------
// ログインチェック
if($_POST['mode'] != 'login' && !$objCustomer->isLoginSuccess()) {
    // 不正アクセスとみなす
    SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
}

if (!$this->doCheck($_POST, $objCustomer)) {
    SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, '', true);
}

switch($_POST['mode']) {
=====================================================================

/data/class/pages/shopping/LC_Page_Shopping_Deliv.php
264行目付近
-------------------------------------------------------------------------------------------------------
 変更前
-------------------------------------------------------------------------------------------------------
// ログインチェック
if($_POST['mode'] != 'login' && !$objCustomer->isLoginSuccess(true)) {
    // 不正アクセスとみなす
    SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR, "", false, "", true);
}

switch($_POST['mode']) {
-------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------
 変更後
-------------------------------------------------------------------------------------------------------
// ログインチェック
if($_POST['mode'] != 'login' && !$objCustomer->isLoginSuccess(true)) {
    // 不正アクセスとみなす
    SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR, "", false, "", true);
}

if (!$this->doCheck($_POST, $objCustomer)) {
    SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, '', true);
}

switch($_POST['mode']) {
=====================================================================

/data/class/pages/shopping/LC_Page_Shopping_Deliv.php
584行目付近
-------------------------------------------------------------------------------------------------------
 追記
-------------------------------------------------------------------------------------------------------
    function doCheck($arrForm, &$objCustomer) {
        $objQuery = new SC_Query();
        if (empty($arrForm['other_deliv_id'])) {
            $result = 1;
        }
        else {
            $where = 'other_deliv_id = ? AND customer_id = ?';
            $result = $objQuery->count('dtb_other_deliv', $where, array($arrForm['other_deliv_id'], $objCustomer->getValue('customer_id')));
        }

        return $result;
    }
}

?>
=====================================================================

0 件のコメント:

コメントを投稿