Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Général Conception Web > Sécurité
Sécurité Forum d'entraide sur la sécurité des sites Web, les protections, l'authentification, etc. Avant de poster -> Cours Sécurité.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/08/2008, 18h07   #1
Membre confirmé
 
Inscription : mars 2003
Messages : 674
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 674
Points : 242
Points : 242
Par défaut Sécuriser les users et password

Bonjour.

Notre site a été hacké et je viens de modifier l'accès des membres à la base de données.
Avant de vous donner le code, j'explique ce que j'ai fait :
Les membres de l'association sont enregistrés dans une table X
Lors de sa première connexion, chaque utilisateur doit saisir son nom, son prénom, un nom utilisateur et un mot de passe.
Je vérifie que le nom et le prénom sont bien dans la table X.
Si ok, je saisi dans la table Y l'id du membre, le nom utilisateur et le mot de passe.
Pour les connexions ultérieures, je demande seulement le nom utilisateur et le mot de passe.
Ma page de code est en 2 parties :
- inscription (insertion du nom utilisateur et du mot de passe
- identification
Code :
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
<? php
require('connect.php');
?>
<br />
<p align="center"><b>Espace de connexion réservé aux Membres du Jury des Prix Santé</b><br />
<table border="0">
	<tr>
		<td><input type="radio" name="choix" value="1" onclick="javascript:montrer_cacher('diva','divb')"></td><td align="left">S'inscrire</td>
	</tr>
	<tr>
		<td><input type="radio" name="choix" value="2" onclick="javascript:montrer_cacher('divb','diva')"></td><td align="left">Se connecter</td>
	</tr>
</table>
<? php
if (isset($_POST['name']))	$name = $_POST['name'];
else $name ="";
if (isset($_POST['surname']))	$surname = $_POST['surname'];
else $surname ="";
if (isset($_POST['user1']))	$user1 = $_POST['user1'];
else $user1 ="";
if (isset($_POST['pass1']))	$pass1 = $_POST['pass1'];
else $pass1 ="";
if (isset($_POST['user2']))	$user2 = $_POST['user2'];
else $user2 ="";
if (isset($_POST['pass2']))	$pass2 = $_POST['pass2'];
else $pass2 ="";
?>

<!-- Formulaire d'inscription -->

<div id="diva" style="background-color:#ffffe0" class="hidden">
<p align="center">1erè lettre de votre nom et prénom en majuscule S.V.P.</p>
<form name="inscription" method="POST" action="index.php?page=jury">
<table border="0" align="center" width="450px">
	<tr>
		<td align="right">Votre nom :</td>
		<td><input type="text" name="name" value="" style="font-size:13px";></td>
	</tr>
	<tr>
		<td align="right">Votre prénom :</td>
		<td><input type="text" name="surname" value="" style="font-size:13px";></td>
	</tr>
	<tr>
		<td align="right" height="40px">Nom utilisateur :</td>
		<td><input type="text" name="user1" value="" style="font-size:13px";></td>
	</tr>
	<tr>
		<td align="right" height="40px">Mot de passe :</td>
		<td><input type="password" name="pass1" value="" style="font-size:13px";></td>
	</tr>
	<tr>
		<td colspan="2" align="center" height="40px"><input type="submit" name="valider_inscription" value="Valider" style="font-size:13px";></td>
	</tr>
</table>
</form>
</div>

<!-- Formulaire d'identification-->

<div id="divb" style="background-color:#ffffe0" class="hidden">
<form name="identification" method="POST" action="index.php?page=jury">
<table border="0" align="center" width="450px">
	<tr>
		<td align="right" height="40px">Nom utilisateur :</td>
		<td><input type="text" name="user2" value="" style="font-size:13px";></td>
	</tr>
	<tr>
		<td align="right" height="40px">Mot de passe :</td>
		<td><input type="password" name="pass2" value="" style="font-size:13px";></td>
	</tr>
	<tr>
		<td colspan="2" align="center" height="40px"><input type="submit" name="valider_identite" value="Valider" style="font-size:13px";></td>
	</tr>
	<tr>
		<td colspan="2" align="center" height="40px">Mot de passe oublié ou perdu, cliquez <a href=""><b>ici</b></a>.</td>
	</tr>
</table>
</form>
</div>
<? php
if (isset($_POST['valider_inscription'])){
	if ((empty($_POST['name'])) || (empty($_POST['surname'])) || (empty($_POST['user1'])) || (empty($_POST['pass1']))) {
		echo "<p align='center'>Merci de compléter tous les champs. <a href='index.php?page=jury' style='color:blue'><b>Retour</b></a></p>";
	}
	else {
		$sql = mysql_query("SELECT * FROM personnel WHERE nom_perso LIKE '%$name%' AND prenom_perso LIKE '%$surname%'");
		if (mysql_num_rows($sql) > 0){
			$res = mysql_fetch_array($sql);
			$idpersonnel = $res['id_perso'];
			$nomperso = $res['nom_perso'];
			$prenomperso = $res['prenom_perso'];
			if (($nomperso == $name) && ($prenomperso == $surname)) {
				//enregistrement user et mot de passe
				$user1 = sha1($user1);
				$pass1 = sha1($pass1);
		    		$sql = "INSERT INTO log (id_perso, user, password) 
					VALUES('$idpersonnel','$user1','$pass1')"; 
		    		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
				echo "<p align='center'>Vous êtes enregistré, <br /><a href='index.php?page=liste_candidats' style='color:blue'> Accès à la liste des dossiers</a></p>";
			}
			else {
				echo "<p align='center'>Nom et/ou prenom invalide(s). <a href='index.php?page=jury' style='color:blue'><b>Retour</b></a></p> ";
			}
		}	
	}
}
else if (isset($_POST['valider_identite'])){
	if ((empty($_POST['user2'])) || (empty($_POST['pass2']))) {
		echo "<p align='center'>Merci de compléter tous les champs. <a href='index.php?page=jury' style='color:blue'><b>Retour</b></a></p>";
	}
	else {
		$user2 = sha1($user2);
		$pass2 = sha1($pass2);
		$sql = mysql_query("SELECT * FROM log WHERE user LIKE '%$user2%' AND password LIKE '%$pass2%'");
		if (mysql_num_rows($sql) > 0){
			$res = mysql_fetch_array($sql);
			echo "<p align='center'><a href='index.php?page=liste_candidats' style='color:blue'> Accès à la liste des dossiers</a></p>";
		}
		else {
			echo "<p align='center'>Nom utilisateur et/ou mot de passe invalide(s). <a href='index.php?page=jury' style='color:blue'><b>Retour</b></a></p>";
		}
	}				
}
?>
Est ce quelqu'un peut me dire si il y a assez de sécurité dans le code sinon, merci de m'aider à mettre plus de sécurité.

J'ai lu le tuto de July http://php.developpez.com/faq/?page=securite#hash_mdp mais j'avoue que c'est pas très clair pour moi
philippef est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h04.


 
 
 
 
Partenaires

Hébergement Web