脆弱性

郵便番号自動入力処理でのXSS脆弱性

  • 情報公開日:2008年 11月 04日
  • 危険度:中
  • 対象:Ver 2.3.1より以前のバージョン
-----------------------------------------
脆弱性の種類
------------------------------------------
クロスサイトスクリプティング
-----------------------------------------
脆弱性のあるファイル
-----------------------------------------
data/class/pages/LC_Page_InputZip.php
-----------------------------------------
脆弱性があるバージョン
-----------------------------------------
2.3.1より以前のバージョン
-----------------------------------------
対策
-----------------------------------------
59行目
変更前

$arrErr = $this->fnErrorCheck();

↓

変更後
$arrErr = $this->fnErrorCheck($_GET);


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fnErrorCheckを下記のように修正

function fnErrorCheck($array) {
        // エラーメッセージ配列の初期化
        $objErr = new SC_CheckError($array);

        // 郵便番号
        $objErr->doFunc( array("郵便番号1",'zip1',ZIP01_LEN ) ,array( "NUM_COUNT_CHECK" ) );
        $objErr->doFunc( array("郵便番号2",'zip2',ZIP02_LEN ) ,array( "NUM_COUNT_CHECK" ) );
        // 親ウィンドウの戻り値を格納するinputタグのnameのエラーチェック
        if (!$this->lfInputNameCheck($array['input1'])) {
            $objErr->arrErr['input1'] = "※ 入力形式が不正です。<br />";
        }
        if (!$this->lfInputNameCheck($array['input2'])) {
            $objErr->arrErr['input2'] = "※ 入力形式が不正です。<br />";
        }

        return $objErr->arrErr;
   }

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下記の関数をLC_Page_InputZipクラス内に追加する。

    function lfInputNameCheck($value) {
        // 半角英数字と_(アンダーバー)以外の文字を使用していたらエラー
        if(strlen($value) > 0 && !ereg("^[a-zA-Z0-9_]+$", $value)) {
            return false;
        }
        
        return true;
    }
close icon
EC-CUBEペイメントプラス

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

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

EC-CUBE公式 Amazon Pay

CVRアップの事例多数

Amazon Payについて詳しく知る

無料相談受付中!

アドバイザーに相談する