Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources 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 21/05/2006, 15h59   #1
Membre du Club
 
Avatar de Nadd
 
Étudiant
Inscription : septembre 2005
Messages : 140
Détails du profil
Informations personnelles :
Âge : 22

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2005
Messages : 140
Points : 57
Points : 57
Par défaut [Sécurité] Y à t'il une faille ?

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 :



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
 
<?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



Code :
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é :



Code :
1
2
3
4
5
 
session_start();
if($_SESSION['AUTH'] != TRUE) {
header("location: login.php");
}
En vous remerciant d'avance,

Nadd.
Nadd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2006, 16h04   #2
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
tu ne protèges aucune des variables qui passent dans la BDD à la première Injection SQL t'es bon...

en plus ça sert à rien de tout stocker dans la session (à moins que tu en ai systématiquement besoin dans toutes les pages) il vaut mieux ne stocker que l'user_id et aller chercher le reste dans la BDD sur les pages où tu en as vraiment besoin : moins de ram utilisé, et moins de temps pour sauvegarder/charger les sessions à chaque fois
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2006, 17h26   #3
Membre expérimenté
 
Avatar de dj-julio
 
Inscription : décembre 2005
Messages : 742
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : décembre 2005
Messages : 742
Points : 576
Points : 576
lorsque tu récupères ce qu'à écrit un utilisateur, pense toujours à utiliser : mysql_real_escape_string

tu éviteras ainsi d'avoir des injections SQL
__________________
Mon Site/Cv.
dj-julio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h19.


 
 
 
 
Partenaires

Hébergement Web