Просмотр исходного кода

#3099 Check for key(client_id) for public API calls

Alex Trofimov 5 лет назад
Родитель
Сommit
f1e5c2da86
1 измененных файлов с 6 добавлено и 0 удалено
  1. 6 0
      modules/boonex/oauth2/classes/BxOAuthModule.php

+ 6 - 0
modules/boonex/oauth2/classes/BxOAuthModule.php

@@ -251,6 +251,12 @@ class BxOAuthModule extends BxDolModule
 
         $bPublic = $this->_oAPI->isPublicAPI(bx_get('module') ? bx_get('module') : 'bx_api', $sMethod, bx_get('class') ? bx_get('class') : false);
         if ($bPublic) {
+
+            if (!$this->_oDb->getClientsBy(array('type' => 'client_id', 'client_id' => bx_get('client_id')))) {
+                $this->_oAPI->errorOutput(403, 'access_denied', '"public" services need valid "client_id" parameter');
+                return;
+            }
+
             $this->checkAllowedOrigins();
             $this->_oAPI->com($sMethod, array(), $bPublic);
         }