Protéger l'accès à une page ...

WRInaute accro
J'ai trouvé ce bout de code :

Code:
<?php
if (isset($_POST['mot_de_passe'])) // Si la variable existe
{
    $mot_de_passe = $_POST['mot_de_passe']; // On se crée une variable $mot_de_passe avec le mot de passe entré
}
else // La variable n'existe pas encore
{
    $mot_de_passe = ""; // On crée une variable $mot_de_passe vide
}
 
if ($mot_de_passe == "test") // Si le mot de passe est bon
{
    include("page_ok.php"); // On affiche la page cachée.
?>



<?php
}
else // le mot de passe n'est pas bon
{
    include("page_password.php"); // On affiche la zone de texte pour rentrer le mot de passe.
?>



<?php
} // Fin du else
// Fin du code :)
?>

avec page_password.php :

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Page protégée par mot de passe</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
		<p>Veuillez entrer le mot de passe :</p>
		<form action="protection.php" method="post">
			<p><input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" /</p>
		</form>
    </body>
</html>

Question : c'est solide comment ce type de protection ? ca vaut quoi comparé à une protection par htaccess ?

Pour ceux qui vont dire "c'est pas solide du tout" : -http://www.az-sante.com/TEST_PROTECT/ :mrgreen:
 
WRInaute accro
Il n'y a aucune protection là-dedans. Si tu veux sécuriser l'accès à une page, rien ne vaut (si tu veux un truc plus sexy que le htaccess) un couple identifiant + passe pour en conditionner l'entrée, et la création d'une session dédiée lors de la navigation dans cet espace restreint.

Sur le sujet tu as notamment ce tuto qui donne de bonnes pistes de départ : http://www.phpdebutant.org/article69.php
 
WRInaute accro
Aucune protection. Le dire ok mais encore ? C'est faible ou ?

Petite modif : je n'ai pas mis la page-ok en include mais direct dans le code ... en effet, cela permettait si on connaissait le nom de "page-ok" d'y accéder en direct ... ce n'est plus le cas ...
 
WRInaute accro
N'importe qui, s'il connaît l'adresse de la page est en mesure d'accéder à celle-ci.

Enfin après, tout dépend du niveau de sécu que tu veux mettre en place, et ce que tu cherches à protéger. Mais perso je ne procéderais jamais comme ça pour conditionner l'accès à une page.
 
WRInaute accro
UsagiYojimbo a dit:
N'importe qui, s'il connaît l'adresse de la page est en mesure d'accéder à celle-ci.

Enfin après, tout dépend du niveau de sécu que tu veux mettre en place, et ce que tu cherches à protéger. Mais perso je ne procéderais jamais comme ça pour conditionner l'accès à une page.
Ben donne moi le contenu de cette page alors si c'est si simple ... son adresse :

http://www.az-sante.com/TEST_PROTECT/index.php

L'objet du post est justement de confirmer ou d'infirmer (mais pas que sur des "à mon avis") la solidité du machin.
 
WRInaute passionné
UsagiYojimbo a dit:
N'importe qui, s'il connaît l'adresse de la page est en mesure d'accéder à celle-ci.

Il va en effet bien y accéder, mais il ne va pas voir le contenu de cette page : soit il va être dirigé vers un formulaire d'authentification, ou soit il peut y avoir une information du genre "Vous n'avez pas accès...".

A chaque page que l'on veut proposer on regarde si la variable mot de passe est correctement renseignée.

Après (si utilisation d'un BDD) peut être qu'il faudrait regarder si un visiteur à le droit de renseigner des caractères spéciaux dans le formulaire.

Donc à mon avis, tout va bien :)
 
WRInaute accro
@guicara : il ne sera pas possible de faire du multipage avec cela, sauf a redemander à chaque changement de page le mot de passe de l'utilisateur, car le tableau $_POST se vide si tu changes de page.

Donc en effet, pour nuancer ce que j'ai dit, ce type de protection peut s'avérer suffisant (encore que perso, je pense que si aucun script, cms ou autre, du marché ne se base sur ce type de solution il y a bien une raison), mais les possibilités offertes par le truc sont très limitées.

Avec la session, tu peux sécuriser l'accès à un ensemble de page, afficher des informations spécifiques à l'utilisateur connecté tout au long de sa navigation, etc. Avec ce système, tel quel, tu es limité à une seule page.
 
WRInaute accro
oui oui mon besoin est de securiser une page ici ou la ... et pour cela je trouve htaccess ou les sessions un peu lourdes à manipuler et donc ce code hyper simple me plait bien (si il offre une protection réelle). Ce qui manifestement semble être le cas :roll:
 
WRInaute accro
Bon, je renvoie l'ascenceur... (on se comprend ;-))

Oui, cette page est protégée si le bout de code est placé en début de le page cachée. Mais pas vraiment en fait...

Pour le commun des mortels, essayer de passer outre un pass, c'est essayer des mots au pif ou s'il est plus futé lancer un brute force.

Après, il est clair que pour le mec qui ne veut pas lacher (on se comprend encore ;-)), il pourra passer outre la condition.

C'est pour cela que je hash les pass en sha256 avec une graine, que je vérifie le nombre d'essais, que je compare l'ip d'origine de connexion, le user agent et l'id de session avec les variable courantes.
 
WRInaute passionné
C'est vrai qu'avec les sessions c'est beaucoup plus simple (mais bon après, comme tu l'a dis, tout dépend de l'utilisation).

Il suffit d'un truc de ce genre sur toutes les pages à protéger :

Code:
<?php
session_start();
if (!isset($_SESSION['login'])) {
    header ('Location: index.php');
    exit();
}
?>
 
WRInaute accro
Rod la Kox a dit:
Pour le commun des mortels, essayer de passer outre un pass, c'est essayer des mots au pif ou s'il est plus futé lancer un brute force.
Avec le mot de passe que j'ai mis, il est pas sorti ... :roll: Même en force :mrgreen:

Rod la Kox a dit:
Après, il est clair que pour le mec qui ne veut pas lacher (on se comprend encore ;-)), il pourra passer outre la condition.
Comment ?

Mais bon je vais aller jeter un oeil aux sessions quand même puisque vous semblez tous les aimer pour ce type de truc.
 
Discussions similaires
Haut