脆弱性

お支払情報入力ページでのSQLインジェクション

  • 情報公開日:2008年 11月 04日
  • 危険度:中
  • 対象:Ver 1.5.0β未満
<pre style="color:#FF0000">2008/11/11 10:00 一部環境で不具合が起こる可能性が
あったので修正しました。</pre><a href="http://www.ec-cube.net/info/081110/index.php">詳細はこちら</a>

脆弱性の種類
-----------------------------------------
SQLインジェクション
-----------------------------------------
脆弱性のあるファイル
-----------------------------------------
html/shopping/payment.php
html/mobile/nonmember/payment.php
html/mobile/products/payment.php 
html/mobile/shopping/payment.php  
-----------------------------------------
脆弱性があるバージョン
-----------------------------------------
1.4.7より以前のバージョン
-----------------------------------------

対策
-----------------------------------------


変更前
=========================================
$this->arrErr = $this->lfCheckError($this->arrData);
=========================================
変更後
=========================================
$this->arrErr = $this->lfCheckError($this->arrData, $arrInfo, $objCartSess);
=========================================


変更前
=========================================
function lfCheckError($arrData) {
=========================================
変更後
=========================================
function lfCheckError($arrData, $arrInfo, $objCartSess) {
=========================================


変更前
=========================================
lfCheckError関数のreturnの直前に以下を追加する。
=========================================
変更後
=========================================
    <s>$objView = new SC_SiteView();</s>
    <s>$objSiteInfo = $objView->objSiteInfo;</s>
    <s>$arrInfo = $objSiteInfo->data;</s>
    <s>$objCartSess = new SC_CartSession();</s>
    <s>$arrInfo = $objSiteInfo->data;</s>
    // 購入金額の取得得
    $total_pretax = $objCartSess->getAllProductsTotal($arrInfo);
    // 支払い方法の取得
    $arrPayment = lfGetPayment($total_pretax);
    $pay_flag = true;
    foreach ($arrPayment as $key => $payment) {
        if ($payment['payment_id'] == $arrRet['payment_id']) {
                $pay_flag = false;
                break;
            }
    }
    if ($pay_flag) {
        sfDispSiteError(CUSTOMER_ERROR);
    }
close icon
EC-CUBEペイメントプラス

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

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

EC-CUBE公式 Amazon Pay

CVRアップの事例多数

Amazon Payについて詳しく知る

無料相談受付中!

アドバイザーに相談する