HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux WebLive 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wpdeskera/wp-content/plugins/elementor-addon-components/includes/proxy/proxy-pdf.php
<?php
/**
 * Description: Collecte le contenu d'un fichier PDF distant
 *
 * @param {string} $_REQUEST['url'] l'url du flux à analyser
 * @param {string} $_REQUEST['nonce'] le nonce à tester
 * @return {Object[]} Le contenu du fichier PDF
 * @since 1.8.9
 */

namespace EACCustomWidgets\Includes\Proxy;

$parse_uri = isset( $_SERVER['SCRIPT_FILENAME'] ) ? explode( 'wp-content', $_SERVER['SCRIPT_FILENAME'] ) : '';
if ( ! empty( $parse_uri ) ) {
	require_once $parse_uri[0] . 'wp-load.php';
} else {
	header( 'Content-Type: text/plain' );
	echo esc_html__( "Impossible de charger 'wp-load'", 'eac-components' );
	exit;
}

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

if ( ! isset( $_REQUEST['url'] ) || ! isset( $_REQUEST['id'] ) || ! isset( $_REQUEST['nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['nonce'] ) ), 'eac_file_viewer_nonce_' . sanitize_text_field( wp_unslash( $_REQUEST['id'] ) ) ) ) {
	header( 'Content-Type: text/plain' );
	echo esc_html__( 'Jeton invalide. Actualiser la page courante...', 'eac-components' );
	exit;
}

$file = filter_var( urldecode( $_REQUEST['url'] ), FILTER_SANITIZE_URL );
if ( ! $file ) {
	header( 'Content-Type: text/plain' );
	echo esc_html__( 'URL invalide', 'eac-components' );
	exit;
}

$file_source = wp_safe_remote_get(
	$file,
	array(
		'timeout' => 15,
		'headers' => array( 'Accept' => 'application/pdf' ),
	)
);

if ( is_wp_error( $file_source ) || 200 !== wp_remote_retrieve_response_code( $file_source ) ) {
	header( 'Content-Type: text/plain' );
	$error_message = wp_remote_retrieve_response_code( $file_source );

	if ( 401 === $error_message ) {
		echo '"' . esc_url( $file ) . '" => (' . esc_html( $error_message ) . ') ' . esc_html__( 'Non autorisé.', 'eac-components' );
	} elseif ( 403 === $error_message ) {
		echo '"' . esc_url( $file ) . '" => (' . esc_html( $error_message ) . ') ' . esc_html__( 'Accès refusé.', 'eac-components' );
	} elseif ( 404 === $error_message ) {
		echo '"' . esc_url( $file ) . '" => (' . esc_html( $error_message ) . ') ' . esc_html__( "La page demandée n'existe pas.", 'eac-components' );
	} elseif ( 405 === $error_message ) {
		echo '"' . esc_url( $file ) . '" => (' . esc_html( $error_message ) . ') ' . esc_html__( 'Méthode non autorisée.', 'eac-components' );
	} elseif ( 429 === $error_message ) {
		echo '"' . esc_url( $file ) . '" => (' . esc_html( $error_message ) . ') ' . esc_html__( 'Trop de requêtes.', 'eac-components' );
	} elseif ( 495 === $error_message ) {
		echo '"' . esc_url( $file ) . '" => (' . esc_html( $error_message ) . ') ' . esc_html__( 'Certificat SSL invalide.', 'eac-components' );// SSL Certificate Error
	} elseif ( 496 === $error_message ) {
		echo '"' . esc_url( $file ) . '" => (' . esc_html( $error_message ) . ') ' . esc_html__( 'Certificat SSL requis.', 'eac-components' );// SSL Certificate Required
	} elseif ( 500 === $error_message ) {
		echo '"' . esc_url( $file ) . '" => (' . esc_html( $error_message ) . ') ' . esc_html__( 'Erreur Interne du Serveur.', 'eac-components' );
	} elseif ( 503 === $error_message ) {
		echo '"' . esc_url( $file ) . '" => (' . esc_html( $error_message ) . ') ' . esc_html__( 'Service indisponible. Réessayer plus tard.', 'eac-components' );
	} else {
		echo esc_html__( 'HTTP: La requête a échoué.', 'eac-components' );
	}

	return false;
} elseif ( empty( wp_remote_retrieve_body( $file_source ) ) ) {
	header( 'Content-Type: text/plain' );
	echo '"' . esc_url( $file ) . '" => ' . esc_html__( 'Le contenu est vide', 'eac-components' );
	return false;
}

$pdf = wp_remote_retrieve_body( $file_source );

header( 'Content-Type: application/pdf' );
echo $pdf; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped