__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

aptanhua@216.73.216.200: ~ $
<?php
/**
 * REST endpoints and helpers for LiteSpeed.
 *
 * @since   2.9.4
 * @package LiteSpeed
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit();

/**
 * Class REST
 *
 * Registers plugin REST endpoints and exposes helpers for REST detection.
 */
class REST extends Root {

	const LOG_TAG = '☎️';

	/**
	 * Whether current request is an internal REST call.
	 *
	 * @var bool
	 */
	private $_internal_rest_status = false;

	/**
	 * Constructor.
	 *
	 * @since 2.9.4
	 */
	public function __construct() {
		// Hook to internal REST call.
		add_filter( 'rest_request_before_callbacks', [ $this, 'set_internal_rest_on' ] );
		add_filter( 'rest_request_after_callbacks', [ $this, 'set_internal_rest_off' ] );

		add_action( 'rest_api_init', [ $this, 'rest_api_init' ] );
	}

	/**
	 * Register REST routes.
	 *
	 * @since 3.0
	 * @return void
	 */
	public function rest_api_init() {
		// Activate or deactivate a specific crawler callback
		register_rest_route( 'litespeed/v1', '/toggle_crawler_state', [
			'methods'             => 'POST',
			'callback'            => [ $this, 'toggle_crawler_state' ],
			'permission_callback' => function () {
				return current_user_can( 'manage_network_options' ) || current_user_can( 'manage_options' );
			},
		] );

		register_rest_route( 'litespeed/v1', '/tool/check_ip', [
			'methods'             => 'GET',
			'callback'            => [ $this, 'check_ip' ],
			'permission_callback' => function () {
				return current_user_can( 'manage_network_options' ) || current_user_can( 'manage_options' );
			},
		] );

		// IP callback validate
		register_rest_route( 'litespeed/v3', '/ip_validate', [
			'methods'             => 'POST',
			'callback'            => [ $this, 'ip_validate' ],
			'permission_callback' => [ $this, 'is_from_cloud' ],
		] );

		// 1.2. WP REST Dryrun Callback
		register_rest_route( 'litespeed/v3', '/wp_rest_echo', [
			'methods'             => 'POST',
			'callback'            => [ $this, 'wp_rest_echo' ],
			'permission_callback' => [ $this, 'is_from_cloud' ],
		] );
		register_rest_route( 'litespeed/v3', '/ping', [
			'methods'             => 'POST',
			'callback'            => [ $this, 'ping' ],
			'permission_callback' => [ $this, 'is_from_cloud' ],
		] );

		// CDN setup callback notification
		register_rest_route( 'litespeed/v3', '/cdn_status', [
			'methods'             => 'POST',
			'callback'            => [ $this, 'cdn_status' ],
			'permission_callback' => [ $this, 'is_from_cloud' ],
		] );

		// Image optm notify_img
		// Need validation
		register_rest_route( 'litespeed/v1', '/notify_img', [
			'methods'             => 'POST',
			'callback'            => [ $this, 'notify_img' ],
			'permission_callback' => [ $this, 'is_from_cloud' ],
		] );

		register_rest_route( 'litespeed/v1', '/notify_ccss', [
			'methods'             => 'POST',
			'callback'            => [ $this, 'notify_ccss' ],
			'permission_callback' => [ $this, 'is_from_cloud' ],
		] );

		register_rest_route( 'litespeed/v1', '/notify_ucss', [
			'methods'             => 'POST',
			'callback'            => [ $this, 'notify_ucss' ],
			'permission_callback' => [ $this, 'is_from_cloud' ],
		] );

		register_rest_route( 'litespeed/v1', '/notify_vpi', [
			'methods'             => 'POST',
			'callback'            => [ $this, 'notify_vpi' ],
			'permission_callback' => [ $this, 'is_from_cloud' ],
		] );

		register_rest_route( 'litespeed/v3', '/err_domains', [
			'methods'             => 'POST',
			'callback'            => [ $this, 'err_domains' ],
			'permission_callback' => [ $this, 'is_from_cloud' ],
		] );

		// Image optm check_img
		// Need validation
		register_rest_route( 'litespeed/v1', '/check_img', [
			'methods'             => 'POST',
			'callback'            => [ $this, 'check_img' ],
			'permission_callback' => [ $this, 'is_from_cloud' ],
		] );
	}

