Bonjour,
Pourriez vous me dire ce que vous pensez de la sécurité de ce script que j'ai créer qui permet de se loguer et protéger mes pages.
Le script de connexion
Code :
- <?php
- session_start();
- $_SESSION['logged'] = 0;
- include("".$_SERVER['DOCUMENT_ROOT']."/script_php/fonctions_php/fonction_racine.php" );
- if(!empty($_POST['login']) && (!empty($_POST['mdp']))) {
- require("".$racine."/securite/sql/connexion_sql.class.php" );
- /*================ CONNEXION A LA BDD =============== */
- $connexion = new connexion_sql();
- $connexion = $connexion->connexion_PDO();
- /*=======================================================*/
- $login = trim($_POST['login']);
- $pass = mhash(MHASH_SHA256, trim($_POST['mdp']));
- $page_precedente = $_POST['page_precedente'];
- $requete_prepare_log = $connexion->prepare("SELECT login, pass, droit FROM admin_membres WHERE login = :login" );
- $requete_prepare_log->execute(array(':login', => $login));
- if($utilisateur = $requete_prepare_log->fetch(PDO::FETCH_OBJ)) {
- if($pass == $utilisateur->pass) {
- $_SESSION['user'] = $utilisateur;
- $_SESSION['ip_client'] = $_SERVER['REMOTE_ADDR'];
- $_SESSION['HTTP_USER_AGENT'] = mhash(MHASH_SHA256, $_SERVER['HTTP_USER_AGENT']);
- $_SESSION['logged'] = 1;
- $_SESSION['iniated'] = true;
- $requete_prepare_log->closeCursor();
- header("Location:".$page_precedente."" );
- die();
- }
- else {
- $requete_prepare_log->closeCursor();
- header("Location:".$racine_relatif."/admin/login.php?erreur=1" );
- die();
- }
- }
- else {
- $requete_prepare_log->closeCursor();
- header("Location:".$racine_relatif."/admin/login.php?erreur=1" );
- die();
- }
- }
- else {
- header("Location:".$racine_relatif."/admin/login.php?erreur=2" );
- die();
- }
- ?>
|
La fonction a mettre en debut de chaque page
Code :
- function page_securite() {
- ini_set('session.use_trans_sid', 0);
- session_start();
- if (!isset($_SESSION['initiated'])) {
- session_regenerate_id();
- $_SESSION['initiated'] = true;
- }
- if(isset($_SESSION['logged'])) {
- if($_SESSION['logged'] == 1) {
- if(isset($_SESSION['ip_client']) && ($_SESSION['ip_client'] == $_SERVER['REMOTE_ADDR'])) {
- if (isset($_SESSION['HTTP_USER_AGENT'])) {
- if ($_SESSION['HTTP_USER_AGENT'] == mhash(MHASH_SHA256, $_SERVER['HTTP_USER_AGENT'])) {
- if(isset($_SESSION['user'])) {
- return true;
- }
- }
- }
- }
- }
- }
- return false;
- }
|
Sur chaques pages
Code :
- if(!page_securite()) {
- header(Page d'erreur);
- die();
- }
- else {
- On affiche la page
- }
|
Je vais ajouter en plus de cela une gestion avec cookies qui me permettre de me souvenir de l'utilisateur.
Merci d'avance pour vos avis et critiques
Message édité par lilougirl8 le 11-02-2008 à 11:32:13