La protection efficace des pages web

Fermé
Profil bloqué - 29 août 2013 à 13:49
 Pitet - 29 août 2013 à 16:50
Bonjour,

je tiens d'abord à remercier toute personne qui va se donner la peine de lire ce message car c'est une demande d'aide à tous les membres de ce forum plus precisement les programmeurs en PHP.
j'ai eu une chance de participer à un mémoire d'un ami programmer en PHP une question m'a fort etoné en croyant que j'avais tout fait sur la protection de mes pages web. On lui a dit lors du lancer de son Application sur Mozilla Firefox de copier l'URL d'une page et d'ouvrir une autre fenetre de Mozilla et d'y coller puis cliquer sur la touche Entrée pour actualiser la page enfin de voir si on peut vraiment accéder à cette page sans qu'on soit redirigé sur l'index de l'application et confirmer que les pages sont vraiment securisées le malheur est tombé sur mon ami car en cliquant sur la touche Entrée pour actualiser la page cette derniere s'est ouvert sans probleme et la redirection sur l'index a echouée. Alors je me suis dit meme moi j'ai utilisé presque les meme codes de sécurisation alors que faire-je?
Je vous prie de regarder les code que j'ai utilisé pour controler les Utilisqteurs enfin de rediriger chaque utilisateur à sa propre page selon son droit:

<?php
include("connexion.php");
$user=mysql_real_escape_String($_POST['user']);
$pswd=mysql_real_escape_String(sha1($_POST['pswd']));
$etat='activer';
$annee=date('Y');
$mois=date('m');
$jour=date('d');
$heure=date('H');
$minute=date('i');
$seconde=date('s');
$date=$annee.'/'.$mois.'/'.$jour.'/'.$heure.':'.$minute.':'.$seconde;

if(empty($user) or empty($pswd))
{
echo'<script language="javascript">alert("Veuillez remplir les champs vides!")</script>';
}
else
{
$exist=mysql_query("select Nom from utilisateur where Nom='$user'");
$nb=mysql_num_rows($exist);
if($nb==0)
{
echo '<script language="javascript">alert("nom utilisateur incorect")</script>';
}
else
{
$exist=mysql_query("select Motdepasse from utilisateur where Motdepasse='$pswd'");
$nb=mysql_num_rows($exist);
if($nb==0)
{
echo '<script language="javascript">alert("Le nom d\'utilisateur ou le mot de passe saisi est incorect")</script>';
}
else
{
$droit=mysql_query("select Nom,Droit from utilisateur where Nom='$user' and Etat='$etat'");
$data=mysql_fetch_array($droit);
if($data['Droit']=='administrateur')
{
session_start();
$_SESSION['nom']=$data['Nom'];
$_SESSION['droit']=$data['Droit'];
header("location:MenuPrincipal.php");
mysql_query("insert into hote(Nom,Motdepasse,Dateenr) values('$user','$pswd','$date')");
}
elseif($data['Droit']=='supervisieur')
{
session_start();
$_SESSION['nom']=$data['Nom'];
$_SESSION['droit']=$data['Droit'];
header("location:employes.php");
mysql_query("insert into hote(Nom,Motdepasse,Dateenr) values('$user','$pswd','$date')");
}
elseif($data['Droit']=='responsable')
{
session_start();
$_SESSION['nom']=$data['Nom'];
$_SESSION['droit']=$data['Droit'];
header("location:MenuPrincipal.php");
mysql_query("insert into hote(Nom,Motdepasse,Dateenr) values('$user','$pswd','$date')");
}
elseif($data['Droit']=='utilisateur')
{
session_start();
$_SESSION['nom']=$data['Nom'];
$_SESSION['droit']=$data['Droit'];
header("location:telechargerRapports.php");
mysql_query("insert into hote(Nom,Motdepasse,Dateenr) values('$user','$pswd','$date')");
}
else
{
echo'<script language="javascript">prompt("Veuillez contacter l\'administrateur pour le code d\'acces SVP!!. Tapez votre Nom ici!")</script>';
//Il reste a inserer quelque code javascript permettant a renseigner l'utilisateur sans droit ou desactiver.
}
}
}
}
?>

La deuxieme etape, j'ai pris l'initiative d'inserer les codes de session sur chacune de mes pages comme suit:

<?php
session_start();
if(!isset($_SESSION['nom']) or $_SESSION['droit']!='administrateur')
{
header("location:index.php");
}
echo'<li><b>Bonjour '.$_SESSION['nom'].' <a href="MenuPrincipal.php">Deconnexion</a></b></li>';
?>
ce code dit que seul l'Administrateur a droit d'y accéder pas d'autres personnes; si qulqu'un veux accéder à cette page il sera directement redirigé à l'index de l'application.
Maintenant voici mon problème, si je copie l'URL de cette page et j'ouvre une fenetre nouvelle et j'y colle cet Url en appuiyant sur la touche Entrée je devais etre redirigé sur l'index car il faut que je me connecte pour accéder sur le menu enfin de naviguer sur les pages ayant mon droit d'accès malheusement je passe sans difficulté à la page; ceci montre que mes pages ne sont pas sécurisées alors je vous pris de m'aider enfin de bien sécuriser mes pages web. Merci d'avance à tous.

A voir également:

2 réponses

jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
29 août 2013 à 14:34
Salut !

C'est pas pcq tu ouvre un nouvel onglet ou une nouvelle page que tu change "d'identité" pour ton site.
La session que tu ouvre quand tu te connecte, reste active d'un onglet à l'autre, et même d'une fenêtre à l'autre. La session expire après un certain temps
C'est donc pas un problème de sécurité, c'est tout à fait normal comme comportement.

Mais tout ca est paramétrable dans ton php.ini
0
Profil bloqué
29 août 2013 à 15:54
Merci beaucoup vous venez de me rassurer que je viens d'accomplir une bonne chose dans ma vie informatique. Mais dit moi comment je peux parametrer dans mon php.ini les temps de destruction de mes sessions car j'ai besoin de diminuer leur temps.
Be blessed
0
Pour changer la durée de vie des sessions, tu dois changer la valeur de l'option session.gc-maxlifetime dans php.ini :
http://www.php.net/manual/fr/session.configuration.php#ini.session.gc-maxlifetime

Bonne journée
0
Salut,

Les sessions php utilisent par défaut un cookie de session. Donc si tu copie l'URL sur une page du même navigateur lorsque tu es déjà connecté, il est normal que tu sois encore connecté car le cookie de session est également envoyé.

Ce n'est pas du tout un défaut de sécurité, il s'agit du fonctionnement normal des sessions.

Pour mieux comprendre tu peux essayer de désactiver les cookie sur ton navigateur, tu verras alors l'identifiant de session (PHPSESSID) directement dans l'URL. Si tu copie l'URL avec cet identifiant, il est normal que tu sois encore connecté : le principe est le même avec le cookie de session.

Tes pages sont donc "sécurisés".

Bonne journée
0
Profil bloqué
29 août 2013 à 15:54
Merci beaucoup vous venez de me rassurer que je viens d'accomplir une bonne chose dans ma vie informatique.
Be blessed
0