Ticket #1196 (closed 新規開発: 無効)

Opened 10 years ago

Last modified 10 years ago

【2.11系DB移行機能】顧客情報

Reported by: Yammy Owned by: saiteisan
Priority: Milestone: EC-CUBE2.11.1
Component: 管理画面 Version: 2.11.1
Keywords: Cc:
修正済み: no

Description

顧客情報CSVアップロード機能 を追加する

【総合】2.11.0へのバージョンアップについて: http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=7662&forum=15&post_id=37153#forumpost37153

のパスワードなどの暗号化の仕様変更の考慮が必要

Change History

comment:1 Changed 10 years ago by shutta

2.11未満のバージョンからのデータ移行を考慮して、パスワード、秘密の質問の照合・更新処理を調整してみました。(r20845)

下記、データ移行の仕様のメモ

dtb_member,dtb_customerに関して、2.11未満のデータを移行しようとすると、下記のチケットでの変更を吸収しないといけない。

#818 パスワードリマインダの答えのハッシュ暗号化
#819 パスワードのハッシュ暗号化の強化

通常saltが空になることは無いと思うので、空だった場合は旧バージョンから移行されたデータと見做して、その場合にだけパスワード、秘密の質問の照合・更新処理を差し替える仕様にしています。

まず、旧バージョンからデータ移行する場合は、パスワードハッシュ、秘密の質問の答えはそのままで、saltを空にして移行します。
その際、旧バージョンのdata/mtb_constants_init.php(正確に言えばdata/cacha/mtb_constants.php)にあるAUTH_MAGICの値を、2.11.0のdata/config/config.phpに上書きも必要です。

上記の要領でdtb_member,dtb_customerのデータ移行をした前提で、プログラム側での対応をしています。

照合に関しては、単純にsaltが空だった場合に、旧バージョンでの照合方法になるように、分岐させています。

パスワード、秘密の質問を更新する場合が、少しパターンが分かれます。

dtb_memberに関しては、パスワード更新の都度、saltが更新されて、そのsaltを使用して、パスワードハッシュが2.11での暗号化方式にて更新されるので、プログラムを調整しなくても問題なかったです。

dtb_customerに関しては、パスワードと秘密の質問とでsaltを共用しているために、下記のようなパターンに分かれます。

データ移行直後の状態
salt: 空
パスワード: SHA1
秘密の質問の答え: 平文

ここから、

1.秘密の質問だけが更新される場合
salt: 更新しない
パスワード: 更新しない
秘密の質問の答え: 平文のまま更新

2.パスワードだけが更新される場合
salt: 更新する
パスワード: HMACで更新
秘密の質問の答え: DBから平文を取得し、それをHMACで更新

3.両方更新される場合
salt: 更新する
パスワード: HMACで更新
秘密の質問の答え: HMACで更新

に、分かれます。

comment:2 Changed 10 years ago by shutta

  • Owner changed from somebody to saiteisan

comment:3 Changed 10 years ago by kajiwara

  • Status changed from new to closed
  • Resolution set to 無効

こちら、モジュールでの対応となったため、取消します。

Note: See TracTickets for help on using tickets.