バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > パスワード再発行ができない

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
468
投稿日時: 2019/12/11 9:15
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: パスワード再発行ができない
2.4から移行したデータについては
NULLをセットして問題ないのではないかと思います。
(作業する前にバックアップは必須かと思いますが)

ざっとソースを見てみましたが
多分、パスワードの再発行後にログインできなくなるのは
パスワードの再発行時とログイン判定時のハッシュアルゴリズムの差が原因ではないかと思います。

再発行時の処理を追いかけていくと
パスワードを
/src/Eccube/Security/Core/Encoder/PasswordEncoder.php 104行目
でECCUBEで定義されたアルゴリズム(デフォルトはSHA256)でハッシュ化していますが

$res = hash_hmac($this->password_hash_algos, $raw.':'.$this->auth_magic, $salt);


ログイン側の処理は
/src/Eccube/Security/Core/Encoder/PasswordEncoder.php 73行目
がsaltに対してemptyで判定を行い、空文字やnullの場合
「sha1」でハッシュ化している為、
パスワードの不一致が発生しているものと思われます。
// 旧バージョン(2.11未満)からの移行を考慮
if (empty($salt)) {
    $hash = sha1($raw.':'.$this->auth_magic);
} else {
    $hash = $this->encodePassword($raw, $salt);
}


saltの値を空文字からnullに変更すると、パスワードの再発行が上手くいくようになるのは
パスワード再発行時の流れの中で
/src/Eccube/Controller/ForgotController.php 215行目
/src/Eccube/Controller/Admin/Customer/CustomerEditController.php 102行目の
if ($Customer->getSalt() === null) {

のようなsaltがnullの場合、saltに新しい値をセットするという判定処理が行われている為、
(saltが空文字の時は値はセットされない)

再発行後のパスワードはログイン時に
sha1ではなく、ECCUBEで定義されたアルゴリズム(デフォルトはSHA256)でハッシュ化されるようになり、
再発行時とログイン時のハッシュ化アルゴリズムが一致する為だと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   パスワード再発行ができない jacopen 2019/12/10 13:47
     Re: パスワード再発行ができない jacopen 2019/12/10 15:27
     » Re: パスワード再発行ができない 468 2019/12/11 9:15
         Re: パスワード再発行ができない jacopen 2019/12/11 9:39

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,026名です
総投稿数は110,020件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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