!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/   drwxrwxrwx
Free 13.15 GB of 57.97 GB (22.69%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     PusherBroadcaster.php (5.54 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Illuminate\Broadcasting\Broadcasters;

use 
Illuminate\Broadcasting\BroadcastException;
use 
Illuminate\Support\Arr;
use 
Illuminate\Support\Collection;
use 
Pusher\ApiErrorException;
use 
Pusher\Pusher;
use 
Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;

class 
PusherBroadcaster extends Broadcaster
{
    use 
UsePusherChannelConventions;

    
/**
     * The Pusher SDK instance.
     *
     * @var \Pusher\Pusher
     */
    
protected $pusher;

    
/**
     * Create a new broadcaster instance.
     *
     * @param  \Pusher\Pusher  $pusher
     * @return void
     */
    
public function __construct(Pusher $pusher)
    {
        
$this->pusher $pusher;
    }

    
/**
     * Resolve the authenticated user payload for an incoming connection request.
     *
     * See: https://pusher.com/docs/channels/library_auth_reference/auth-signatures/#user-authentication
     * See: https://pusher.com/docs/channels/server_api/authenticating-users/#response
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array|null
     */
    
public function resolveAuthenticatedUser($request)
    {
        if (! 
$user parent::resolveAuthenticatedUser($request)) {
            return;
        }

        if (
method_exists($this->pusher'authenticateUser')) {
            return 
$this->pusher->authenticateUser($request->socket_id$user);
        }

        
$settings $this->pusher->getSettings();
        
$encodedUser json_encode($user);
        
$decodedString "{$request->socket_id}::user::{$encodedUser}";

        
$auth $settings['auth_key'].':'.hash_hmac(
            
'sha256'$decodedString$settings['secret']
        );

        return [
            
'auth' => $auth,
            
'user_data' => $encodedUser,
        ];
    }

    
/**
     * Authenticate the incoming request for a given channel.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return mixed
     *
     * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException
     */
    
public function auth($request)
    {
        
$channelName $this->normalizeChannelName($request->channel_name);

        if (empty(
$request->channel_name) ||
            (
$this->isGuardedChannel($request->channel_name) &&
            ! 
$this->retrieveUser($request$channelName))) {
            throw new 
AccessDeniedHttpException;
        }

        return 
parent::verifyUserCanAccessChannel(
            
$request$channelName
        
);
    }

    
/**
     * Return the valid authentication response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  mixed  $result
     * @return mixed
     */
    
public function validAuthenticationResponse($request$result)
    {
        if (
str_starts_with($request->channel_name'private')) {
            return 
$this->decodePusherResponse(
                
$request,
                
method_exists($this->pusher'authorizeChannel')
                    ? 
$this->pusher->authorizeChannel($request->channel_name$request->socket_id)
                    : 
$this->pusher->socket_auth($request->channel_name$request->socket_id)
            );
        }

        
$channelName $this->normalizeChannelName($request->channel_name);

        
$user $this->retrieveUser($request$channelName);

        
$broadcastIdentifier method_exists($user'getAuthIdentifierForBroadcasting')
                        ? 
$user->getAuthIdentifierForBroadcasting()
                        : 
$user->getAuthIdentifier();

        return 
$this->decodePusherResponse(
            
$request,
            
method_exists($this->pusher'authorizePresenceChannel')
                ? 
$this->pusher->authorizePresenceChannel($request->channel_name$request->socket_id$broadcastIdentifier$result)
                : 
$this->pusher->presence_auth($request->channel_name$request->socket_id$broadcastIdentifier$result)
        );
    }

    
/**
     * Decode the given Pusher response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  mixed  $response
     * @return array
     */
    
protected function decodePusherResponse($request$response)
    {
        if (! 
$request->input('callback'false)) {
            return 
json_decode($responsetrue);
        }

        return 
response()->json(json_decode($responsetrue))
                    ->
withCallback($request->callback);
    }

    
/**
     * Broadcast the given event.
     *
     * @param  array  $channels
     * @param  string  $event
     * @param  array  $payload
     * @return void
     *
     * @throws \Illuminate\Broadcasting\BroadcastException
     */
    
public function broadcast(array $channels$event, array $payload = [])
    {
        
$socket Arr::pull($payload'socket');

        
$parameters $socket !== null ? ['socket_id' => $socket] : [];

        
$channels Collection::make($this->formatChannels($channels));

        try {
            
$channels->chunk(100)->each(function ($channels) use ($event$payload$parameters) {
                
$this->pusher->trigger($channels->toArray(), $event$payload$parameters);
            });
        } catch (
ApiErrorException $e) {
            throw new 
BroadcastException(
                
sprintf('Pusher error: %s.'$e->getMessage())
            );
        }
    }

    
/**
     * Get the Pusher SDK instance.
     *
     * @return \Pusher\Pusher
     */
    
public function getPusher()
    {
        return 
$this->pusher;
    }

    
/**
     * Set the Pusher SDK instance.
     *
     * @param  \Pusher\Pusher  $pusher
     * @return void
     */
    
public function setPusher($pusher)
    {
        
$this->pusher $pusher;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

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

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0047 ]--