	/**
	 * Call to freeze or melt the crawler clicked
	 *
	 * @since  4.3
	 */
	public function toggle_crawler_state() {
		// phpcs:ignore WordPress.Security.NonceVerification.Missing -- REST API nonce verified by WordPress
		$crawler_id = isset( $_POST['crawler_id'] ) ? sanitize_text_field( wp_unslash( $_POST['crawler_id'] ) ) : '';

		if ( $crawler_id ) {
			return $this->cls( 'Crawler' )->toggle_activeness( $crawler_id ) ? 1 : 0;
		}
	}

	/**
	 * Check if the request is from cloud nodes.
	 *
	 * @since 4.2
	 * @since 4.4.7 Token/API key validation makes IP validation redundant.
	 * @return bool
	 */
	public function is_from_cloud() {
		return $this->cls( 'Cloud' )->is_from_cloud();
	}

	/**
	 * Ping pong.
	 *
	 * @since 3.0.4
	 * @return mixed
	 */
	public function ping() {
		return $this->cls( 'Cloud' )->ping();
	}

	/**
	 * Launch IP check.
	 *
	 * @since 3.0
	 * @return mixed
	 */
	public function check_ip() {
		return Tool::cls()->check_ip();
	}

	/**
	 * Validate IPs from cloud.
	 *
	 * @since 3.0
	 * @return mixed
	 */
	public function ip_validate() {
		return $this->cls( 'Cloud' )->ip_validate();
	}

	/**
	 * REST echo helper.
	 *
	 * @since 3.0
	 * @return mixed
	 */
	public function wp_rest_echo() {
		return $this->cls( 'Cloud' )->wp_rest_echo();
	}

	/**
	 * Endpoint to notify plugin of CDN status updates.
	 *
	 * @since 7.0
	 * @return mixed
	 */
	public function cdn_status() {
		return $this->cls( 'Cloud' )->update_cdn_status();
	}

	/**
	 * Image optimization notification.
	 *
	 * @since 3.0
	 * @return mixed
	 */
	public function notify_img() {
		return Img_Optm::cls()->notify_img();
	}

	/**
	 * Critical CSS notification.
	 *
	 * @since 7.1
	 * @return mixed
	 */
	public function notify_ccss() {
		self::debug( 'notify_ccss' );
		return CSS::cls()->notify();
	}

	/**
	 * Unique CSS notification.
	 *
	 * @since 5.2
	 * @return mixed
	 */
	public function notify_ucss() {
		self::debug( 'notify_ucss' );
		return UCSS::cls()->notify();
	}

	/**
	 * Viewport Images notification.
	 *
	 * @since 4.7
	 * @return mixed
	 */
	public function notify_vpi() {
		self::debug( 'notify_vpi' );
		return VPI::cls()->notify();
	}

	/**
	 * Error domain report from cloud.
	 *
	 * @since 4.7
	 * @return mixed
	 */
	public function err_domains() {
		self::debug( 'err_domains' );
		return $this->cls( 'Cloud' )->rest_err_domains();
	}

	/**
	 * Launch image check.
	 *
	 * @since 3.0
	 * @return mixed
	 */
	public function check_img() {
		return Img_Optm::cls()->check_img();
	}

	/**
	 * Return a standardized error payload.
	 *
	 * @since 5.7.0.1
	 * @param string|int $code Error code.
	 * @return array
	 */
	public static function err( $code ) {
		return [
			'_res' => 'err',
			'_msg' => $code,
		];
	}

	/**
	 * Set internal REST tag to ON.
	 *
	 * @since 2.9.4
	 * @param mixed $not_used Passthrough value from the filter.
	 * @return mixed
	 */
	public function set_internal_rest_on( $not_used = null ) {
		$this->_internal_rest_status = true;
		Debug2::debug2( '[REST] ✅ Internal REST ON [filter] rest_request_before_callbacks' );

		return $not_used;
	}

	/**
	 * Set internal REST tag to OFF.
	 *
	 * @since 2.9.4
	 * @param mixed $not_used Passthrough value from the filter.
	 * @return mixed
	 */
	public function set_internal_rest_off( $not_used = null ) {
		$this->_internal_rest_status = false;
		Debug2::debug2( '[REST] ❎ Internal REST OFF [filter] rest_request_after_callbacks' );

		return $not_used;
	}

