使用ecshop最新版會員 找回密碼并重置新密碼后無法使用新密碼登陸。
分析結果:
ecshop密碼原則上使用一次性md5加密,當注冊新用戶成功后觀察數據庫密碼字段,確實為md5值
而當用戶第一次登陸,ecshop做了一次非常牛逼的動作,判斷用戶數據行是否存在ec_salt, 如果不存在則生成一個ec_salt并重寫密碼!
就是說,你注冊時寫入數據庫的密碼和登陸后的密碼值發生了改變。以后再次登陸時,使用ec_salt值與post的密碼進行二次md5加密進行驗證
之處在于,當你使用密碼找回時,其只是簡單降密碼字段重置為一次性md5, 注意,此時ec_salt已存在值
用戶使用新密碼,舊的ec_salt(salt加密方式)進行登陸,wtf,當然不能登陸
解決辦法:
本沒打算細看其程序底層,僅僅在includes/modules/integrates/ecshop.php line 170行,增加了,ec_salt=''
強制在其登陸時重置ec_salt.即可
新聞熱點
疑難解答