Ticket #1493 (closed バグ指摘: 修正済)

Opened 9 years ago

Last modified 9 years ago

【2.11.1】パスワード確認時に、数字のみで0から始まるパスワードは0を読まない

Reported by: tao Owned by: shutta
Priority: Milestone: EC-CUBE2.11.4
Component: フロント Version: 2.11.2
Keywords: ログイン Cc:
修正済み: yes

Description

 http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=8996&forum=8&post_id=43511#forumpost43511

会員登録・登録内容変更時のパスワードを確認するロジックで、パスワード欄に0から始まる数字、例えば「0001」と入れた場合、「1」と認識し、確認欄に「1」と入れても確認画面へ行ける。弊社エンジニアに見てもらい、下記の赤字部分を追加して対処いたしました。data/class/SC_CheckError.php     /**     * 同一性の判定 password     *     * 入力が指定文字数以上ならエラーを返す     * @param array $value value[0] = 項目名1 value[1] = 項目名2 value[2] = 判定対象文字列1  value[3] = 判定対象文字列2     * @return void     */    function EQUAL_CHECK_PASSWORD( $value ) {        if(isset($this->arrErr[$value[2]]) || isset($this->arrErr[$value[3]])) {            return;        }        $this->createParam($value);        // 文字数の取得        if( 'a' . $this->arrParam[$value[2]] != 'a' . $this->arrParam[$value[3]]) {            $this->arrErr[$value[2]] = "※ " . $value[0] . "と" . $value[1] . "が一致しません。<br />";        }    } data/class/helper/SC_Helper_Customer.php     /**     * 会員登録編集共通の相関チェック     *     * @param SC_CheckError $objErr SC_CheckError インスタンス     * @param boolean $isAdmin 管理画面チェック時:true     * @return SC_CheckError $objErr エラー情報     */    function sfCustomerRegisterErrorCheck(&$objErr, $isAdmin = false) {        $objErr->doFunc(array("生年月日", 'year', 'month', 'day'), array("CHECK_BIRTHDAY"));         if (SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE){            if(!$isAdmin) {                $objErr->doFunc(array('パスワード', 'パスワード(確認)', 'password', "password02") ,array("EQUAL_CHECK_PASSWORD"));                $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', 'email', "email02") ,array("EQUAL_CHECK"));            }            $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03") ,array("TEL_CHECK"));        }         if(!$isAdmin) {            // 現会員の判定 → 現会員もしくは仮登録中は、メアド一意が前提になってるので同じメアドで登録不可            $objErr->doFunc(array("メールアドレス", 'email'), array("CHECK_REGIST_CUSTOMER_EMAIL"));            $objErr->doFunc(array("携帯メールアドレス", 'email_mobile'), array("CHECK_REGIST_CUSTOMER_EMAIL", "MOBILE_EMAIL_CHECK"));         }        return $objErr;    }ご報告まで。

Change History

comment:1 Changed 9 years ago by kotani

  • Milestone set to EC-CUBE2.11.4(仮)

comment:2 Changed 9 years ago by shutta

  • Owner changed from somebody to shutta
  • Status changed from new to assigned

comment:3 Changed 9 years ago by shutta

  • 修正済み set

r21290 にて修正。

コミュニティーでのQAZUさんの投稿したコードではなく、もっとシンプルに、 EQUAL_CHECK関数にて項目を比較する際に、!=ではなく、!===で厳密に比較するように修正した。

comment:4 Changed 9 years ago by h_yoshimoto

  • Status changed from assigned to closed
  • Resolution set to 修正済

動作確認しました。ご対応ありがとうございます。

Note: See TracTickets for help on using tickets.