AnonSec Shell
Server IP : 54.36.91.62  /  Your IP : 216.73.217.112
Web Server : Apache
System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : coopiak ( 151928)
PHP Version : 8.3.23
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/coopiak/dansnotreville-fr/nice/libraries/regularlabs/src/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/coopiak/dansnotreville-fr/nice/libraries/regularlabs/src/Http.php
<?php
/**
 * @package         Regular Labs Library
 * @version         23.10.17780
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            https://regularlabs.com
 * @copyright       Copyright © 2023 Regular Labs All Rights Reserved
 * @license         GNU General Public License version 2 or later
 */

namespace RegularLabs\Library;

defined('_JEXEC') or die;

use Joomla\CMS\Factory as JFactory;
use Joomla\CMS\Http\HttpFactory as JHttpFactory;
use Joomla\Registry\Registry;
use RuntimeException;

/**
 * Class Http
 *
 * @package RegularLabs\Library
 */
class Http
{
    /**
     * Get the contents of the given internal url
     *
     * @param string $url
     * @param int    $timeout
     * @param string $default
     *
     * @return string
     */
    public static function get($url, $timeout = 20, $default = '')
    {
        if (Uri::isExternal($url))
        {
            return $default;
        }

        return @file_get_contents($url, false, stream_context_create(['http' => ['timeout' => $timeout]]))
            || self::getFromUrl($url, $timeout, $default);
    }

    /**
     * Get the contents of the given external url from the Regular Labs server
     *
     * @param string $url
     * @param int    $timeout
     * @param string $default
     *
     * @return string
     */
    public static function getFromServer($url, $timeout = 20, $default = '')
    {
        $cache     = new Cache;
        $cache_ttl = JFactory::getApplication()->input->getInt('cache', 0);

        if ($cache_ttl)
        {
            $cache->useFiles($cache_ttl > 1 ? $cache_ttl : null);
        }

        if ($cache->exists())
        {
            return $cache->get();
        }

        // only allow url calls from administrator
        if ( ! Document::isClient('administrator'))
        {
            die;
        }

        // only allow when logged in
        $user = JFactory::getApplication()->getIdentity() ?: JFactory::getUser();

        if ( ! $user->id)
        {
            die;
        }

        if ( ! str_starts_with($url, 'http'))
        {
            $url = 'http://' . $url;
        }

        // only allow url calls to regularlabs.com domain
        if ( ! (RegEx::match('^https?://([^/]+\.)?regularlabs\.com/', $url)))
        {
            die;
        }

        // only allow url calls to certain files
        if (
            ! str_contains($url, 'download.regularlabs.com/extensions.php')
            && ! str_contains($url, 'download.regularlabs.com/extensions.json')
            && ! str_contains($url, 'download.regularlabs.com/extensions.xml')
            && ! str_contains($url, 'download.regularlabs.com/check_key.php')
        )
        {
            die;
        }

        $content = self::getContents($url, $timeout);

        $format = (str_contains($url, '.json') || str_contains($url, 'format=json'))
            ? 'application/json'
            : 'text/xml';

        header("Pragma: public");
        header("Expires: 0");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Cache-Control: public");
        header("Content-type: " . $format);

        if (empty($content))
        {
            return $default;
        }

        return $cache->set($content ?: $default);
    }

    /**
     * Get the contents of the given url
     *
     * @param string $url
     * @param int    $timeout
     * @param string $default
     *
     * @return string
     */
    public static function getFromUrl($url, $timeout = 20, $default = '')
    {
        $cache     = new Cache;
        $cache_ttl = JFactory::getApplication()->input->getInt('cache', 0);

        if ($cache_ttl)
        {
            $cache->useFiles($cache_ttl > 1 ? $cache_ttl : null);
        }

        if ($cache->exists())
        {
            return $cache->get();
        }

        $content = self::getContents($url, $timeout);

        if (empty($content))
        {
            return $default;
        }

        return $cache->set($content ?: $default);
    }

    /**
     * Load the contents of the given url
     *
     * @param string $url
     * @param int    $timeout
     * @param string $default
     *
     * @return string
     */
    private static function getContents($url, $timeout = 20, $default = '')
    {
        try
        {
            // Adding a valid user agent string, otherwise some feed-servers returning an error
            $options = new Registry([
                'userAgent' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0',
            ]);

            $response = JHttpFactory::getHttp($options)->get($url, [], $timeout);

            $content = $response->body ?? $default;
        }
        catch (RuntimeException $e)
        {
            return $default;
        }

        // Remove prefix and postfix stuff added by SocketTransport
        $content = preg_replace('#^\s*1c\s*(\{.*\})\s*0\s*$#s', '$1', $content);

        return $content;
    }
}

Anon7 - 2022
AnonSec Team