バージョン選択

フォーラム

メニュー

オンライン状況

109 人のユーザが現在オンラインです。 (76 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 109
もっと...

サイト内検索

プラグイン > バグ報告・利用に関する質問 > データ移行した会員でパスワードリセットするとログインできなくなる

バグ報告・利用に関する質問

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2019/10/30 20:01
対応状況: 解決済
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 939
データ移行した会員でパスワードリセットするとログインできなくなる
EC-CUBE 4.0.2 ← EC-CUBE 2.4
データ移行プラグイン 1.5.1
PHP 7.1.22

データ移行プラグインを用いてデータ移行した直後は会員ログインできるのですが、ログアウトしてパスワードリマインダを実行してパスワードをリセットすると、会員ログインできなくなります。

元々パスワードは平文で、データ移行プラグイン内で sha1 で変換しています。
ECCUBE_AUTH_MAGIC は事前に移行前のサイトと同じにしています。

なお、dtb_customer . password を変更前のもので上書きすればログインはできるようになります。

試しに
app/config/eccube/packages/eccube.yaml の
eccube_password_hash_algos を
SHA256 から SHA1 に変更しても状況変わりませんでした。

パスワードの暗号化処理は理解しきれていないためお知恵をお貸しいただきたいです。

どのような原因が考えられますでしょうか?
またはどのように調査すればよいでしょうか?

ちなみに、
新規登録した会員は問題なくログインできます。
新規登録した会員でパスワードリセットしても問題なくログインできます。
管理画面で仮会員に変更して再度メールを飛ばして本会員登録しても問題なくログインできます。
h_tanaka
投稿日時: 2019/10/31 8:45
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 939
Re: データ移行した会員でパスワードリセットするとログインできなくなる
試しにパスワード再設定処理で sha1 で暗号化したところ、再設定前のパスワードと一致しました。
src/Eccube/Security/Core/Encoder/PasswordEncoder.php
$res = hash_hmac($this->password_hash_algos, $raw.':'.$this->auth_magic, $salt);
 ↓
$res = sha1($raw.':'.$this->auth_magic);


データ移行プラグインの中を調査したところ、プラグイン標準ではパスワードをそのまま移行していましたが、2.4系はパスワードが平文だったため独自カスタマイズで sha1 に変換していました。
アルゴリズムを sha1 にした経緯は失念しました。。
データ移行時の暗号化アルゴリズムを sha256 の hash_hmac 形式にして再度データ移行を行ったところ、今度は会員ログイン自体ができなくなりました。。
「ログインできませんでした。入力内容に誤りがないかご確認ください。」と表示されます。
app/Plugin/DataMigration4/Controller/Admin/ConfigController.php
} elseif ($column == 'password' && $tableName == 'dtb_customer') {
    $value[$column] = empty($data[$column]) ? 'Not null violation' : sha1($data[$column].':'.$this->eccubeConfig['eccube_auth_magic']);
 ↓
} elseif ($column == 'password' && $tableName == 'dtb_customer') {
    $value[$column] = empty($data[$column]) ? 'Not null violation' : hash_hmac('SHA256', $data[$column].':'.$this->eccubeConfig['eccube_auth_magic'], $this->eccubeConfig['eccube_auth_magic']);


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

h_tanaka
投稿日時: 2019/10/31 10:42
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 939
Re: データ移行した会員でパスワードリセットするとログインできなくなる
salt の保存が必要でした。
app/Plugin/DataMigration4/Controller/Admin/ConfigController.php
$salt = bin2hex(openssl_random_pseudo_bytes(5));

} elseif ($column == 'password' && $tableName == 'dtb_customer') {
    $value[$column] = empty($data[$column]) ? 'Not null violation' : hash_hmac('SHA256', $data[$column].':'.$this->eccubeConfig['eccube_auth_magic'], $salt);
} elseif ($column == 'salt' && $tableName == 'dtb_customer') {
    $value[$column] = $salt;


ただ、今度は管理画面にログインできなくなりました。。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

h_tanaka
投稿日時: 2019/10/31 11:43
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 939
Re: データ移行した会員でパスワードリセットするとログインできなくなる
自己解決しました。

EC-CUBE2.4 は、管理者のパスワードが SHA1 で暗号化されていました。
このため、移行先のEC-CUBE4.2での暗号化アルゴリズムを SHA1 に変更する必要があったようです。

管理者パスワードはそのままの値で移行し、会員のパスワードを SHA1 で暗号化して移行することで解決できました。

最終的に修正したソースは次のとおりです。

app/config/eccube/packages/eccube.yaml
eccube_password_hash_algos: SHA1    # 旧サイトの仕様に合わせる


app/Plugin/DataMigration4/Controller/Admin/ConfigController.php
$salt = bin2hex(openssl_random_pseudo_bytes(5));

} elseif ($column == 'password' && $tableName == 'dtb_customer') {
    $value[$column] = empty($data[$column]) ? 'Not null violation' : hash_hmac($this->eccubeConfig['eccube_password_hash_algos'], $data[$column].':'.$this->eccubeConfig['eccube_auth_magic'], $salt); // 旧サイトの管理者の仕様に合わせる
} elseif ($column == 'salt' && $tableName == 'dtb_customer') {
    $value[$column] = $salt;


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は53,927名です
総投稿数は94,116件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
2014
4
468
1908
5
yuh
1610
6
umebius
1398
7
red
1375
8
h_tanaka
939
9
fukap
907
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
780
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.