Bonjour à toutes et à tous, j'avoue être novice en php, en entamant la conception de mon site je me suis rendu compte que n'importe quel utilisateur pouvait avoir accès au profil d'un autre en modifiant simplement l'url de mon site...
Exemple : Si je me connecte en tant qu'utilisateur et obtient l'adresse suivante après connexion : http://monsite.com/id=1 en modifiant simplement le "1" par "2" j'arrive sur le profil de l'utilisateur ayant pour id le chiffre "2".
J'ai donc fait beaucoup de recherches et mon problème est le suivant : j'aimerais pouvoir sécuriser mes url de sorte à ce que ont ne puisse y accéder qu'après avoir entré ses identifiants.
Voici ci-dessous mon code : index.php
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 <?php session_start(); $bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre','root',''); $_SESSION['access'] = 0; if(isset($_POST['formconnexion'])) { $mailconnect = htmlspecialchars($_POST['mailconnect']); $mdpconnect = hash('sha256', $_POST['mdpconnect']); if(!empty($mailconnect) AND !empty($mdpconnect)) { $requser = $bdd->prepare("SELECT * FROM membres WHERE mail = ? AND mdp = ?"); $requser->execute(array($mailconnect, $mdpconnect)); $userexist = $requser->rowCount(); if($userexist == 1) { $userinfo = $requser->fetch(); $_SESSION['id'] = $userinfo['id']; $_SESSION['pseudo'] = $userinfo['pseudo']; $_SESSION['mail'] = $userinfo['mail']; $_SESSION['access'] = 1; header("Location: camera.php?id=".$_SESSION['id']); } else { $erreur = "Mauvais identifiants de connexion !"; } } else { $erreur = "Tout les champs doivent êtres complétés !"; } } ?> <html> <head> <title>Father Eye</title> <meta charset="utf-8"> <link rel="stylesheet" href="style.css" /> </head> <body> <img src="titre.png" id = "titre" /> <img src="1.png" id = "pyramide" /> <div id="connexion"> <form method="POST" action="" class="form_connexion"> <p id="titreconnexion">CONNEXION</p> <input type="email" name="mailconnect" placeholder="E-mail" class="inputemail" color="#8e3604" /> <input type="password" name="mdpconnect" placeholder="Mot de passe" /> <input id="bt_connexion" type="submit" name="formconnexion" placeholder="Se connecter !" value="ENTER"/> </form> </div> <div align="center" id="erreur"> <?php if(isset($erreur)) { echo '<font color="#8e3604">'.$erreur."</font>"; } ?> </div> </body> </html>
Et ici : camera.php (la page sur laquelle ont devrait être redirigé après connexion)
Et voici le formulaire d'inscription :
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 <?php session_start(); $bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre','root',''); ?> <html> <head> <title>Father Eye</title> <meta charset="utf-8"> <link rel="stylesheet" href="style2.css" /> </head> <body> <img src="titre.png" id = "titre" /> <div id="menu"> <ul> <li><a href="camera.php">CAMERA</a></li> <li><a href="contact.php">CONTACT</a></li> <li><a href="livredor.php">LIVRE D'OR</a></li> </ul> </div> </body> </html>
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162 <?php session_start(); $bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre','root',''); if(isset($_POST['forminscription'])) { $pseudo = htmlspecialchars($_POST['pseudo']); $mail = htmlspecialchars($_POST['mail']); $mail2 = htmlspecialchars($_POST['mail2']); $mdp = hash('sha256', $_POST['mdp']); $mdp2 = hash('sha256', $_POST['mdp2']); if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])) { $pseudolength = strlen($pseudo); if($pseudolength <= 255) { if($mail ==$mail2) { if(filter_var($mail, FILTER_VALIDATE_EMAIL)) { $reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?"); $reqmail->execute(array($mail)); $mailexist = $reqmail->rowCount(); if($mailexist == 0) if($mdp == $mdp2) { $insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, mdp) VALUES (?, ?, ?)"); $insertmbr->execute(array($pseudo, $mail, $mdp)); $erreur = "Votre compte à bien été créé"; header('Location: index.php'); } else { $erreur = "Vos mots de passes ne correspondent pas !"; } else { $erreur = "Adresse e-mail déjà utilisée !"; } } else { $erreur = "Votre adresse e-mail n'est pas valide"; } } else { $erreur = "Vos adresses e-mail ne correspondent pas"; } } else { $erreur = "Votre pseudo ne doit pas depasser 255 caractères"; } } else { $erreur = "Tout les champs doivent être complétés"; } } ?> <html> <head> <title>Projet1</title> <meta charset="utf-8"> <link rel="stylesheet" href="style-inscription.css" /> </head> <body> <img src="titre.png" id = "titre" /> <img src="embleme.png" id = "embleme" /> <div id="formulaire"> <div align="center"> <h2>Inscription</h2> <br/><br/> <form method="POST" action=""> <table> <tr> <td align="right"> <label for="pseudo"><font color="grey">Pseudo : </font></label> </td> <td> <input type="text" placeholder="Votre pseudo" id="pseudo" name="pseudo" value="<?php if(isset($pseudo)) { echo $pseudo;} ?>"/> </td> </tr> <tr> <td align="right"> <label for="mail"><font color="grey">Mail : </font></label> </td> <td> <input type="email" placeholder="Votre mail" id="mail" name="mail" value="<?php if(isset($mail)) { echo $mail;} ?>" /> </td> </tr> <tr> <td align="right"> <label for="mail2"><font color="grey">Confirmation du mail : </font></label> </td> <td> <input type="email" placeholder="Confirmer votre mail" id="mail2" name="mail2" value="<?php if(isset($mail2)) { echo $mail2;} ?>"/> </td> </tr> <tr> <td align="right"> <label for="mdp"><font color="grey">Mot de passe : </font></label> </td> <td> <input type="password" placeholder="Votre mot de passe" id="mdp" name="mdp" /> </td> </tr> <tr> <td align="right"> <label for="mdp2"><font color="grey">Confirmer votre mdp : </font></label> </td> <td> <input type="password" placeholder="confirmer mdp" id="mdp2" name="mdp2" /> </td> </tr> <tr> <td></td> <td align="center"> <br/> <input type="submit" name="forminscription" value="INSCRIPTION" /> </td> </tr> </table> </form> </div> <?php if(isset($erreur)) { echo '<font color="#8e3604">'.$erreur."</font>"; } ?> </div> </body> </html>
Je pense que mon erreur se trouve dans la page "camera.php" mais j'ai du mal, je vous remercie d'avance pour vôtre aide et vous souhaite une bonne soirée à toutes et à tous !
Partager