Il caso più pericoloso dell'uso di parametri GET in WordPress è quando dobbiamo visualizzare il valore del parametro sulla pagina. In questo caso la prudenza non è mai troppa e dobbiamo procedere per step successivi. Ogni step rappresenta un livello di validazione dei dati.
Nel seguente esempio abbiamo quattro step:
<?php
$archive_year = $_GET['y'];
$archive_title_text = '';
if( isset( $archive_year ) && preg_match( '/^\d{4}$/', $archive_year ) ) { // Step 1
$yr = intval( $archive_year );
if( filter_var( $yr, FILTER_VALIDATE_INT ) ) { // Step 2
$raw_yr = wp_kses( $yr ); // Step 3
$archive_title_text = ' anno ' . esc_html( $raw_yr ); // Step 4
}
}
?>
<h1 class="post-title">Archivio<?php echo $archive_title_text; ?></h1>
- Il parametro è presente? Il suo valore è numerico e non più lungo di 4 caratteri?
- Il parametro è un numero intero valido?
- Filtriamo il parametro.
- Evitiamo ogni possibile inserimento di tag HTML.
Infine possiamo visualizzare il parametro. Ovviamente potete aggiungere altri step ma ricordate sempre che essere ridondanti è sempre meglio che essere imprudenti.