Prenons l'exemple de ce formulaire tout simple :

<form action="login.php" mthode="post">
<label for="frm_login">Login : </label>
<input type="text" name="login" id="frm_login" />
 
<label for="frm_password">Password : </label>
<input type="text" name="password" id="frm_password" />
 
<label for="frm_sexe">Sexe : </label>
<select name="sexe" id="frm_sexe">
<option value="Masculin" selected="selected">Masculin</option>
<option value="Féminin">Féminin</option>
</select>
 
<input type="submit" value="Envoyer" />
</form>

Lors de la soumission de ce formulaire la page login.php est appelée et les données sont transmises à la page par la méthode POST. Ainsi, sur la page login.php nous avons les données saisies par l'utilisateur dans le tableau $_POST

La méthode décrite conciste à s'assurer que les données que nous allons traiter sont conformes à nos attentes. Pour cela nous allons utiliser un tableau qui contiendra l'ensemble des données en provenance du formulaire et qui ont été vérifiées.

<?php
 
$tVerifier = array(); // Contient les données vérifiées
 
if ( ctype_alnum($_POST['login']) ) {
$tVerifier['login'] = $_POST['login'];
}
 
if ( ctype_alnum($_POST['password']) ) {
$tVerifier['password'] = $_POST['password'];
}
 
$tSexe = array('Masculin','Féminin');
if ( in_array($_POST['sexe'], $tSexe) ) {
$tVerifier['sexe'] = $_POST['sexe'];
}
 
?>

De cette façon nous sommes certain de la validité des données présentes dans $tVerifier. Si dans un script nous trouvons la variable $_POST['password'] utilisée directement (par exemple dans une requête SQL), cela veut sans doute dire qu'elle n'a pas été vérifié et qu'il peut y avoir des risques.

Rien de bien nouveau techniquement mais plutôt une méthode de travail que je trouve très efficace.