shell bypass 403
<?php
/**
* The Sanitizer class
*/
namespace Extendify\Shared\Services;
defined('ABSPATH') || die('No direct access.');
/**
* Class for sanitizing various data types.
*/
class Sanitizer
{
/**
* This function will sanitize a value.
*
* @param mixed $data - The data we need to sanitize.
* @return array|string
*/
public static function sanitizeUnknown($data)
{
return is_array($data) ? self::sanitizeArray($data) : self::sanitizeText($data);
}
/**
* This function will sanitize a multidimensional array,
* if the value is number it will be returned as is.
*
* @param array $array - The array we need to sanitize.
* @return array
*/
public static function sanitizeArray($array)
{
return array_map(function ($value) {
if (is_array($value)) {
return self::sanitizeArray($value);
} elseif (is_int($value) || is_float($value)) {
return $value;
} else {
return \sanitize_text_field($value);
}
}, $array);
}
/**
* This function will sanitize the user selections.
*
* @param array $array - The array we need to sanitize.
* @return array
*/
public static function sanitizeUserSelections($array)
{
return array_map(function ($value) {
if (is_array($value)) {
return self::sanitizeUserSelections($value);
}
if (is_int($value) || is_float($value)) {
return $value;
}
return self::sanitizePostContent($value);
}, $array);
}
/**
* This function will sanitize a text field.
*
* @param string $text - The string we need to sanitize.
* @return string
*/
public static function sanitizeText($text)
{
return \sanitize_text_field($text);
}
/**
* This function will sanitize a textarea field.
*
* @param string $text - The strings we need to sanitize.
* @return string
*/
public static function sanitizeTextarea($text)
{
return \sanitize_textarea_field($text);
}
/**
* This function will sanitize the post content.
*
* @param string $content - The post content we need to sanitize.
* @return string
*/
public static function sanitizePostContent($content)
{
return \wp_kses_post($content ? $content : '');
}
}