Filtra y recupera de forma segura $_GET y $_POST en PHP

Hace tiempo comentaba cómo filtrar variables, ahora, usando los mismos filtros, podremos filtrar y realizar sanitize de $_GET y $_POST y asegurarnos de que no nos metan valores peligrosos en las entradas de nuestras aplicaciones.

Para ello haremos uso de filter_input y filter_input_array, pudiendo usar una lista de filtros bastante amplia.

$var = filter_input(INPUT_GET, 'parametro_entrada', FILTER_SANITIZE_STRING);
$var = filter_input(FILTER_GET,'paramentro_sin_filtrar', FILTER_UNSAFE_RAW);
$args = array(
  'product_id'   => FILTER_SANITIZE_ENCODED,
  'component'    => array('filter'    => FILTER_VALIDATE_INT,
    'flags'     => FILTER_REQUIRE_ARRAY, 
    'options'   => array('min_range' => 1, 'max_range' => 10)
    ),
  'versions'     => FILTER_SANITIZE_ENCODED,
  'doesnotexist' => FILTER_VALIDATE_INT,
  'testscalar'   => array(
    'filter' => FILTER_VALIDATE_INT,
    'flags'  => FILTER_REQUIRE_SCALAR,
    ),
  'testarray'    => array(
  'filter' => FILTER_VALIDATE_INT,
  'flags'  => FILTER_REQUIRE_ARRAY,
  )
);
$myinputs = filter_input_array(INPUT_POST, $args);

Never Use $_GET Again

Vía / PHPDeveloper.org

Similar Posts

3 Comments

  1. También es posible, y probablemente más limpio, simplemente definir una función y asignar a $_GET o a $_POST el valor de la función…

    Ej:

    function filtro($algo) {
    ingrese sus verificaciones aquí.
    }

    $_GET=filtro($_GET);

    Y con eso obtenemos algo más de flexibilidad y se calma mejor a los paranoicos de siempre.

Comments are closed.