Server IP : 104.21.14.48 / Your IP : 18.117.185.132 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/chroot/var/www/wp-content/plugins/defender-security/framework/component/ |
Upload File : |
<?php /** * Request class. * * @package Calotes\Component */ namespace Calotes\Component; use Calotes\Base\Model; use Calotes\Helper\HTTP; /** * Parse and validate request data. */ class Request { /** * Store the data from request. * * @var array */ protected $data = array(); /** * Constructor to initialize the object with data from the POST or GET request. */ public function __construct() { if ( 'POST' === defender_get_data_from_request( 'REQUEST_METHOD', 's' ) ) { $this->data = HTTP::post( 'data', '' ); } else { $this->data = HTTP::get( 'data', '' ); } } /** * Retrieve the data that will be in use, it's recommended that $filters should be provided for data validation and * cast. * * @param array $filters The filters to apply. * * @return array */ public function get_data( $filters = array() ) { if ( empty( $filters ) ) { return $this->data; } $data = array(); foreach ( $filters as $key => $rule ) { if ( ! isset( $this->data[ $key ] ) ) { continue; // Moving on. } // Mandatory. $type = $rule['type']; $sanitize = $rule['sanitize'] ?? null; $value = $this->data[ $key ]; // Cast. settype( $value, $type ); if ( ! is_array( $sanitize ) ) { $sanitize = array( $sanitize ); } foreach ( $sanitize as $function ) { if ( null !== $function && function_exists( $function ) ) { if ( is_array( $value ) ) { $value = $this->sanitize_array( $value, $function ); } else { $value = $function( $value ); } } } $data[ $key ] = $value; } return $data; } /** * Sanitize an array recursively. * * @param array $arr The array to sanitize. * @param mixed $sanitize The sanitization function to apply. * * @return array The sanitized array. */ protected function sanitize_array( $arr, $sanitize ) { foreach ( $arr as &$value ) { if ( is_array( $value ) ) { $value = $this->sanitize_array( $value, $sanitize ); } else { $value = $sanitize( $value ); } } return $arr; } /** * Get the data from _REQUEST. * * @param Model $model The model to get data from. * * @return array */ public function get_data_by_model( Model $model ) { return $this->get_data( $model->annotations ); } }