mirror of
https://github.com/monstra-cms/monstra.git
synced 2025-08-02 19:27:52 +02:00
User security fix
Fix to resolve #405 by adding a check that compares POST id with SESSION id for none admin edits
This commit is contained in:
@@ -229,25 +229,30 @@ class Users extends Frontend
|
|||||||
// Check csrf
|
// Check csrf
|
||||||
if (Security::check(Request::post('csrf'))) {
|
if (Security::check(Request::post('csrf'))) {
|
||||||
|
|
||||||
if (Security::safeName(Request::post('login')) != '') {
|
// Check for POST data manipulation
|
||||||
if (Users::$users->update(Request::post('user_id'),
|
if( ((int) Session::get('user_id') == (int) Request::post('user_id')) or (in_array(Session::get('user_role'), array('admin'))) ) {
|
||||||
array('login' => Security::safeName(Request::post('login')),
|
|
||||||
'firstname' => Request::post('firstname'),
|
|
||||||
'lastname' => Request::post('lastname'),
|
|
||||||
'email' => Request::post('email'),
|
|
||||||
'skype' => Request::post('skype'),
|
|
||||||
'about_me' => Request::post('about_me'),
|
|
||||||
'twitter' => Request::post('twitter')))) {
|
|
||||||
|
|
||||||
// Change password
|
if (Security::safeName(Request::post('login')) != '') {
|
||||||
if (trim(Request::post('new_password')) != '') {
|
if (Users::$users->update(Request::post('user_id'),
|
||||||
Users::$users->update(Request::post('user_id'), array('password' => Security::encryptPassword(trim(Request::post('new_password')))));
|
array('login' => Security::safeName(Request::post('login')),
|
||||||
|
'firstname' => Request::post('firstname'),
|
||||||
|
'lastname' => Request::post('lastname'),
|
||||||
|
'email' => Request::post('email'),
|
||||||
|
'skype' => Request::post('skype'),
|
||||||
|
'about_me' => Request::post('about_me'),
|
||||||
|
'twitter' => Request::post('twitter')))) {
|
||||||
|
|
||||||
|
// Change password
|
||||||
|
if (trim(Request::post('new_password')) != '') {
|
||||||
|
Users::$users->update(Request::post('user_id'), array('password' => Security::encryptPassword(trim(Request::post('new_password')))));
|
||||||
|
}
|
||||||
|
|
||||||
|
Notification::set('success', __('Your changes have been saved.', 'users'));
|
||||||
|
Request::redirect(Site::url().'/users/'.$user['id']);
|
||||||
}
|
}
|
||||||
|
} else { }
|
||||||
|
|
||||||
Notification::set('success', __('Your changes have been saved.', 'users'));
|
} else { die('Monstra says: This is not your profile...'); }
|
||||||
Request::redirect(Site::url().'/users/'.$user['id']);
|
|
||||||
}
|
|
||||||
} else { }
|
|
||||||
|
|
||||||
} else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); }
|
} else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); }
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user