La protection efficace des pages web
Profil bloqué
-
Pitet -
Pitet -
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.
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:
- La protection efficace des pages web
- K9 web protection - Télécharger - Contrôle parental
- Web office - Guide
- Création site web - Guide
- Supprimer des pages sur word - Guide
- Comment traduire une page web - Guide
2 réponses
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
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
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
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
Be blessed
http://www.php.net/manual/fr/session.configuration.php#ini.session.gc-maxlifetime
Bonne journée