X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fpassword.php;h=23b95f7b68f4be6c4e600787e6a2ea53f9f6be38;hb=4272da4e9e2ab9c99b4b9897f04c92cd7987cb8b;hp=aef1accdcc62389d5f3f99af279aceaf8b6ce6ab;hpb=b104da04fbcdc39faae42b4a714b730e3e1b05f5;p=quix0rs-gnu-social.git diff --git a/actions/password.php b/actions/password.php index aef1accdcc..23b95f7b68 100644 --- a/actions/password.php +++ b/actions/password.php @@ -30,10 +30,12 @@ class PasswordAction extends SettingsAction { function show_form($msg=NULL, $success=false) { $user = common_current_user(); $this->form_header(_('Change password'), $msg, $success); + $token = common_session_token(); common_element_start('form', array('method' => 'post', 'id' => 'password', 'action' => common_local_url('password'))); + common_hidden('token', $token); # Users who logged in with OpenID won't have a pwd if ($user->password) { common_password('oldpassword', _('Old password')); @@ -56,8 +58,12 @@ class PasswordAction extends SettingsAction { $newpassword = $this->arg('newpassword'); $confirm = $this->arg('confirm'); - - if (0 != strcmp($newpassword, $confirm)) { + $token = $this->arg('token'); + + if (!$token || $token != common_session_token()) { + $this->show_form(_('There was a problem with your session token. Try again, please.')); + return; + } else if (0 != strcmp($newpassword, $confirm)) { $this->show_form(_('Passwords don\'t match.')); return; }