From 452420d0cd05822a9974fe27f0edc4cc4dc300cc Mon Sep 17 00:00:00 2001 From: polo Date: Wed, 18 Aug 2021 10:45:26 +0200 Subject: password --- controller/admin.php | 52 ------------- controller/installation.php | 14 +++- controller/password.php | 178 ++++++++++++++++++++++++++++++++++++++++++-- controller/visitor.php | 51 +------------ 4 files changed, 185 insertions(+), 110 deletions(-) (limited to 'controller') diff --git a/controller/admin.php b/controller/admin.php index 29ccd41..0abdb1c 100644 --- a/controller/admin.php +++ b/controller/admin.php @@ -90,55 +90,3 @@ function discoEdit($numArticle, $suppression) // fin de l'assemblage require('view/template.php'); } - -function changerMotDePasse($secret) -{ - // vérification supplémentaire - if($_SESSION['admin'] !== 1) - { - $_SESSION['admin'] = 0; - header('Location: index.php?page=' . $_GET['from']); - exit(); - } - - // Ajouter une sécurité par cpatcha avec un "input" supplémentaire - // Et créer une variable de session pour la réponse au CAPTCHA - - $title = "nouveau mot de passe"; - $subHeading = "Veuillez saisir votre actuel mot de passe suivi du nouveau."; - - // cette page utilise la même vue que la fonction connexion() dans controller/visiteur.php - require('view/connexion.php'); - - echo($header); - - // traitements: vérification ancien mot de passe et choix du nouveau - // bon mot de passe - if(isset ($_POST["ancienMotdepasse"]) AND $_POST["ancienMotdepasse"] == $secret) - { - // confirmation - echo($message); - //exit(); - - /*header('Location: index.php?page=' . $_GET['from'] . '&message=nouveau_mdp'); - exit();*/ - } - - // mauvais mot de passe - elseif(isset ($_POST["ancienMotdepasse"]) AND $_POST["ancienMotdepasse"] != $secret) - { - // défense aux attaques par force brute - // pas parfait, ne marche pas si l'attaquant multiplie les connexions au site - echo($erreurMDP); - sleep(1); - echo($formulaireNouveauMDP); - } - - // première arrivée sur la page - else - { - echo($formulaireNouveauMDP); - } - - echo($footer); -} diff --git a/controller/installation.php b/controller/installation.php index e7136a5..42212f5 100644 --- a/controller/installation.php +++ b/controller/installation.php @@ -49,7 +49,7 @@ function installation() // - modifier ceux du dossier parent (nom du site) avec son client FTP à la mise en ligne chez l'hébergeur et ensuite remettre tout comme avant // le 0 devant signifie que le nombre est en octal - // on pourra changer cette valeur à la mise en production du site si le script d'upload des données est bon + // changer cette valeur à la mise en production du site si le script d'upload des données est bon $droitsDossiers = 0777; $listePages = array('melaine', 'discographie', 'concerts', 'presse', 'ateliers', 'liens', 'peinture', 'archives'); @@ -82,5 +82,15 @@ function installation() mkdir('data/discographie/json'); chmod('data/discographie/json', $droitsDossiers); } - // donner les droits 666 aux fichiers à l'intérieur + // fichier password.txt + if(!file_exists('data/password.txt')) + { + touch('data/password.txt'); + chmod('data/password.txt', 0600); + } + + // le modèle donnera les droits 0666 (octal) aux nouveaux fichiers à l'intérieur des dossiers + + // création d'un mot de passe si password.txt est vide + createPassword(); } diff --git a/controller/password.php b/controller/password.php index 987670f..4ca9f4f 100644 --- a/controller/password.php +++ b/controller/password.php @@ -1,16 +1,180 @@ setPage($page_actuelle); $Articles->getFiles(); $Articles->reverseFilesArray(); - $articles = $Articles->getAll(); + $articles = $Articles->getAll(); // lourd // vérification pour protéger les visiteurs // normalement déjà faite dans submit.php, au cas où la base a été trafiquée @@ -79,51 +79,4 @@ function peinture() {} function archives() -{} - -function connexion($secret) -{ - // déjà en mode admin - if($_SESSION['admin'] == 1) - { - header('Location: index.php?page=' . $_GET['from']); - exit(); - } - - // Ajouter une sécurité par cpatcha avec un "input" supplémentaire - // Et créer une variable de session pour la réponse au CAPTCHA - - $title = "connexion"; - $subHeading = "Veuillez saisir votre mot de passe pour pouvoir apporter des modifications au site."; - - // cette page utilise la même vue que la fonction changerMotDePasse() dans controller/admin.php - require('view/connexion.php'); - - echo($header); - - // bon mot de passe - if(isset ($_POST["motdepasse"]) AND $_POST["motdepasse"] == $secret) - { - $_SESSION['admin'] = 1; - header('Location: index.php?page=' . $_GET['from']); - exit(); - } - - // mauvais mot de passe - elseif(isset ($_POST["motdepasse"]) AND $_POST["motdepasse"] != $secret) - { - // défense aux attaques par force brute - // pas parfait, ne marche pas si l'attaquant multiplie les connexions au site - echo($erreurMDP); - sleep(1); - echo($formulaireConnexion); - } - - // première arrivée sur la page - else - { - echo($formulaireConnexion); - } - - echo($footer); -} +{} \ No newline at end of file -- cgit v1.2.3