Filtrer la page c'est bien, filtrer tous les paramètres c'est mieux!
Perso j'utilise un tableau d'expressions régulières qui définit, pour chaque paramètre, la ou les valeurs qu'il peut prendre.
$filters = array( "pageName" => "/^main|editAccount|accountCreated|doDisconnect|newIdea|ideaCreated|showIdeasList|showIdea$/", "langCode" => "/^[A-Z]{2}$/", "country" => "/^[0-9]+$/", "userName" => "/^[\\w-.]{5,16}$/",// don't check for password... and never put it in session "password" => null,//"/^[^\"\'\\\]{5,16}$/", "oldPassword" => null,//"/^[^\"\'\\\]{5,16}$/", "confirmPassword" => null,//"/^[^\"\'\\\]{5,16}$/", "email" => "/^[\\w][\\w-.]*@[\\w][\\w-.]*\\.[a-zA-Z]{2,9}$/", "comment" => "/^[0-9]+$/", "commentText" => "/^.+$/s", "action" => "/^add|remove$/", "userId" => "/^[0-9]{1,7}$/", "activationKey" => "/^[\\w]+$/", "sortMode" => "/^byTitle|byAuthor|byPop$/", "page" => "/^[0-9]+$/");function filterParametersArray($arr) {global $filters;foreach ($arr as $key => $value) { if (isset($_SESSION[$key])) { unset($_SESSION[$key]); } $regexp = $filters[$key]; if ($regexp && preg_match($regexp, $value) > 0) { $_SESSION[$key] = $value; }}}function filterParameters() {// Filter GET parametersfilterParametersArray($_GET);// Filter POST parametersfilterParametersArray($_POST);//...}