parent
b95490c165
commit
94364ac996
@ -0,0 +1,88 @@ |
||||
<?php |
||||
|
||||
declare(strict_types=1); |
||||
|
||||
/** |
||||
* @author Robert Strutts <Robert@TryingToScale.com> |
||||
* @copyright Copyright (c) 2022, Robert Strutts. |
||||
* @license https://mit-license.org/ |
||||
*/ |
||||
|
||||
namespace tts\enum; |
||||
|
||||
class safer_io_enums {} // Needed to auto-load |
||||
|
||||
enum HTML_FLAG { |
||||
case raw; // Dangerious XSS attacks... |
||||
case strip; |
||||
case encode; |
||||
case purify; // Allow safe whitelisted HTML elements/tags |
||||
case escape; // safely Escape HTML |
||||
} |
||||
|
||||
enum INPUTS: int { |
||||
case variable = 998; // User Defined VAR |
||||
case debugging = 999; // check POST and then if debugging is set, check GET |
||||
case json = 1000; // uses JSON on raw POST BODY |
||||
case post = 0; // INPUT_POST; |
||||
case get = 1; // INPUT_GET; |
||||
case cookie = 2; //INPUT_COOKIE; |
||||
case env = 4; // INPUT_ENV; |
||||
case server = 5; // INPUT_SERVER; |
||||
|
||||
public function resolve(): int { |
||||
return match($this) { |
||||
self::post => INPUT_POST, |
||||
self::get => INPUT_GET, |
||||
self::cookie => INPUT_COOKIE, |
||||
self::env => INPUT_ENV, |
||||
self::server => INPUT_SERVER, |
||||
}; |
||||
} |
||||
} |
||||
|
||||
enum DB_FILTER { |
||||
case ON; // Tries to Filter out SQL from User Input |
||||
case OFF; // Normal pass thourgh... |
||||
} |
||||
|
||||
enum FIELD_FILTER: string { |
||||
case raw_string = "string"; |
||||
case array_of_strings = "strings"; |
||||
case email = "email-address"; |
||||
case url = "site-url"; |
||||
case raw = "unfiltered-non-sanitized"; |
||||
case integer_number = "integer"; |
||||
case array_of_ints = "integers"; |
||||
case floating_point = "float"; |
||||
case array_of_floats = "floats"; |
||||
|
||||
public function resolve() { |
||||
return match($this) { |
||||
self::raw_string => FILTER_UNSAFE_RAW, |
||||
self::array_of_strings => [ |
||||
'filter' => FILTER_UNSAFE_RAW, |
||||
'flags' => FILTER_REQUIRE_ARRAY |
||||
], |
||||
self::email => FILTER_SANITIZE_EMAIL, |
||||
self::url => FILTER_SANITIZE_URL, |
||||
self::raw => FILTER_DEFAULT, // Unfiltered, non-sanitized!!! |
||||
self::integer_number => [ |
||||
'filter' => FILTER_SANITIZE_NUMBER_INT, |
||||
'flags' => FILTER_REQUIRE_SCALAR |
||||
], |
||||
self::array_of_ints => [ |
||||
'filter' => FILTER_SANITIZE_NUMBER_INT, |
||||
'flags' => FILTER_REQUIRE_ARRAY |
||||
], |
||||
self::floating_point => [ |
||||
'filter' => FILTER_SANITIZE_NUMBER_FLOAT, |
||||
'flags' => FILTER_FLAG_ALLOW_FRACTION |
||||
], |
||||
self::array_of_floats => [ |
||||
'filter' => FILTER_SANITIZE_NUMBER_FLOAT, |
||||
'flags' => FILTER_REQUIRE_ARRAY |
||||
], |
||||
}; |
||||
} |
||||
} |
||||
Loading…
Reference in new issue