脆弱性

郵便番号自動入力処理での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;
    }

EC-CUBE公式アドバイザー
ご相談窓口

  • 他社のASPやパッケージとの違いを知りたい
  • BtoCのサイトにBtoB機能を追加したい
  • 何から手をつければよいかわからない
  • オープンソースならではの注意事項を知りたい
  • 自社にマッチした制作会社を探したい
  • サイト制作だけでなく運営もサポートしてほしい

新規構築・リニューアル・取引先向けのWeb受発注システム(BtoB)や事業の拡大など、
今抱えている課題を解決する最適な業者探しを、アドバイザーがお手伝いします。