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

Publicado el 12 julio 2010 por Displaynone

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