with validate filters data code and php filter validation sanitization

validate - sanitize() php



FILTER_FLAG_STRIP_LOW vs FILTER_FLAG_STRIP_HIGH? (2)

Sabes que estoy hablando de la función filter_var en PHP 5.

He visitado http://php.net/manual/en/filter.filters.sanitize.php pero todavía tengo la pregunta:

¿Cuáles son las diferencias exactas ?

Por favor, proporcione un ejemplo, para que se pueda aclarar más fácilmente.


Las banderas se explican en una página diferente de la documentación .

FILTER_FLAG_STRIP_LOW bytes en la entrada que tienen un valor numérico <32, especialmente los bytes nulos y otros caracteres de control como el timbre ASCII. Esta es una buena idea si pretende pasar una entrada a otra aplicación que utiliza cadenas terminadas en nulo . En general, los caracteres con un punto de código Unicode inferior a 32 no deben aparecer en la entrada del usuario, excepto los caracteres de nueva línea 10 y 13.

FILTER_FLAG_STRIP_HIGH bytes en la entrada que tienen un valor numérico> 127. En casi todas las codificaciones, esos bytes representan caracteres no ASCII tales como ä , ¿ , etc. Pasar este indicador puede ser una ayuda de banda para la codificación de cadenas rotas , lo que puede convertirse en una vulnerabilidad de seguridad . Sin embargo, se esperan caracteres no ASCII en prácticamente todas las entradas del usuario.

Para resumir:

filter_var("/0aä/x80", FILTER_SANITIZE_STRING) == "/0aä/x80" filter_var("/0aä/x80", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW) == "aä/x80" filter_var("/0aä/x80", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH) == "/0a" filter_var("/0aä/x80", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH) == "a"


FILTER_FLAG_STRIP_LOW

Eliminar caracteres con valor ASCII < 32

FILTER_FLAG_STRIP_HIGH

Eliminar caracteres con valor ASCII > 127