脆弱性

お届け先入力ページでのSQLインジェクション

  • 情報公開日:2008年 11月 04日
  • 危険度:中
  • 対象:Ver 1.5.0β未満
------------------------------------------
脆弱性の種類
------------------------------------------
SQLインジェクション
-----------------------------------------
脆弱性のあるファイル
-----------------------------------------
html/shopping/deliv.php
html/mobiel/shopping/deliv.php
-----------------------------------------
対策
-----------------------------------------
=========================================
変更前 1系
=========================================
html/shopping/deliv.php 114行目付近

if (sfIsInt($_POST['deliv_check'])) {
    // 登録済みの別のお届け先を受注一時テーブルに書き込む
    lfRegistOtherDelivData($uniqid, $objCustomer, $_POST['deliv_check']);
    // 正常に登録されたことを記録しておく
    $objSiteSess->setRegistFlag();
    // お支払い方法選択ページへ移動
    header("Location: " . URL_SHOP_PAYMENT);
    exit;
}

=========================================
変更後 1系
=========================================
$objQuery = new SC_Query();
if (sfIsInt($_POST['deliv_check'])) {
    $deliv_count = $objQuery->count("dtb_other_deliv","customer_id=? and other_deliv_id = ?" ,array($objCustomer->getValue('customer_id'), $_POST['deliv_check']));
    if ($deliv_count != 1) {
                sfDispSiteError(CUSTOMER_ERROR);
            }
    // 登録済みの別のお届け先を受注一時テーブルに書き込む
    lfRegistOtherDelivData($uniqid, $objCustomer, $_POST['deliv_check']);
    // 正常に登録されたことを記録しておく
    $objSiteSess->setRegistFlag();
    // お支払い方法選択ページへ移動
    header("Location: " . URL_SHOP_PAYMENT);
    exit;
    }
    
=========================================
変更前 1系モバイル
=========================================
html/mobile/shopping/deliv.php
136行目付近

if (sfIsInt($_POST['other_deliv_id'])) {
    // 登録済みの別のお届け先を受注一時テーブルに書き込む
    lfRegistOtherDelivData($uniqid, $objCustomer, $_POST['other_deliv_id']);
    // 正常に登録されたことを記録しておく
    $objSiteSess->setRegistFlag();
    // お支払い方法選択ページへ移動
    header("Location: " . gfAddSessionId(MOBILE_URL_SHOP_PAYMENT));
    exit;
}

=========================================
変更後 1系モバイル
=========================================
$objQuery = new SC_Query();
if (sfIsInt($_POST['other_deliv_id'])) {
        $deliv_count = $objQuery->count("dtb_other_deliv","customer_id=? and other_deliv_id = ?" ,array($objCustomer->getValue('customer_id'), $_POST['other_deliv_id']));
    if ($deliv_count != 1) {
        sfDispSiteError(CUSTOMER_ERROR);
    }
    // 登録済みの別のお届け先を受注一時テーブルに書き込む
    lfRegistOtherDelivData($uniqid, $objCustomer, $_POST['other_deliv_id']);
    // 正常に登録されたことを記録しておく
    $objSiteSess->setRegistFlag();
    // お支払い方法選択ページへ移動
    header("Location: " . gfAddSessionId(MOBILE_URL_SHOP_PAYMENT));
    exit;
}
close icon
EC-CUBEペイメントプラス

決済導入なら、EC-CUBE公式決済

公式決済について詳しく知る

EC-CUBE公式 Amazon Pay

CVRアップの事例多数

Amazon Payについて詳しく知る

無料相談受付中!

アドバイザーに相談する