X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Flostpass.php;h=211477b0dbd252b12322e2521b7456592194e292;hb=631095eefdd8cc9698190c60a26322a35b57fc1b;hp=d125cab5fbba33a3eb2071b88f06856fd8e2f92e;hpb=3291728059f2016dc57b6b4b2fa6305e93de601c;p=friendica.git diff --git a/mod/lostpass.php b/mod/lostpass.php index d125cab5fb..211477b0db 100644 --- a/mod/lostpass.php +++ b/mod/lostpass.php @@ -1,7 +1,22 @@ . + * */ use Friendica\App; @@ -26,10 +41,10 @@ function lostpass_post(App $a) DI::baseUrl()->redirect(); } - $pwdreset_token = Strings::getRandomName(12) . random_int(1000, 9999); + $pwdreset_token = Strings::getRandomHex(32); $fields = [ - 'pwdreset' => $pwdreset_token, + 'pwdreset' => hash('sha256', $pwdreset_token), 'pwdreset_time' => DateTimeFormat::utcNow() ]; $result = DBA::update('user', $fields, ['uid' => $user['uid']]); @@ -65,11 +80,11 @@ function lostpass_post(App $a) Login Name: %3$s', $resetlink, DI::baseUrl(), $user['nickname'])); $email = DI::emailer() - ->newSystemMail((!empty($user['language'])) ? DI::l10n()->withLang($user['language']) : DI::l10n()) - ->withMessage(DI::l10n()->t('Password reset requested at %s', $sitename), $preamble, $body) - ->forUser($user['uid'] ?? 0) - ->withRecipient($user['to_email']) - ->build(); + ->newSystemMail() + ->withMessage(DI::l10n()->t('Password reset requested at %s', $sitename), $preamble, $body) + ->forUser($user) + ->withRecipient($user['email']) + ->build(); DI::emailer()->send($email); DI::baseUrl()->redirect(); @@ -80,7 +95,7 @@ function lostpass_content(App $a) if ($a->argc > 1) { $pwdreset_token = $a->argv[1]; - $user = DBA::selectFirst('user', ['uid', 'username', 'nickname', 'email', 'pwdreset_time', 'language'], ['pwdreset' => $pwdreset_token]); + $user = DBA::selectFirst('user', ['uid', 'username', 'nickname', 'email', 'pwdreset_time', 'language'], ['pwdreset' => hash('sha256', $pwdreset_token)]); if (!DBA::isResult($user)) { notice(DI::l10n()->t("Request could not be verified. \x28You may have previously submitted it.\x29 Password reset failed.")); @@ -157,11 +172,11 @@ function lostpass_generate_password($user) ', DI::baseUrl(), $user['nickname'], $new_password)); $email = DI::emailer() - ->newSystemMail((!empty($user['language'])) ? DI::l10n()->withLang($user['language']) : DI::l10n()) - ->withMessage(DI::l10n()->t('Your password has been changed at %s', $sitename), $preamble, $body) - ->forUser($user['uid'] ?? 0) - ->withRecipient($user['to_email']) - ->build(); + ->newSystemMail() + ->withMessage(DI::l10n()->t('Your password has been changed at %s', $sitename), $preamble, $body) + ->forUser($user) + ->withRecipient($user['email']) + ->build(); DI::emailer()->send($email); }