From 47726844a0ceef6fc4697aca710c8e1bee5bf7f5 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 29 Aug 2008 01:28:24 -0400 Subject: CSRF protection in recoverpassword darcs-hash:20080829052824-7b5ce-39a8fd299b7a85793ad7a19fe00c93813ca882b6.gz --- actions/recoverpassword.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/actions/recoverpassword.php b/actions/recoverpassword.php index 444dd1f2a..0f3901543 100644 --- a/actions/recoverpassword.php +++ b/actions/recoverpassword.php @@ -176,6 +176,7 @@ class RecoverpasswordAction extends Action { common_element_start('form', array('method' => 'post', 'id' => 'recoverpassword', 'action' => common_local_url('recoverpassword'))); + common_hidden('token', common_session_token()); common_password('newpassword', _('New password'), _('6 or more characters, and don\'t forget it!')); common_password('confirm', _('Confirm'), @@ -270,6 +271,13 @@ class RecoverpasswordAction extends Action { function reset_password() { + # CSRF protection + $token = $this->trimmed('token'); + if (!$token || $token != common_session_token()) { + $this->show_form(_('There was a problem with your session token. Try again, please.')); + return; + } + $user = $this->get_temp_user(); if (!$user) { -- cgit v1.2.3-54-g00ecf