Fix gettoken loophole from https://gerrit.wikimedia.org/r/#change,4220
authorSzymon Świerkosz <beau@adres.pl>
Sun, 15 Apr 2012 17:40:20 +0000 (18:40 +0100)
committerReedy <reedy@wikimedia.org>
Sun, 15 Apr 2012 17:40:20 +0000 (18:40 +0100)
Reported and patch by Szymon Świerkosz/Beau

Change-Id: I3b5a001ad60e7e637b351331794cb275a7cf021a

includes/api/ApiMain.php

index 2105b81..8c035dc 100644 (file)
@@ -595,8 +595,14 @@ class ApiMain extends ApiBase {
                $moduleParams = $module->extractRequestParams();
 
                // Die if token required, but not provided (unless there is a gettoken parameter)
+               if ( isset( $moduleParams['gettoken'] ) ) {
+                       $gettoken = $moduleParams['gettoken'];
+               } else {
+                       $gettoken = false;
+               }
+
                $salt = $module->getTokenSalt();
-               if ( $salt !== false && isset( $moduleParams['gettoken'] ) && !$moduleParams['gettoken'] ) {
+               if ( $salt !== false && !$gettoken ) {
                        if ( !isset( $moduleParams['token'] ) ) {
                                $this->dieUsageMsg( array( 'missingparam', 'token' ) );
                        } else {