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

Langage PHP Discussion :

Faille de redirection


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Par défaut Faille de redirection
    Bonjour, j'ai une question concernant la faille de redirection, donc j'ai une page qui permet aux utilisateurs de récuperer leur mot de passe monsite/password
    Une fois le formulaire envoyé correctement ca les rediriges vers monsite/password/send pour leur indiquer que leur mot de passe viens de leur etre envoyé....

    Le truc c'est que si je tape monsite/password/send dans l'url ca m'affiche la page "votre mot de passe vient de vous etre envoyé...." donc je voulais savoir si ca avez une incidence que la sécurité du site ?

    Merci pour votre aide

  2. #2
    Membre expérimenté
    Homme Profil pro
    DSI interne
    Inscrit en
    Juin 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DSI interne
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2011
    Messages : 197
    Par défaut
    Il faut que tu protège cette page. Une fois tes variables de ton formulaire envoyé à ta page de traitement en GET/POST tu dois t'assurer qu'elles existent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(isset($_POST['ta_var']) && $_POST['ta_var'] != ''){
    //Ton traitement
    }else{
    //Vous n'avez rien à faire là
    }
    En espérant t'avoir aidé.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Par défaut
    J'ai essayé mais je pense avoir mit une mauvaise variable.
    Voila ma page de traitement de l'envoi du mdp
    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
    43
    44
    45
    46
    47
    <?php
    require_once 'include/connect.php'; 
     
    if(!empty($_POST)){
    	$email = $_POST['email'];
    	$envoi=isset($_REQUEST['envoi']) ? $_REQUEST['envoi'] : null;
    	$token_password = sha1(uniqid(rand()));
     
    	$_POST['email']=strip_tags($_POST['email']);
    	print_r($_POST);
    if($envoi=='ok'){
    $ok=0;
     
    extract($_POST);
     
    else{	
    if($ok==0){
    //Si l'internaute à rempli les champs correctement ont envoi le token à la base de donnéen et le mail 
    	$req="UPDATE users SET token_password='$token_password' where email='$email' ";
    	$res=mysql_query($req,$cnx);
     
    	$to = $email;
    	$sujet = 'Confirmation de réinisialisation de votre mot de passe';
    	$body = '
    		<div id="conteneur_mail">	
    		</div>
    		';
    	$header = "From: <$email> \n";
    	$header .= "Reply-To: $email";
    	$header = "MIME-Version: 1.0\r\n";
    	$header .="Content-type: text/html; charset=UTF-8\r\n";
    	'Reply-To: ' . "\r\n" . 
    	'X-Mailer: PHP/' .phpversion();		
     
    		if(@mail($to,$sujet,$body,$header)){
    			$valid1 = "Votre mot de passe vient de vous etre envoyé";
    			unset($email);
    			header("location:/password/send"); 
    			}
    			else{
    				$error ="une erreur est survenue";
    			}
    }
    }
    }
    }
    ?>
    Et la page ou doit etre rediriger l'utilisateur si il a bien entré son mail
    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
    <?php 
    if(isset($_POST['envoi']) && $_POST['envoi'] != ''){
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html>
    <head>
    	<link rel='StyleSheet' href="/CSS/style.css" type="text/css">
    </head>
     
    <body>
    <div id="background_conteneur">
    	<div id="conteneur">
    		<div id="conteneur_principal">
    			<e>Une confirmation viens de vous etre envoyé par mail, veuillez cliquer sur le lien afin de recevoir votre nouveau mot de passe</e>
    			</br></br>
    	</div>
     
    </div>
    </div>
    </body>
    </html>
    <?php
    }else{
    	header("location:/Service/tutoservices"); 
    }
    ?>
    Si tu pouvais me filer un petit coup de main

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Par défaut
    un peu d'aide

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    Voici une piste (j'ai pas compris ta cuisine avec $envoi et $ok) :
    Une autre chose : TU NE DOIS JAMAIS FAIRE DIRECTEMENT extract SUR UN TABLEAU GLOBAL ($_POST, $_GET, $_REQUEST, $_FILE)
    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
    <?php
     
    require_once 'include/connect.php';
     
    $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
    $envoi = filter_input(INPUT_POST, 'envoi');
     
    if ($envoi !== 'ok') {
        // redirection vers la sortie
        header('location:......');
        exit;
    }
     
    if ($email) {
        // vérification de l'existence de l'email dans la base de données
        $sql = "SELECT COUNT(id) FROM users WHERE email = '$email'";
        $qry = mysql_query($sql);
        $nb  = mysql_result($qry, 0, 0);
        if ($nb == 0) {
            // pas d'email trouvé : redirection vers la sortie
            header('location:......');
            exit;
        }
    }
     
    // TOUT EST OK -> MISE À JOUR DU MOT DE PASSE
    $sql = "UPDATE users SET token_password = '".sha1(uniqid(rand()))."' where email = '$email'";
    $qry = mysql_query($sql);
     
    /* ... la suite de traitement ... */
     
    ?>

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Par défaut
    merci pour ton aide mais si la personne tape monsite/password/send il pourra voir la page de redirection

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 16/04/2015, 12h22
  2. redirection de trames
    Par Fry dans le forum Développement
    Réponses: 2
    Dernier message: 06/01/2004, 14h31
  3. [VB.NET]Double redirection.
    Par CammCamm dans le forum ASP.NET
    Réponses: 9
    Dernier message: 24/11/2003, 16h11
  4. [VB6] probleme de redirection d'une commande DOS
    Par WriteLN dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/06/2003, 10h36
  5. [reseaux] redirection de flux
    Par Olive1808 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 12/08/2002, 10h24

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