質問 > フロント機能 > パスワード再発行ができない |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
jacopen |
投稿日時: 2019/12/10 13:47
対応状況: 確認中
|
常連 登録日: 2008/7/7 居住地: 投稿: 40 |
パスワード再発行ができない [EC-CUBE]4.0.2
[現象] 2.4系から移行した会員データで、パスワード変更をすると、ログインできなくなるという現象が出ております。 調査していますが原因がわからずこちらに投稿させていただきました。 データ移行した会員情報でログインは問題なくできているのですが、再発行を行うとログインができなくなります。 会員パスワードの変更は、下記2点で試しましたがどちらもNGでした。 ・公開画面でのパスワード再発行 →「ログイン情報をお忘れですか?」リンクから行った場合 ・管理画面でのパスワード変更 データ移行後に新規会員登録をしたデータの場合は問題なく動作します。 アドバイスいただけたら嬉しいです。 よろしくお願いします。 |
jacopen |
投稿日時: 2019/12/10 15:27
対応状況: 確認中
|
常連 登録日: 2008/7/7 居住地: 投稿: 40 |
Re: パスワード再発行ができない これが正しいかどうかはわかりませんが、
ひとまずパスワードの再発行はできるようになりました。 データベース:dtb_cusomerテーブルの「salt」という項目で 2.4から移行したデータの「salt」には何も入っていない状態で、 新たに追加されたデータには英数字が格納されていました。 以下の記事を参考に、試しに「NULL」をセットしたところうまくいきました。 https://hsmtweb.com/ec-cube/eccube-ver-up.html 2.4から移行したほかのデータも現在「salt」項目は何も入っていない状態です。 ログインは正常に行えております。 パスワード再発行がされてもいいように、「NULL」をセットしたいのですが 正常に行えているログインができなくなってしまうのではないかと思い、調査継続しております。 ログインに影響が出ますでしょうか? |
468 |
投稿日時: 2019/12/11 9:15
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: パスワード再発行ができない 2.4から移行したデータについては
NULLをセットして問題ないのではないかと思います。 (作業する前にバックアップは必須かと思いますが) ざっとソースを見てみましたが 多分、パスワードの再発行後にログインできなくなるのは パスワードの再発行時とログイン判定時のハッシュアルゴリズムの差が原因ではないかと思います。 再発行時の処理を追いかけていくと パスワードを /src/Eccube/Security/Core/Encoder/PasswordEncoder.php 104行目 でECCUBEで定義されたアルゴリズム(デフォルトはSHA256)でハッシュ化していますが
ログイン側の処理は /src/Eccube/Security/Core/Encoder/PasswordEncoder.php 73行目 がsaltに対してemptyで判定を行い、空文字やnullの場合 「sha1」でハッシュ化している為、 パスワードの不一致が発生しているものと思われます。
saltの値を空文字からnullに変更すると、パスワードの再発行が上手くいくようになるのは パスワード再発行時の流れの中で /src/Eccube/Controller/ForgotController.php 215行目 /src/Eccube/Controller/Admin/Customer/CustomerEditController.php 102行目の
のようなsaltがnullの場合、saltに新しい値をセットするという判定処理が行われている為、 (saltが空文字の時は値はセットされない) 再発行後のパスワードはログイン時に sha1ではなく、ECCUBEで定義されたアルゴリズム(デフォルトはSHA256)でハッシュ化されるようになり、 再発行時とログイン時のハッシュ化アルゴリズムが一致する為だと思います。
|
jacopen |
投稿日時: 2019/12/11 9:39
対応状況: −−−
|
常連 登録日: 2008/7/7 居住地: 投稿: 40 |
Re: パスワード再発行ができない 468様
引用:
丁寧な解説ありがとうございました。 お客様とも相談し、NULL値セットで確認してみたいと思います。 また、ご説明いただいたソースの処理を自身でも確認してみます。 このサイトは本当に勉強になります。 ありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |