34 public static function cleanArgv($name, $type =
'text')
36 if (isset($_SERVER[
'argv'])) {
37 if ($type ==
'text') {
38 return (isset($_SERVER[
'argv'][$name]) && !empty($_SERVER[
'argv'][$name])) ? trim($_SERVER[
'argv'][$name]) :
'';
39 } elseif ($type ==
'numeric') {
40 return (isset($_SERVER[
'argv'][$name]) && is_numeric($_SERVER[
'argv'][$name])) ? intval($_SERVER[
'argv'][$name]) :
'';
41 } elseif ($type ==
'boolean') {
42 return (isset($_SERVER[
'argv'][$name])) ? true :
false;
43 } elseif ($type ==
'array') {
44 return (isset($_SERVER[
'argv'][$name]) && is_array($_SERVER[
'argv'][$name])) ? $_SERVER[
'argv'][$name] : array();
61 if (is_string($name)) {
62 if ($type ==
'text') {
63 $value = (isset($_GET[$name]) && $_GET[$name] !==
'') ? (
string)$_GET[$name] :
'';
64 $value = str_replace(
"\0",
'', $value);
65 $value = preg_replace(
'/[\x00-\x1F\x7F]/u',
'', $value);
66 $value = trim($value);
67 return filter_var($value, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
68 } elseif ($type ==
'numeric') {
69 return (isset($_GET[$name]) && is_numeric($_GET[$name])) ? intval($_GET[$name]) :
'';
70 } elseif ($type ==
'boolean') {
71 return (isset($_GET[$name])) ? true :
false;
72 } elseif ($type ==
'array') {
73 return (isset($_GET[$name]) && is_array($_GET[$name])) ? $_GET[$name] : array();
90 if (is_string($name)) {
91 if ($type ==
'text') {
92 $value = (isset($_POST[$name]) && $_POST[$name] !==
'') ? (
string)$_POST[$name] :
'';
93 $value = str_replace(
"\0",
'', $value);
94 $value = preg_replace(
'/[\x00-\x1F\x7F]/u',
'', $value);
95 $value = trim($value);
96 return filter_var($value, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
97 } elseif ($type ==
'number') {
98 return (isset($_POST[$name]) && is_numeric($_POST[$name])) ? intval($_POST[$name]) :
'';
99 } elseif ($type ==
'float') {
100 return (isset($_POST[$name]) && is_numeric($_POST[$name])) ? floatval($_POST[$name]) :
'';
101 } elseif ($type ==
'boolean') {
102 return (isset($_POST[$name])) ? true :
false;
103 } elseif ($type ==
'array') {
104 return (isset($_POST[$name]) && is_array($_POST[$name])) ? $_POST[$name] : array();
105 } elseif ($type ==
'content') {
106 return (isset($_POST[$name]) && !empty($_POST[$name])) ? trim($_POST[$name]) :
'';
207 if (!is_string($path) || empty($path)) {
211 $sanitized = str_replace(
"\0",
'', $path);
214 $pathWithoutEnvVars = preg_replace(
'/%[^%]+%/',
'', $sanitized);
215 if (strpos($pathWithoutEnvVars,
'..') !==
false) {
216 Log::warning(
'Path traversal attempt detected: ' . $path);
222 $sanitized = preg_replace(
'/[<>"|?*&^`\x00-\x1F]/',
'', $sanitized);