]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
CSRF protection in deletenotice
authorEvan Prodromou <evan@prodromou.name>
Fri, 29 Aug 2008 02:51:27 +0000 (22:51 -0400)
committerEvan Prodromou <evan@prodromou.name>
Fri, 29 Aug 2008 02:51:27 +0000 (22:51 -0400)
darcs-hash:20080829025127-84dde-b3e2eb64b7dd8302037f471f6dba6949e2e15ecc.gz

actions/deletenotice.php

index f2c040a5a9a179a33610a7e465eaea6783d4d970..af620f036f18734bdad6412a84bd2b9eb0faf28b 100644 (file)
@@ -49,6 +49,7 @@ class DeletenoticeAction extends DeleteAction {
                common_element_start('form', array('id' => 'notice_delete_form',
                                                                   'method' => 'post',
                                                                   'action' => common_local_url('deletenotice')));
+               common_hidden('token', common_session_token());
                common_hidden('notice', $this->trimmed('notice'));
                common_element_start('p');
                common_element('span', array('id' => 'confirmation_text'), _('Are you sure you want to delete this notice?'));
@@ -67,6 +68,12 @@ class DeletenoticeAction extends DeleteAction {
        }
 
        function delete_notice() {
+               # 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;
+               }
                $url = common_get_returnto();
                $confirmed = $this->trimmed('submit');
                if ($confirmed == _('Yes')) {