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