Здравствуйте.
После обновление до 4.3.3 форум перестал пускать с паролями в двойном md5. В Member.php пропала функция encryptedPassword, которая и отвечала за расшифровку и перехэширование таких паролей. Сталкивался ли кто-либо с такой проблемой и в каком направлении можно пойти, чтобы решить данную проблему?
Также нашёл функцию authenticatePasswordForMember в файле system/Login/Handler/Standard/Standard.php, которая судя по всему и отвечает за вход пользователя, однако работает некорректно.
Изначальный код:
public function authenticatePasswordForMember( \IPS\Member $member, $password )
{
if ( password_verify( $password, $member->members_pass_hash ) === TRUE )
{
return TRUE;
}
elseif ( $member->members_pass_salt and mb_strlen( $member->members_pass_hash ) === 32 )
{
return $member->verifyLegacyPassword( $password );
}
return FALSE;
}
Моя попытка исправить код:
public function authenticatePasswordForMember( \IPS\Member $member, $password )
{
if ( password_verify( $password, $member->members_pass_hash ) === TRUE )
{
return TRUE;
}
elseif ( md5 ( md5 ($password) ) == $member->members_pass_hash )
{
return TRUE;
}
return FALSE;
}
В итоге получилось, что можно заходить под любым паролем.