	/**
	 * Whether current request is an internal REST call.
	 *
	 * @since 2.9.4
	 * @return bool
	 */
	public function is_internal_rest() {
		return $this->_internal_rest_status;
	}

	/**
	 * Check whether a URL or current page is a REST request.
	 *
	 * @since 2.9.3
	 * @since 2.9.4 Moved here from Utility, dropped static.
	 * @param string|false $url URL to check; when false checks current request.
	 * @return bool
	 */
	public function is_rest( $url = false ) {
		// For WP 4.4.0- compatibility.
		if ( ! function_exists( 'rest_get_url_prefix' ) ) {
			return ( defined( 'REST_REQUEST' ) && REST_REQUEST );
		}

		$prefix = rest_get_url_prefix();

		// Case #1: After WP_REST_Request initialization.
		if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) {
			return true;
		}

		// Case #2: Support "plain" permalink settings.
		// phpcs:ignore WordPress.Security.NonceVerification.Recommended
		$route = isset( $_GET['rest_route'] ) ? sanitize_text_field( wp_unslash( $_GET['rest_route'] ) ) : '';

		if ( $route && 0 === strpos( trim( $route, '\\/' ), $prefix, 0 ) ) {
			return true;
		}

		if ( !$url ) {
			return false;
		}

		// Case #3: URL path begins with wp-json/ (REST prefix) – safe for subfolder installs.
		$rest_url    = wp_parse_url( site_url( $prefix ) );
		$current_url = wp_parse_url( $url );

		if ( false !== $current_url && ! empty( $current_url['path'] ) && false !== $rest_url && ! empty( $rest_url['path'] ) ) {
			return 0 === strpos( $current_url['path'], $rest_url['path'] );
		}

		return false;
	}
}

Filemanager

Name Type Size Permission Actions
cdn Folder 0755
data_structure Folder 0755
activation.cls.php File 17.44 KB 0644
admin-display.cls.php File 48.12 KB 0644
admin-settings.cls.php File 11.12 KB 0644
admin.cls.php File 5.05 KB 0644
api.cls.php File 10.44 KB 0644
avatar.cls.php File 8.68 KB 0644
base.cls.php File 34.58 KB 0644
cdn.cls.php File 15.92 KB 0644
cloud.cls.php File 65.8 KB 0644
conf.cls.php File 19.53 KB 0644
control.cls.php File 24.35 KB 0644
core.cls.php File 21.01 KB 0644
crawler-map.cls.php File 19.43 KB 0644
crawler.cls.php File 42.2 KB 0644
css.cls.php File 15.27 KB 0644
data.cls.php File 16.49 KB 0644
data.upgrade.func.php File 3.07 KB 0644
db-optm.cls.php File 10.34 KB 0644
debug2.cls.php File 14.17 KB 0644
doc.cls.php File 4.07 KB 0644
error.cls.php File 7.38 KB 0644
esi.cls.php File 27.18 KB 0644
file.cls.php File 10.57 KB 0644
gui.cls.php File 36.5 KB 0644
health.cls.php File 2.83 KB 0644
htaccess.cls.php File 24 KB 0644
img-optm.cls.php File 65.13 KB 0644
import.cls.php File 4.29 KB 0644
import.preset.cls.php File 5.5 KB 0644
lang.cls.php File 15.06 KB 0644
localization.cls.php File 3.44 KB 0644
media.cls.php File 40.37 KB 0644
metabox.cls.php File 5.32 KB 0644
object-cache-wp.cls.php File 24.67 KB 0644
object-cache.cls.php File 20.3 KB 0644
object.lib.php File 13.31 KB 0644
optimize.cls.php File 38.66 KB 0644
optimizer.cls.php File 9.41 KB 0644
placeholder.cls.php File 14.19 KB 0644
purge.cls.php File 33.95 KB 0644
report.cls.php File 6.12 KB 0644
rest.cls.php File 8.64 KB 0644
root.cls.php File 13.99 KB 0644
router.cls.php File 20.57 KB 0644
str.cls.php File 3.15 KB 0644
tag.cls.php File 9.26 KB 0644
task.cls.php File 6.13 KB 0644
tool.cls.php File 4.22 KB 0644
ucss.cls.php File 14.37 KB 0644
utility.cls.php File 21.76 KB 0644
vary.cls.php File 20.2 KB 0644
vpi.cls.php File 9.36 KB 0644