EC-CUBE

EC-Orange とは

EC-CUBE Q & A

キーワードで検索

カテゴリから探す

質問と回答

08.11.11の支払い方法ver UP後

今回のバージョンアップ後、商品購入過程で、
支払い方法・お届け先のして等の選択ページにて、
支払い方法を選択せずに、次のステップに進むと、
入力エラーが表示されず、「不正なアクセスです。」となります。

まぁ、そういうプログラムになってるのは分かるんですが、
入力エラー表示(支払い方法が選択されていません等)のエラー表示をしたいのですが、どうしたらいいのか、分からない状態です。


よろしければ、誰かご教授下さい。



(ごめんなさい、フォーラムの場所間違えました。移動できないんでしょうか?これ)

========================

ec-cube2系

A. 回答

08.11.11の支払い方法ver UP後 への1件のコメント

  1. admin より:
    この問題は、お支払方法を複数設定している場合で、且つ、金額の範囲指定がされていて、金額に応じて支払い番号(payment_id)が変わる場合に発生します。 説明のために、以下の支払方法が設定されていると仮定します。 ・銀行振込 ・代金引換 ・現金書留 【問題が発生しない(と思われる)場合】 それぞれの支払方法が、購入金額によって支払方法が切り替わらない。(カッコの中の数字はpayment_id) (1)銀行振込 0円~無制限 (2)代金引換 0円~無制限 (3)現金書留 0円~無制限 【問題が発生する場合】 以下の場合、代金引換の時に問題が発生する可能性があります。 (1)銀行振込 0円~無制限 (2)代金引換 0円~10,000円(手数料 315円) (3)代金引換 10,000円~30,000円(手数料 420円)  (…以下、代金引換いくつか続く) (6)現金書留 0円~無制限 上記の設定の場合で、お客様が代金引換を選択した場合、 商品購入金額合計(税込)が「10,000円以下」の場合は(2)手数料315円の代金引換が、 商品購入金額合計(税込)が「10,000円~30,000円」の場合は(3)手数料420円の代金引換が、 支払方法選択の画面に表示されます。 仮にお客様が合計で税抜9,800円、税込で10,290円の商品(合計価格なので、購入点数が1点でも複数点でも同じです)を買った場合、 お支払方法の一覧には「税込10,290円で支払い可能な方法」を選択可能にするので、上記の場合(1)銀行振込、(3)代金引換、(6)現金書留が選択可能になります。 そこで、(3)の代金引換を選択してしまうと、「不正なページ移動です」となってしまいます。 (この場合、銀行振込と現金書留は問題ありません) 【原因】 これは、先日の脆弱性の修正を行った部分で、選択した支払方法が金額に応じた正しいものなのかどうかをチェックするコードが追記されました。しかし、その部分に税率設定の値(5%など)がNULLになっていて適応されず、商品購入金額が実質的に「税抜の商品購入金額合計」となってしまうために発生していたようでした。 つまり、上記の商品の場合税抜価格は9,800円なので、(2)の代金引換が利用可能となり、(1)、(2)、(6)が選択可能と判断したことになります。なので(3)が選択されれば、エラーとなるわけです。今回発表されたのは、その部分の修正になります。 ※以下のように支払可能方法に食い違いが発生したわけです。 お支払方法一覧 | エラーチェック関数内のお支払方法 (1)銀行振込 | (1)銀行振込 … OK! (3)代金引換 | (2)代金引換 … NG! (6)現金書留 | (6)現金書留 … OK! よって、支払金額に応じて支払い番号(payment_id)が切り替わるようなことをしていない場合は修正は必要ないかと思いますが、念のためされていた方が良いかと思います。 【1系の修正】 http://www.ec-cube.net/info/weakness/weakness.php?id=25 【2系の修正】 http://www.ec-cube.net/info/weakness/weakness.php?id=26 なんだか雑な説明で自分でもまとまってるかよく分かりませんが、参考になれば幸いです