Sécuriser les urls
Résolu
LaChaux78
Messages postés
583
Date d'inscription
Statut
Membre
Dernière intervention
-
LaChaux78 Messages postés 583 Date d'inscription Statut Membre Dernière intervention -
LaChaux78 Messages postés 583 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Sécuriser les urls
- Comment sécuriser un dossier sur pc - Guide
- Urls - Guide
- Sécuriser une clé usb - Guide
- Mode securiser - Guide
- Comment sécuriser un pdf - Guide
11 réponses
Dans ton fichier profil.php
Le lien pour la modification n'a plus besoin de l'di (vu que tu l'as en session)
donc ceci :
devient :
Pour ta page modif_profil.php
Il faut déplacer ton if($_POST)
car là... tu ne rentres jamais dedans vu que tu n'as pas fais de submit de ta page...
Ce qui donnerait un truc du genre :
NB: Attention ! Tu utilises encore l'ancienne extension mysql considérée comme OBSOLETE. Je t'invite vivement à passer à mysqli ou PDO.
Le lien pour la modification n'a plus besoin de l'di (vu que tu l'as en session)
donc ceci :
<li> - <a href="./modif_profil.php?idpers=<?php echo $r->idpers;?>">Modifier mon profil</a></li>
devient :
<li> - <a href="./modif_profil.php" rel="nofollow noopener noreferrer" target="_blank">Modifier mon profil</a></li>
Pour ta page modif_profil.php
Il faut déplacer ton if($_POST)
car là... tu ne rentres jamais dedans vu que tu n'as pas fais de submit de ta page...
Ce qui donnerait un truc du genre :
<h1>Modifier mon profil</h1> <?php //récupération de l'id du user $idpers = isset($_SESSION['idpers']) ? $_SESSION['idpers'] : ''; if(isset($_POST)) { $nom = isset($_POST['nom']) ? $_POST['nom'] : ''; $prenom = isset($_POST['prenom']) ? $_POST['prenom'] : ''; $email = isset($_POST['email']) ? $_POST['email'] : ''; $dnaiss = isset($_POST['dnaiss']) ? $_POST['dnaiss'] : ''; $telf = isset($_POST['telf']) ? $_POST['telf'] : ''; $telm = isset($_POST['telm']) ? $_POST['telm'] : ''; $adr1 = isset($_POST['adr1']) ? $_POST['adr1'] : ''; $adr2 = isset($_POST['adr2']) ? $_POST['adr2'] : ''; $lieudit = isset($_POST['lieudit']) ? $_POST['lieudit'] : ''; $cpostal = isset($_POST['cpostal']) ? $_POST['cpostal'] : ''; $ville = isset($_POST['ville']) ? $_POST['ville'] : ''; $pseudo = isset($_POST['pseudo']) ? $_POST['pseudo'] : ''; $passwd = isset($_POST['passwd']) ? $_POST['passwd'] : ''; $requete = "UPDATE cdc_personnes SET nom='$nom',prenom='$prenom',email='$email',dnaiss='$dnaiss',telf='$telf',telm='$telm',adr1='$adr1',adr2='$adr2',lieudit='$lieudit',cpostal='$cpostal',ville='$ville',pseudo='$pseudo',passwd='$passwd' WHERE idpers='$idpers'"; $resultat = execRequete($requete,$connexion); } //Récupération des infos du user $requete = "SELECT * FROM cdc_personnes WHERE idpers='".$idpers."'"; $resultat = execRequete($requete,$connexion); //affichage des infos : //(pas besoin de boucle puisque qu'il n'y a qu'un seul user ) $r=mysql_fetch_object($resultat); ?> <form method="post" name="modif" action="" onsubmit="return verif()"> <table> <tr> <td class="libel">Nom</td> <td class="data"><input type="text" name="nom" size="25" value="<?php echo $r->nom;?>" class="oblig"></td> </tr> <tr> <td class="libel">Prénom</td> <td class="data"><input type="text" name="prenom" size="25" value="<?php echo $r->prenom;?>" class="oblig"></td> </tr> <tr> <td class="libel">e-Mail</td> <td class="data"><input type="text" name="email" size="45" value="<?php echo $r->email;?>"></td> </tr> <tr> <td class="libel">Date de naissance</td> <td class="data"><input type="text" name="dnaiss" size="8" value="<?php echo $r->dnaiss;?>" class="oblig"></td> </tr> <tr> <td class="libel">Téléphone fixe</td> <td class="data"><input type="text" name="telf" size="12" value="<?php echo $r->telf;?>"></td> </tr> <tr> <td class="libel">Téléphone mobile</td> <td class="data"><input type="text" name="telm" size="12" value="<?php echo $r->telm;?>"></td> </tr> <tr> <td class="libel">Adresse postale</td> <td class="data"><input type="text" name="adr1" size="45" value="<?php echo $r->adr1;?>"></td> </tr> <tr> <td class="libel">Complément d'adresse</td> <td class="data"><input type="text" name="adr2" size="45" value="<?php echo $r->adr2;?>"></td> </tr> <tr> <td class="libel">Lieu-dit</td> <td class="data"><input type="text" name="lieudit" size="45" value="<?php echo $r->lieudit;?>"></td> </tr> <tr> <td class="libel">Code postal</td> <td class="data"><input type="text" name="cpostal" size="5" value="<?php echo $r->cpostal;?>"></td> </tr> <tr> <td class="libel">Ville</td> <td class="data"><input type="text" name="ville" size="30" value="<?php echo $r->ville;?>"></td> </tr> <tr> <td class="libel">Pseudo</td> <td class="data"><input type="text" name="pseudo" size="30" value="<?php echo $r->pseudo;?>" class="oblig">></td> </tr> <tr> <td class="libel">Mot de passe</td> <td class="data"><input type="text" name="passwd" size="30" value="<?php echo $r->passwd;?>" class="oblig">></td> </tr> <tr> <td> <input type="hidden" name="idpers" value="<?php echo $idpers; ?>"> </td> <td class="data"><input type="submit" name="action" value="Enregistrer"></td> </tr> </table> </form> <p>NB: La saisie dans les zones à fond jaune pâle est obligatoire.</p>
NB: Attention ! Tu utilises encore l'ancienne extension mysql considérée comme OBSOLETE. Je t'invite vivement à passer à mysqli ou PDO.
Bonjour,
L'idéal serait de stocker l'identifiant de l'utilisateur en session. Comme ça, il n'a pas besoin de passer vers le client.
Tu as bien un mécanisme de login sur ton site ? Je suppose que dans ce mécanisme, tu crées une session. Tu peux mettre l'identifiant dans la session à ce moment-là.
Xavier
L'idéal serait de stocker l'identifiant de l'utilisateur en session. Comme ça, il n'a pas besoin de passer vers le client.
Tu as bien un mécanisme de login sur ton site ? Je suppose que dans ce mécanisme, tu crées une session. Tu peux mettre l'identifiant dans la session à ce moment-là.
Xavier
Bonjour,
Ce que tu peux faire, c'est dès que l'utilisateur arrive sur la page tu regardes si sont ID est égale a celui dans l'URL.
Sinon, comme Reivax, tu stockes sont ID en session et quand la page est appelé tu le récupères.
Cordialement,
Ce que tu peux faire, c'est dès que l'utilisateur arrive sur la page tu regardes si sont ID est égale a celui dans l'URL.
Sinon, comme Reivax, tu stockes sont ID en session et quand la page est appelé tu le récupères.
Cordialement,
Bonjour,
Merci pour vos réponses.
J'ai bien mis id en SESSION pourtant, je ne comprends pas voici mon fichier de connexion.
Merci pour vos réponses.
J'ai bien mis id en SESSION pourtant, je ne comprends pas voici mon fichier de connexion.
if($_POST["submit"]) { //on vérifie si le login et password ne sont pas vide, nulle ou non définie if (!empty($_POST['pseudo']) && (!empty($_POST['passwd']))){ //on récupère les valeurs des champs $login = trim($_POST["pseudo"]); $passwd = trim($_POST["passwd"]); //on sélectionne la table cdc_personnes et on teste le champ pseudo $requete = "SELECT * FROM ".TBPERS." WHERE pseudo='".$pseudo."'"; $resultat = execRequete($requete,$connexion); // on affiche la requète $r = mysql_fetch_object($resultat); //si le password est différent on met un message d'erreur if($r->passwd != $passwd){ echo "<span class='erreur'>Mauvais mot de passe...ou Mauvais login...<br/> Merci de recommencer.</span>"; //sinon on cré les variables de SESSIONS } else { $_SESSION['pseudo'] = $pseudo; $_SESSION['idpers'] = $r->idpers; $_SESSION['passwd'] = $r->passwd; $_SESSION['nom'] = $r->nom; $_SESSION['prenom'] = $r->prenom; } } else { echo "<span class='erreur'>Veuillez remplir tous les champs !!!</span>"; } }
Bonjour,
Tu as donc la variable
Donc dans ta page modif_profil.php
il te suffit d'utiliser cette variable pour savoir quel est l'id du user à modifier.
Plus besoin de la variable GET dans l'url.
PS: Il ne faudra pas oublier de mettre un session_start au début de ta page.
NB: Ta ligne
Sera donc remplacée par :
Tu as donc la variable
$_SESSION['idpers']qui contient l'ID du user.
Donc dans ta page modif_profil.php
il te suffit d'utiliser cette variable pour savoir quel est l'id du user à modifier.
Plus besoin de la variable GET dans l'url.
PS: Il ne faudra pas oublier de mettre un session_start au début de ta page.
NB: Ta ligne
$idpers = isset($_GET['idpers']) ? $_GET['idpers'] : '';
Sera donc remplacée par :
$idpers = isset($_SESSION['idpers']) ? $_SESSION['idpers'] : '';
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alors encore un petit soucis toujours concrenant l'url
Lorsque je me connecte donc maintenant impossible de changer l'id.
Mais avant de me deconnecté je fait un copié de l'url ensuite je me déconnecte et je colle l'adresse je suis redirigé vers mon profil et ensuite je peux modifier les profils en changeant l'id, je viens de faire plusieurs essaie....
c'est fou.....
Lorsque je me connecte donc maintenant impossible de changer l'id.
Mais avant de me deconnecté je fait un copié de l'url ensuite je me déconnecte et je colle l'adresse je suis redirigé vers mon profil et ensuite je peux modifier les profils en changeant l'id, je viens de faire plusieurs essaie....
c'est fou.....
En fait j'ai 3 pages je vous envoie mes 3 pages complète si vous pouvez m'aider à résoudre le problème
une pour la connexion ou il y a le formulaire (prive.php)
une pour le lien de modification (profil.php)
une pour la modification des profil (modif_profil.php
Voici la page de connexion (prive.php)
une pour la connexion ou il y a le formulaire (prive.php)
une pour le lien de modification (profil.php)
une pour la modification des profil (modif_profil.php
Voici la page de connexion (prive.php)
<?php if($_POST["submit"]) { //on vérifie si le login et password ne sont pas vide, nulle ou non définie if (!empty($_POST['pseudo']) && (!empty($_POST['passwd']))){ //on récupère les valeurs des champs $login = trim($_POST["pseudo"]); $passwd = trim($_POST["passwd"]); //on sélectionne la table cdc_personnes et on teste le champ pseudo $requete = "SELECT * FROM cdc_personnes WHERE pseudo='".$pseudo."'"; $resultat = execRequete($requete,$connexion); // on affiche la requète $r = mysql_fetch_object($resultat); //si le password est différent on met un message d'erreur if($r->passwd != $passwd){ echo "<span class='erreur'>Mauvais mot de passe...ou Mauvais login...<br/> Merci de recommencer.</span>"; //sinon on cré les variables de SESSIONS } else { $_SESSION['pseudo'] = $pseudo; $_SESSION['idpers'] = $r->idpers; $_SESSION['passwd'] = $r->passwd; $_SESSION['nom'] = $r->nom; $_SESSION['prenom'] = $r->prenom; } } else { echo "<span class='erreur'>Veuillez remplir tous les champs !!!</span>"; } } ?> <!--#######################################################################################################################################--> <div id="identifiant_perdu"> <?php $envoie_identifiant = '<a href="?body=envoie_identifiant&type=accueil" rel="nofollow noopener noreferrer" target="_blank">[ Cliquez ici ]</a>'; if (isset($_GET['body']) && $_GET['body'] == 'envoie_identifiant'){ $envoie_identifiant = 'Cliquez ici'; } ?> <div> <fieldset class="identifiant_perdu"> <center><p class="identifiant_perdu">Vous avez perdu vos identifiants ?<center><?php echo $envoie_identifiant;?></center></p></center> </fieldset> </div> </div> <!--#######################################################################################################################################--> <div id="connexion_form"> <script type="text/javascript" charset="utf-8"> $(document).ready(function(){ <?php if (isset($_SESSION['idpers']) && $_SESSION['idpers'] != NULL) { ?> $('#SeConnecter, #DeconnexionReussie').hide();//cacher <?php } if (!isset($_SESSION['idpers'])) { ?> $('#DeconnexionReussie, #SeDeconnecter').hide();//cacher <?php } ?> }) </script> <!--#######################################################################################################################################--> <form name="SeConnecter" id="SeConnecter" action="#" method="post" enctype="multipart/form-data"> <fieldset class="fieldset_connexion"> <legend class="legend_connexion">Se connecter</legend> <center><b><p style="margin: 5px; padding: 5px;">Réservé aux membres</p></b></center> <label for="login">Pseudo :</label> <center><input type="text" id="login" name="pseudo" class="login" value="" tabindex="1"/></center><br/> <label for="motdepasse">Mot de passe :</label> <center><input type="password" id="motdepasse" name="passwd" class="motdepasse" value="" tabindex="2"/></center><br/> <center><input type="submit" name="submit" value="Se connecter" style="margin-top:5px"/></center> </fieldset> </form> <!--#######################################################################################################################################--> <div name="SeDeconnecter" id="SeDeconnecter"> <fieldset class="fieldset_connexion"> <center><span class="SeDeconnecter"><a href="?action=logout" rel="nofollow noopener noreferrer" target="_blank">Déconnexion</a></span></center> </fieldset> </div> <!--#######################################################################################################################################--> <div name="DeconnexionReussie" id="DeconnexionReussie"> <fieldset class="fieldset_connexion"> <?php if(!empty($_GET['action']) && $_GET['action'] == 'logout' && isset($_SESSION['idpers'])) { $pren = $_SESSION['prenom']; unset($_SESSION['idpers']); unset($_SESSION['prenom']); unset($_SESSION['pseudo']); echo '<span class="DeconnexionReussie">Déconnexion réussie... </br>A bientôt <b>' . $pren . '</b> !</span>'; ?> <script type="text/javascript"> $(document).ready(function() { $('#DeconnexionReussie').show();//afficher $('#SeDeconnecter').hide();//cacher }) <?php } ?> </script> </fieldset> </div> </div> <!--#######################################################################################################################################--> <div id="contenu"> <script type="text/javascript"> <?php if (!isset($_SESSION['idpers'])) { ?> $(document).ready(function() { $('#contenu').hide();//cacher }) <?php } ?> </script> <?php if (isset($_SESSION['idpers'])){ $pren = $_SESSION['prenom']; echo '<div class="bonjour">'; echo ' <img src="img/coche_ok.png" alt="bonjour"/> Bonjour '.$pren ; echo '</div><br/><br/>'; } ?> <?php include('libs/profil.php');?> </div>
Voici la page (profil.php)
<?php $requete = "SELECT * FROM cdc_personnes WHERE pseudo='".$pseudo."'"; $resultat = execRequete($requete,$connexion); $r = mysql_fetch_object($resultat); ?> <h2>Mon espace</h2> <div id="ProfilMenu"> <ul> <li><b>MENU :</b></li> <li> - <a href="./modif_profil.php?idpers=<?php echo $r->idpers;?>">Modifier mon profil</a></li> <li> - <a href="./modif_passwd.php" rel="nofollow noopener noreferrer" target="_blank">Modifier mon Mot de passe</a></li> </ul> </div> <br/> <table class="CompteProfil" border="3"> <tr> <th class="table-entete">Nom</th> <th class="table-entete">Prénom</th> <th class="table-entete">Adresse Mail</th> <th class="table-entete">Date Naissance</th> <th class="table-entete">Tél. Fixe</th> <th class="table-entete">Tél. Mobile</th> </tr> <tr> <td class="table-sous-entete"><?php echo $r->nom; ?></td> <td class="table-sous-entete"><?php echo $r->prenom; ?></td> <td class="table-sous-entete"><?php echo $r->email; ?></td> <td class="table-sous-entete"><?php echo dFR($r->dnaiss) ?></td> <td class="table-sous-entete"><?php $tel = $r->telf; $tel = wordwrap ($tel, 2, ' ', 1); echo $tel;?></td> <td class="table-sous-entete"><?php $tel = $r->telm; $tel = wordwrap ($tel, 2, ' ', 1); echo $tel;?></td> </tr> </table> <table class="CompteProfil" border="3"> <tr> <th class="table-entete">Adresse</th> <th class="table-entete">Compl. Adresse</th> <th class="table-entete">Lieu dit</th> <th class="table-entete">Code Postal</th> <th class="table-entete">Ville</th> <th class="table-entete">Login</th> </tr> <tr> <td class="table-sous-entete"><?php echo $r->adr1; ?></td> <td class="table-sous-entete"><?php echo $r->adr2; ?></td> <td class="table-sous-entete"><?php echo $r->lieudit; ?></td> <td class="table-sous-entete"><?php echo $r->cpostal; ?></td> <td class="table-sous-entete"><?php echo $r->ville; ?></td> <td class="table-sous-entete"><?php echo $r->pseudo; ?></td> </tr> </table>
Voici la page (modif_profil.php)
<h1>Modifier mon profil</h1> <?php if(isset($_POST['action'])) { $idpers = isset($_SESSION['idpers']) ? $_SESSION['idpers'] : ''; $nom = isset($_POST['nom']) ? $_POST['nom'] : ''; $prenom = isset($_POST['prenom']) ? $_POST['prenom'] : ''; $email = isset($_POST['email']) ? $_POST['email'] : ''; $dnaiss = isset($_POST['dnaiss']) ? $_POST['dnaiss'] : ''; $telf = isset($_POST['telf']) ? $_POST['telf'] : ''; $telm = isset($_POST['telm']) ? $_POST['telm'] : ''; $adr1 = isset($_POST['adr1']) ? $_POST['adr1'] : ''; $adr2 = isset($_POST['adr2']) ? $_POST['adr2'] : ''; $lieudit = isset($_POST['lieudit']) ? $_POST['lieudit'] : ''; $cpostal = isset($_POST['cpostal']) ? $_POST['cpostal'] : ''; $ville = isset($_POST['ville']) ? $_POST['ville'] : ''; $pseudo = isset($_POST['pseudo']) ? $_POST['pseudo'] : ''; $passwd = isset($_POST['passwd']) ? $_POST['passwd'] : ''; $requete = "UPDATE cdc_personnes SET nom='$nom',prenom='$prenom',email='$email',dnaiss='$dnaiss',telf='$telf',telm='$telm',adr1='$adr1',adr2='$adr2',lieudit='$lieudit',cpostal='$cpostal',ville='$ville',pseudo='$pseudo',passwd='$passwd' WHERE idpers='$idpers'"; $resultat = execRequete($requete,$connexion); } $requete = "SELECT * FROM cdc_personnes WHERE idpers='".$idpers."'"; $resultat = execRequete($requete,$connexion); while($r=mysql_fetch_object($resultat)) { ?> <form method="post" name="modif" action="<?php echo $_SERVER['PHP_SELF']; ?>" onsubmit="return verif()"> <table> <tr> <td class="libel">Nom</td> <td class="data"><input type="text" name="nom" size="25" value="<?php echo $r->nom;?>" class="oblig"></td> </tr><tr> <td class="libel">Prénom</td> <td class="data"><input type="text" name="prenom" size="25" value="<?php echo $r->prenom;?>" class="oblig"></td> </tr><tr> <td class="libel">e-Mail</td> <td class="data"><input type="text" name="email" size="45" value="<?php echo $r->email;?>"></td> </tr><tr> <td class="libel">Date de naissance</td> <td class="data"><input type="text" name="dnaiss" size="8" value="<?php echo $r->dnaiss;?>" class="oblig"></td> </tr><tr> <td class="libel">Téléphone fixe</td> <td class="data"><input type="text" name="telf" size="12" value="<?php echo $r->telf;?>"></td> </tr><tr> <td class="libel">Téléphone mobile</td> <td class="data"><input type="text" name="telm" size="12" value="<?php echo $r->telm;?>"></td> </tr><tr> <td class="libel">Adresse postale</td> <td class="data"><input type="text" name="adr1" size="45" value="<?php echo $r->adr1;?>"></td> </tr><tr> <td class="libel">Complément d'adresse</td> <td class="data"><input type="text" name="adr2" size="45" value="<?php echo $r->adr2;?>"></td> </tr><tr> <td class="libel">Lieu-dit</td> <td class="data"><input type="text" name="lieudit" size="45" value="<?php echo $r->lieudit;?>"></td> </tr><tr> <td class="libel">Code postal</td> <td class="data"><input type="text" name="cpostal" size="5" value="<?php echo $r->cpostal;?>"></td> </tr><tr> <td class="libel">Ville</td> <td class="data"><input type="text" name="ville" size="30" value="<?php echo $r->ville;?>"></td> </tr><tr> <td class="libel">Pseudo</td> <td class="data"><input type="text" name="pseudo" size="30" value="<?php echo $r->pseudo;?>" class="oblig">></td> </tr><tr> <td class="libel">Mot de passe</td> <td class="data"><input type="text" name="passwd" size="30" value="<?php echo $r->passwd;?>" class="oblig">></td> </tr><tr> <td> <input type="hidden" name="idpers" value="<?php echo $idpers; ?>"> </td> <td class="data"><input type="submit" name="action" value="Enregistrer"></td> </tr> </table> </form> <?php } ?> <p>NB: La saisie dans les zones à fond jaune pâle est obligatoire.</p>
en fait lorsque je suis connecté je ne peux plus modifier les id.
Lorsque je suis déconnecté je peux afficher le profil de chaque membre avec un copié/collé de cette url
modif_profil.php?idpers=4
mais la modification ne ce fait pas heureusement c'est déjà ça.
Mais alors comment éviter l'affichage des membres avec un copié de l'url
Merci
Lorsque je suis déconnecté je peux afficher le profil de chaque membre avec un copié/collé de cette url
modif_profil.php?idpers=4
mais la modification ne ce fait pas heureusement c'est déjà ça.
Mais alors comment éviter l'affichage des membres avec un copié de l'url
Merci