From 850cca76cc79605cf9675013c98823adef0d91f8 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Wed, 30 Dec 2015 17:21:10 +0100 Subject: [PATCH] =?UTF-8?q?D=C3=A9ploiement=20du=20checkParam()=20(princip?= =?UTF-8?q?e=20de=20v=C3=A9rification=20des=20champs=20centralis=C3=A9)=20?= =?UTF-8?q?termin=C3=A9=20(~80)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/career.php | 63 ++++++++++++++++++---------------------------- manager/groups.php | 50 +++++++++++++++--------------------- 2 files changed, 45 insertions(+), 68 deletions(-) diff --git a/manager/career.php b/manager/career.php index 91a9ff9..52b1c8c 100755 --- a/manager/career.php +++ b/manager/career.php @@ -38,12 +38,10 @@ class careerManager{ case 'getNotesEtudiant': if( permission('student') || permission('master') || permission('admin') ){ $areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee) && isset($request->formation); // les arguments existent - $typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->semestre) && is_string($request->annee) && is_numeric($request->formation); // si c'est des strings - $nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && is_numeric($request->semestre) && is_numeric($request->annee); // des bon types - $etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // nom bon format - $formationCheck = $etudiantCheck && preg_match('/^[1-4]+$/i', $request->formation); // formation (formation) bon format - $semestreCheck = $formationCheck && preg_match('/^[1-4]+$/i', $request->semestre); // semestre (semestre) bon format - $anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format + $etudiantCheck = $areSetParam && checkParam($request->etudiant, 'utilisateur.identifiant'); // nom bon format + $formationCheck = $etudiantCheck && checkParam($request->formation, 'auto_increment_id'); // formation (formation) bon format + $semestreCheck = $formationCheck && checkParam($request->semestre, 'semestre.rang'); // semestre (rang) bon format + $anneeCheck = $semestreCheck && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format if( $anneeCheck ){ // si tout les paramètres sont bons $UEs = DataBase::getInstance()->getNotesEtudiant($request->etudiant, $request->formation, $request->semestre, $request->annee); @@ -67,11 +65,9 @@ class careerManager{ /***************************************/ case 'getControlesEnseignant': if( permission('teacher') ){ - $areSetParam = isset($request->enseignant) && isset($request->annee); // les arguments existent - $typeOkParam = $areSetParam && is_string($request->enseignant) && is_string($request->annee); // si c'est des strings - $nEmptyParam = $typeOkParam && strlen($request->enseignant) > 0 && is_numeric($request->annee); // des bon types - $enseignantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->enseignant); // nom bon format - $anneeCheck = $enseignantCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format + $areSetParam = isset($request->enseignant) && isset($request->annee); // les arguments existent + $enseignantCheck = $areSetParam && checkParam($request->enseignant, 'utilisateur.identifiant'); // nom bon format + $anneeCheck = $enseignantCheck && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format if( $anneeCheck ){ // si tout les paramètres sont bons $semestreList = DataBase::getInstance()->getControlesEnseignant($request->enseignant, $_SESSION['semestre_pair'], $request->annee); @@ -96,10 +92,8 @@ class careerManager{ /**********************************/ case 'getControlesForYear': if( permission('master') || permission('admin') ){ - $areSetParam = isset($request->annee); // les arguments existent - $typeOkParam = $areSetParam && is_string($request->annee); // si c'est des strings - $nEmptyParam = $typeOkParam && is_numeric($request->annee); // des bon types - $anneeCheck = $nEmptyParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format + $areSetParam = isset($request->annee); // les arguments existent + $anneeCheck = $areSetParam && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format if( $anneeCheck ){ // si tout les paramètres sont bons $semestreList = DataBase::getInstance()->getControlesForYear($request->annee); @@ -122,10 +116,8 @@ class careerManager{ /****************************************************/ case 'getNotesEnseignant': if( permission('teacher') ){ - $areSetParam = isset($request->enseignant) && isset($request->controle); // les arguments existent - $typeOkParam = $areSetParam && is_string($request->enseignant); // si c'est des strings - $nEmptyParam = $typeOkParam && strlen($request->enseignant) > 0 && is_numeric($request->controle); // des bon types - $enseignantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->enseignant); // nom bon format + $areSetParam = isset($request->enseignant) && isset($request->controle); // les arguments existent + $enseignantCheck = $areSetParam && checkParam($request->enseignant, 'utilisateur.identifiant'); // nom bon format // paramètre optionnel $optionalGroupe = isset($request->groupe) && is_numeric($request->groupe); @@ -157,17 +149,17 @@ class careerManager{ /************************************/ case 'getNotesForYear': if( permission('master') || permission('admin') ){ - $areSetParam = isset($request->controle); // les arguments existent - $nEmptyParam = $areSetParam && is_numeric($request->controle); // des bon types + $areSetParam = isset($request->controle); // les arguments existent + $controleCheck = $areSetParam && checkParam($request->controle, 'auto_increment_id'); // des bon types // paramètre optionnel - $optionalGroupe = isset($request->groupe) && is_numeric($request->groupe); + $optionalGroupe = isset($request->groupe) && checkParam($request->groupe, 'auto_increment_id'); // définition (ou pas) du paramètre optionnel if( $optionalGroupe ) $groupe = $request->groupe; else $groupe = null; - if( $nEmptyParam ){ // si tout les paramètres sont bons + if( $controleCheck ){ // si tout les paramètres sont bons $controle = DataBase::getInstance()->getNotesForControle($_SESSION['annee'], $request->controle, $groupe); if( is_array($controle) ){ // si on a bien un tableau @@ -188,9 +180,8 @@ class careerManager{ /**********************************************/ case 'studentcase': if( permission('master') || permission('admin') ){ - $areSetParam = isset($request->etudiant) ; // les arguments existent - $typeOkParam = $areSetParam && is_string($request->etudiant); // si c'est des strings - $etudiantCheck = $typeOkParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // nom bon format + $areSetParam = isset($request->etudiant); // les arguments existent + $etudiantCheck = $areSetParam && checkParam($request->etudiant, 'utilisateur.identifiant'); // nom bon format if( $etudiantCheck ){ // si tout les paramètres sont bons $parcours = DataBase::getInstance()->getParcoursEtudiant($request->etudiant); @@ -216,9 +207,7 @@ class careerManager{ case 'saisieNote': if( (permission('teacher') || permission('admin')) && $_SESSION['annee'] >= getCurrentYear() ){ $areSetParam = isset($request->etudiant) && isset($request->controle) && isset($request->note); // les arguments existent - $typeOkParam = $areSetParam && is_string($request->etudiant); // si c'est des strings - $nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && is_numeric($request->controle) && is_numeric($request->note); // des bon types - $etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // nom bon format + $etudiantCheck = $areSetParam && checkParam($request->etudiant, 'utilisateur.identifiant'); // nom bon format if( $etudiantCheck ){ // si tout les paramètres sont bons $answer->request = DataBase::getInstance()->saisieNote($request->etudiant, $request->controle, $request->note); @@ -237,7 +226,7 @@ class careerManager{ $areSetParam = isset($request->notes) && isset($request->controle); // les arguments existent $typeOkParam = $areSetParam && is_array($request->notes) && is_numeric($request->controle); // si c'est des strings - $nEmptyParam = $typeOkParam && count($request->notes) > 1; // des bon types + $nEmptyParam = $typeOkParam && count($request->notes) > 0; // des bon types if( $nEmptyParam ){ // si tout les paramètres sont bons $answer->request = DataBase::getInstance()->saisieNoteMultiple($request->controle, $request->notes); @@ -255,7 +244,7 @@ class careerManager{ case 'publicationcontrole': if( permission('admin') && $_SESSION['annee'] >= getCurrentYear() ){ $areSetParam = isset($request->controle) && isset($request->publication); // les arguments existent - $typeOkParam = $areSetParam && is_numeric($request->controle) && is_bool($request->publication); // si les types sont bons + $typeOkParam = $areSetParam && checkParam($request->controle, 'auto_increment_id') && is_bool($request->publication); // si les types sont bons if( $typeOkParam ){ // si tout les paramètres sont bons if( DataBase::getInstance()->publicationControle($request->controle, $request->publication) ) @@ -315,13 +304,11 @@ class careerManager{ case 'creerSemestre': if( permission('admin') ){ $areSetParam = isset($request->annee) && isset($request->formation) && isset($request->nom_formation) && isset($request->semestre) && isset($request->rang); // les arguments existent - $typeOkParam = $areSetParam && is_string($request->formation) && is_string($request->nom_formation) && is_string($request->semestre); // si c'est des strings - $nEmptyParam = $typeOkParam && strlen($request->formation) > 0 && strlen($request->nom_formation) > 0 && strlen($request->semestre) > 0 && is_numeric($request->annee) && is_numeric($request->rang); // des bon types - $anneeCheck = $nEmptyParam && preg_match('/[0-4]/i', $request->annee); // l'année est au bon format - $formationCheck = $anneeCheck && preg_match('/[\w]{0,10}/i', $request->formation); // le code de la formation est au bon format - $nomFormationCheck = $formationCheck && preg_match('/[\w ]{0,100}/i', $request->nom_formation); // le nom de la formation est au bon format - $semestreCheck = $nomFormationCheck && preg_match('/[\w -]{0,10}/i', $request->semestre); // le nom du semestre est au bon format - $rangCheck = $semestreCheck && preg_match('/\d/i', $request->rang); // l'année est au bon format + $anneeCheck = $areSetParam && checkParam($request->annee, 'semestre.annee'); // l'année est au bon format + $formationCheck = $anneeCheck && checkParam($request->formation, 'formation.code'); // le code de la formation est au bon format + $nomFormationCheck = $formationCheck && checkParam($request->nom_formation, 'formation.nom'); // le nom de la formation est au bon format + $semestreCheck = $nomFormationCheck && checkParam($request->semestre, 'semestre.nom'); // le nom du semestre est au bon format + $rangCheck = $semestreCheck && checkParam($request->rang, 'semestre.rang'); // le rang est au bon format if( $rangCheck ){ // si tout les paramètres sont bons diff --git a/manager/groups.php b/manager/groups.php index 2191c59..da7826a 100755 --- a/manager/groups.php +++ b/manager/groups.php @@ -38,10 +38,8 @@ class groupsManager{ /************************/ case 'create': if( false && permission('admin') ){ - $areSetParam = isset($request->nom) ; // l'argument existe - $typeOkParam = $areSetParam && is_string($request->nom); // si c'est une string - $nEmptyParam = $typeOkParam && strlen($request->nom) > 0; // d'au moins 1 caractère - $nomCheck = $nEmptyParam && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->nom); // nom bon format + $areSetParam = isset($request->nom) ; // l'argument existe + $nomCheck = $areSetParam && checkParam($request->nom, 'groupe.nom'); // nom bon format if( $nomCheck ){ // si tout les paramètres sont bons $answer->request = DataBase::getInstance()->creerGroupe($request->nom); @@ -58,12 +56,10 @@ class groupsManager{ case 'add': if( false && permission('admin') ){ $areSetParam = isset($request->etudiant) && isset($request->groupe) && isset($request->semestre) && isset($request->annee); // les arguments existent - $typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->groupe) && is_numeric($request->semestre) && is_numeric($request->annee); // si c'est des strings - $nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && strlen($request->groupe) > 0; // d'au moins 1 caractère - $etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format - $groupeCheck = $etudiantCheck && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // groupe (nom) bon format - $semestreCheck = $groupeCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format - $anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format + $etudiantCheck = $areSetParam && checkParam($request->etudiant, 'utilisateur.identifiant'); // etudiant (username) bon format + $groupeCheck = $etudiantCheck && checkParam($request->groupe, 'groupe.nom'); // groupe (nom) bon format + $semestreCheck = $groupeCheck && checkParam($request->semestre, 'semestre.rang'); // semestre (rang) bon format + $anneeCheck = $semestreCheck && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format if( $anneeCheck ){ // si tout les paramètres sont bons $answer->request = DataBase::getInstance()->ajouterEtudiantGroupe($request->etudiant, $request->groupe, $request->semestre, $request->annee); @@ -80,11 +76,10 @@ class groupsManager{ case 'userlist': if( permission('student') ){ $areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee) && isset($request->formation); // les arguments existent - $typeOkParam = $areSetParam && is_string($request->etudiant) && is_numeric($request->semestre) && is_numeric($request->annee) && is_numeric($request->formation); // si c'est des strings - $etudiantCheck = $typeOkParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format - $formationCheck = $etudiantCheck && preg_match('/^[1-4]{1}$/i', $request->formation); // formation (formation) bon format - $semestreCheck = $formationCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format - $anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format + $etudiantCheck = $areSetParam && checkParam($request->etudiant, 'utilisateur.identifiant'); // etudiant (username) bon format + $formationCheck = $etudiantCheck && checkParam($request->formation, 'auto_increment_id'); // formation (formation) bon format + $semestreCheck = $formationCheck && checkParam($request->semestre, 'semestre.rang'); // semestre (rang) bon format + $anneeCheck = $semestreCheck && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format if( $anneeCheck ){ // si tout les paramètres sont bons $userlist = DataBase::getInstance()->listeEtudiantsGroupe($request->etudiant, $request->formation, $request->semestre, $request->annee); @@ -107,10 +102,8 @@ class groupsManager{ /**************************************/ case 'getSemestre': if( permission('student') ){ - $areSetParam = isset($request->etudiant); // les arguments existent - $typeOkParam = $areSetParam && is_string($request->etudiant); // si c'est des strings - $nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0; // d'au moins 1 caractère - $etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format + $areSetParam = isset($request->etudiant); // les arguments existent + $etudiantCheck = $areSetParam && checkParam($request->etudiant, 'utilisateur.identifiant'); // etudiant (username) bon format if( $etudiantCheck ){ // si tout les paramètres sont bons @@ -136,10 +129,9 @@ class groupsManager{ case 'grouplist': if( permission('student') ){ $areSetParam = isset($request->semestre) && isset($request->annee) && isset($request->formation); // les arguments existent - $typeOkParam = $areSetParam && is_numeric($request->semestre) && is_numeric($request->annee) && is_numeric($request->formation); // si c'est des strings - $formationCheck = $typeOkParam && preg_match('/^[1-4]{1}$/i', $request->formation); // formation (formation) bon format - $semestreCheck = $formationCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format - $anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format + $formationCheck = $areSetParam && checkParam($request->formation, 'auto_increment_id'); // formation (formation) bon format + $semestreCheck = $formationCheck && checkParam($request->semestre, 'semestre.rang'); // semestre (rang) bon format + $anneeCheck = $semestreCheck && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format if( $anneeCheck ){ @@ -163,10 +155,9 @@ class groupsManager{ /*****************************************************************************/ case 'grouplistForTeacher': if( permission('teacher') || permission('admin') ){ - $areSetParam = isset($request->annee) && isset($request->enseignant); // les arguments existent - $typeOkParam = $areSetParam && is_numeric($request->annee) && is_string($request->enseignant); // si c'est des strings - $anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format - $enseignantCheck = $anneeCheck && preg_match('/^[\w -]{3,50}$/i', $request->enseignant); // enseignant (annee) bon format + $areSetParam = isset($request->annee) && isset($request->enseignant); // les arguments existent + $anneeCheck = $areSetParam && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format + $enseignantCheck = $anneeCheck && checkParam($request->enseignant, 'utilisateur.identifiant'); // enseignant (annee) bon format if( $enseignantCheck ){ @@ -190,9 +181,8 @@ class groupsManager{ /********************************************************************/ case 'grouplistForYear': if( permission('master') || permission('teacher') || permission('admin') ){ - $areSetParam = isset($request->annee); // les arguments existent - $typeOkParam = $areSetParam && is_numeric($request->annee); // si c'est des strings - $anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format + $areSetParam = isset($request->annee); // les arguments existent + $anneeCheck = $areSetParam && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format if( $anneeCheck ){