IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Accès sécurisé aléatoire


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Freedolphin
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2006
    Messages : 291
    Par défaut Accès sécurisé aléatoire
    Bonjour,

    J'ai mis en place un accès sécurisé pour une petite admin, mais il marche quand il veut et je n'ai pas d'explication rationnelle (en tout cas, je n'en trouve pas).
    J'ai repris le script phplogin qui fonctionne avec une table contenant un code temporaire (id de session), la date (pour vérifier la validité), le login et le mot de passe. Ca marche très bien avec une durée de session de 15 sec mais à 1800 ou 3600 ça coince : le login est impossible (?).
    Alors, si quelqu'un voit qq chose, moi je suis perdu, j'y ai passé les 2 dernières journées, à tout tester, en vain...

    Le formulaire de login fait la vérif avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    connexion();
    no_cache();
     
    if(intval($login)==1 && isset($id))
    	{
    	$requete=requete("UPDATE "._TABLE_." set CodeTemporaire='', Date=NOW()-100 where CodeTemporaire='".$id."' ");
    	header("Location: ".$pagelogin);
    	}
    else
    	{
    	// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET
    	// MOT DE PASSE SAISIS 
    	$requete=requete("select Pseudo,Passe from "._TABLE_." where Pseudo='".$pseudo_membre."' and Passe='".$passe_membre."'");
     
    	// SI AUCUN ENREGISTREMENT NE CORRESPOND
    	if(mysql_num_rows($requete)==0)
    		{
    		// REDIRECTION VERS LA PAGE ERREUR
    		header("Location: ".$pagelogin);
    		}
    	// SI LE LOGIN ET MOT DE PASSE SONT EXACTES	
    	else
    		{
    		// CREATION D'UN IDENTIFIANT ALEATOIRE
    		$taille = 50;
    		$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
    		srand(time());
    		for ($i=0;$i<$taille;$i++)
    			{
    			$id.=substr($lettres,(rand()%(strlen($lettres))),1);
    			}
     
    		// MISE A JOUR DE L'IDENTIFIANT DANS LA TABLE 
    		$requete=requete("UPDATE "._TABLE_." set CodeTemporaire='".$id."', Date=NOW()+".$validitesession." where Pseudo='".$pseudo_membre."' and Passe='".$passe_membre."'");
     
    		// REDIRECTION VERS UNE PAGE PROTEGEE AVEC L'IDENTIFIANT SERVANT DE CLE
    		header("Location:".$pagelogged."?id=".$id);
    		}	
     
    	// DECONNEXION MYSQL
    	deconnexion();
    	}
    Puis sur la page où l'on doit arriver, un fichier de sécurisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    no_cache();
     
    // CONNEXION MYSQL
    connexion();
     
    // SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
    $requete=requete("select * from "._TABLE_." where CodeTemporaire='".$id."' and Date>NOW()");
     
    // SI L'ID N'EXISTE PAS
    if(mysql_num_rows($requete)==0)
    	{
    	// REDIRECTION PAGE ERREUR
    	requete("UPDATE "._TABLE_." set CodeTemporaire='', Date=NOW()-100");
    	header("Location:".$pagelogin);
    	exit;
    	}
     
    // LIGNE FACULTATIVE : RECUPERATION DU PSEUDO
    $pseudo=mysql_result($requete,0,"Pseudo");
     
     
    // DECONNEXION MYSQL	
    deconnexion();
    Je n'ai pas mis les include concernant les fonctions et les variables.

    Merci de votre aide !

  2. #2
    Membre expérimenté Avatar de juliens9
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 192
    Par défaut
    Tu as bien mis du start_session() dans ton code, ou configurer l'autostart sur ton serveur php

  3. #3
    Membre éclairé
    Avatar de Freedolphin
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2006
    Messages : 291
    Par défaut
    Non je n'ai pas de start_session(), mais quand je le rajoute dans la page de verif, ça crée une erreur.
    Sinon, je ne sais pas comment configurer l'autostart. Mais ce qui est bizarre, c'est que ça marche 1 fois sur 5 ?

Discussions similaires

  1. accès sécurisé personnalisé
    Par oclone dans le forum Apache
    Réponses: 1
    Dernier message: 20/05/2008, 15h18
  2. Accès sécurisé vers des relevés de notes
    Par matimat2k4 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/05/2008, 18h25
  3. [Sécurité] Espace membre et accès sécurisé
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 27/02/2008, 15h29
  4. [MediaWiki] Un accès sécurisé pour mon MediaWiki
    Par Scroll dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 26/12/2007, 14h30
  5. Accès sécurisé simple sur un site HTML
    Par unreal2me dans le forum Sécurité
    Réponses: 3
    Dernier message: 25/06/2007, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo