CSRF protection in imsettings.php

darcs-hash:20080829035707-7b5ce-69a9ff98390ff8b9671ede948d78fdb37371aac6.gz
This commit is contained in:
Zach Copley 2008-08-28 23:57:07 -04:00
parent 6be7cbc5cd
commit 2e239e3fbb

View File

@ -35,6 +35,7 @@ class ImsettingsAction extends SettingsAction {
'id' => 'imsettings', 'id' => 'imsettings',
'action' => 'action' =>
common_local_url('imsettings'))); common_local_url('imsettings')));
common_hidden('token', common_session_token());
common_element('h2', NULL, _('Address')); common_element('h2', NULL, _('Address'));
@ -98,6 +99,13 @@ class ImsettingsAction extends SettingsAction {
function handle_post() { function handle_post() {
# 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;
}
if ($this->arg('save')) { if ($this->arg('save')) {
$this->save_preferences(); $this->save_preferences();
} else if ($this->arg('add')) { } else if ($this->arg('add')) {