shell bypass 403
<?php
namespace ImageOptimization;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
/**
* Class Plugin
* Main Plugin class
*/
class Plugin {
/**
* Instance
*
* @access public
* @static
*
* @var Plugin The single instance of the class.
*/
public static $instance = null;
/**
* Modules Manager
* @var null|Manager
*/
public $modules_manager = null;
/**
* class aliases
* @access private
* @var array
*/
private $classes_aliases = [];
/**
* Instance
*
* Ensures only one instance of the class is loaded or can be loaded.
*
* @access public
*
* @return Plugin An instance of the class.
*/
public static function instance() {
if ( is_null( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
public function autoload( $class ) {
if ( 0 !== strpos( $class, __NAMESPACE__ ) ) {
return;
}
$has_class_alias = isset( $this->classes_aliases[ $class ] );
// Backward Compatibility: Save old class name for set an alias after the new class is loaded
if ( $has_class_alias ) {
$class_alias_name = $this->classes_aliases[ $class ];
$class_to_load = $class_alias_name;
} else {
$class_to_load = $class;
}
if ( ! class_exists( $class_to_load ) ) {
$filename = strtolower(
preg_replace(
[ '/^' . __NAMESPACE__ . '\\\/', '/([a-z])([A-Z])/', '/_/', '/\\\/' ],
[ '', '$1-$2', '-', DIRECTORY_SEPARATOR ],
$class_to_load
)
);
$filename = IMAGE_OPTIMIZATION_PATH . $filename . '.php';
if ( is_readable( $filename ) ) {
include $filename;
}
}
if ( $has_class_alias ) {
class_alias( $class_alias_name, $class );
}
}
private function includes() {
require_once IMAGE_OPTIMIZATION_PATH . 'includes/modules-manager.php';
$this->modules_manager = new Manager();
}
/**
* Plugin class constructor
*
* Register plugin action hooks and filters
*
* @access public
*/
public function __construct() {
static $autoloader_registered = false;
if ( ! $autoloader_registered ) {
$autoloader_registered = spl_autoload_register( [ $this, 'autoload' ] );
}
$this->includes();
}
}
// Instantiate Plugin Class
Plugin::instance();