]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
CSRF protection in emailsettings
authorZach Copley <zach@controlyourself.ca>
Fri, 29 Aug 2008 05:33:37 +0000 (01:33 -0400)
committerZach Copley <zach@controlyourself.ca>
Fri, 29 Aug 2008 05:33:37 +0000 (01:33 -0400)
darcs-hash:20080829053337-7b5ce-6d94638c57d185e5d44e02ad458593a3f4de36d9.gz

actions/emailsettings.php

index 5e2c06bbd3c90c8b3270e76ce57038d1b171fb91..c93cbfae0d74e423cd54ba4c1441f3d177abe06a 100644 (file)
@@ -34,6 +34,7 @@ class EmailsettingsAction extends SettingsAction {
                                                                                   'id' => 'emailsettings',
                                                                                   'action' =>
                                                                                   common_local_url('emailsettings')));
+               common_hidden('token', common_session_token());
 
                common_element('h2', NULL, _('Address'));
 
@@ -114,6 +115,13 @@ class EmailsettingsAction extends SettingsAction {
 
        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')) {
                        $this->save_preferences();
                } else if ($this->arg('add')) {