Bonjour,
Je m'apprête à mettre en ligne mon nouveau site web et je suis de plus en plus inquiêt en ce qui concerne la sécurité de l'entieretée du site.
Mon site est conçu à partir du phpBB : Templates, Common.php, ...
J'ai cependant élaboré mon propre système de session, voila ce qui m'inquiète.
J'aimerais que vous analysiez mes blocs de code pour voir si faille il y a.
Fichier de vérification :
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
|
<?php
session_start();
if(isset($_POST['username']) && isset($_POST['userpassword'])) {
$username = $_POST['username'];
$userpassword = md5($_POST['userpassword']);
if (lookat($username,$userpassword)==TRUE) {
$_SESSION['AUTH'] = TRUE;
$sql = "SELECT * FROM icb_users WHERE Username='".$username."'";
if( !($result = $db->sql_query($sql)) )
{
die("Erreur -> Requête SQL");
}
if ( $row = $db->sql_fetchrow($result) )
{
$_SESSION['ID'] = $row['ID'];
$_SESSION['USERNAME'] = $row['Username'];
$_SESSION['LEVEL'] = $row['Level'];
$_SESSION['NOM'] = $row['Nom'];
$_SESSION['PRENOM'] = $row['Prenom'];
$_SESSION['ADRESSE'] = $row['Adresse'];
$_SESSION['VILLE'] = $row['Ville'];
$_SESSION['PROVINCE'] = $row['Province'];
$_SESSION['TELFIX'] = $row['TelFix'];
$_SESSION['TELGSM'] = $row['TelGSM'];
$_SESSION['EMAIL'] = $row['Email'];
$_SESSION['DATE'] = $row['Date'];
$sql = "INSERT INTO `icb_events` ( `ID` , `Action` , `Concern` , `Time` )
VALUES (NULL, 'Connection', '".$_SESSION['USERNAME']."', '$date_ - $time');";
@mysql_query($sql);
$db->sql_freeresult($result);
}
header("Location: members_board_index.php");
}
else {
header("Location: login.php");
}
}
?> |
Fichier contenant la fonction lookat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<?php
function lookat($username,$userpassword) {
global $db;
$username_ = mysql_real_escape_string($username);
$userpassword_ = mysql_real_escape_string($userpassword);
$sql = "SELECT * FROM icb_users WHERE Username='".$username_."' AND Password='".$userpassword_."' AND Act='1';";
if( !($result = $db->sql_query($sql)) )
{
header("Location: ../login.php");
}
if ( $row = $db->sql_fetchrow($result) )
{
return TRUE;
}
else{
return FALSE;
}
}
?> |
En-tête de chaque fichier à accès réservé :
1 2 3 4 5
|
session_start();
if($_SESSION['AUTH'] != TRUE) {
header("location: login.php");
} |
En vous remerciant d'avance,
Nadd.
Partager