Mot de passe script dans une page sécurisée

cs_darksam Messages postés 58 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 20 septembre 2012 - 22 juin 2009 à 19:46
cs_darksam Messages postés 58 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 20 septembre 2012 - 23 juin 2009 à 15:29
Bonjour,

Je vais être bref mais précis !

Je souhaite sécuriser ma page avec un mot de passe en utilisant le PHP "SANS base de données". Certes il est possible de le faire très facilement avec Java script en utilisant les lignes de codes suivantes :
______________
<head>
<script langage = "javascript">

function Check(){
    var passe=document.forms[0].elements[0].value;
    if (passe==" MOT DE PASSE "){
    alert("Vous pouvez rentrer !");
    window.location ="VOTRE PAGE SUIVANTE.HTML"; }
    else {
    alert("Mot de passe incorrect !");
    }
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MON SITE</title>
</head>
______________
Le problème c'est qu'il suffit d'aller dans la page source de cette page et de copier coller le mot de passe dans le script de celle-ci !
Moi je souhaite créer un script en PHP qui permet la demande d'un mot de passe sur la page et qui plus es, ne l'affiche pas dans la page source...compatible pour tous les navigateurs !

Enfaite j'ai pas trop envie de créer une base de donnée en SQL pour seulement sécuriser une seule page ! Je veux juste qu'on puisse rentrer sur la page suivante en introduisant un mot de passe pour avoir accès à toutes les autres pages...tout simplement.

Doit surement bien avoir des fortish ici ^^ Enfin à vos claviers et merci d'avance !

Cordialement : Darksam

20 réponses

cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
22 juin 2009 à 20:54
Bonjour,

Voici une ébauche de ce qui pourrait fonctionner.

<?php
if ($_POST['pw'] != NULL) { // on regarde s'il y a eu un 'submit' via le formulaire ci-dessous
    if ($_POST['pw'] != 'Le_mot_de_passe') { // vérification de ce mot de passe
        echo('Mot de passe incorrect !

');
        exit(); // on arrête tout s'il est incorrect.
    } else {
        // afficher le contenu de la page ici, s'il est bon !
    }
} else {
?>
    <!--
    A mettre ici le code d'un formulaire
    en xHTML simple demandant le mot de passe 'pw'
    -->
<?php
}
?>

Cordialement
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
22 juin 2009 à 20:59
Salut,

C'est très simple .... par exemple :
- tu stockes le mot de passe en md5 dans un fichier texte
- tu crées une fonction :
function is_valid ($pass) {
   $a = file_get_contents...
   if (md5($pass) === $a)  return true; else return false;
}

if (!is_valid($_POST['pass']) {
   header('Location: pass_pas_bon.php');
   exit;
}

// ta page sécurisée

Bien sur tu prendras soin de protéger efficacement le fichier texte contenant le mot de passe (htaccess)
... et si tu as besoin d'une gestion multiutilisateurs => base de données obligatoire (sinon usine à gaz :o))
Je te laisse te renseigner sur les fonctions php utilisées.

Cordialement,

Kohntark -
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
22 juin 2009 à 21:00
Grrrrrr ... TropNul est TropRapide

Kohntark -
0
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
22 juin 2009 à 21:06
Rapide peut-être mais tu as donné une autre possibilité, laquelle qui me plaît. Gagnant gagnant donc.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_darksam Messages postés 58 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 20 septembre 2012
22 juin 2009 à 21:20
Merci TropNul mais dois je mettre ce script PHP dans la balise ?
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
22 juin 2009 à 21:20
yep, les 2 sont séduisantes, il y a du pour est du contre des 2 côtés :
- la mienne est plus flexible s'il faut, par exemple, gérer 4/5 niveaux d'accès, séparer le contenu, ...
- la tienne est plus simple et tout autant sécurisée, et répond sans doute mieux à la demande

Cordialement,

Kohntark -
0
cs_darksam Messages postés 58 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 20 septembre 2012
22 juin 2009 à 21:22
peux tu faire le code avec des exemples stp car je comprend pas quand tu dis mettre ta page là etc....
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
22 juin 2009 à 21:33
.... tu ne comprends pas quoi au juste, les 2 codes ont déjà été fait ?

Il suffit de remplacer :
pour TropNul :
// afficher le contenu de la page ici, s'il est bon !

ou (pour moi)
// ta page sécurisée

par le code de ta page

et "pass_pas_bon.php" est par exemple une page qui indique à l'utilisateur que son mot de passe est incorrect, ou alors tu rediriges vers la page d'accueil

Kohntark -
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
22 juin 2009 à 21:59
Allez hop.. j'en rajoutes un peu.. mais hors sujet.. Et un .htaccess si tu utilises Apache..
S.
0
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
22 juin 2009 à 23:46
l'avantage du fichier texte c'est que tu peux stocker plusier mdp et éventuellement le combiner à un nom d'utilisateur... .. .

pour faire au plus simple et un peu sécure quand même je ferais...

function isValidUser($pseudo, $pass) {
   return in_array(md5($pseudo.$pass), file('path_vers_ton_fichier.txt'));
}

après tu fais un fichier texte tu enregistre le hash md5 pseudo+pass en en mettant un par ligne et tu met le fichier dans un répertoire protégé par .htaccess "deny from all"

Mais j'aurais tendance à rejoindre syndrael... un htaccess sera bien plus simple... sinon après va falloir parler de session... lol... .. . ;o)

@ tchaOo°

l'homme est un loup pour l'homme... .. .
0
cs_darksam Messages postés 58 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 20 septembre 2012
22 juin 2009 à 23:54
je vais prendre l'idée de Tronul mais faut il mettre tout le code dans body ?
0
cs_darksam Messages postés 58 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 20 septembre 2012
23 juin 2009 à 00:10
Bon je vais essayer de mettre un exemple lollllllllllll

<html>
<head>
<title>bienvenue sur mon site</title>

</head>

<?php
if ($_POST['pw'] != NULL) {
    if ($_POST['pw'] != 'entrer2009') {
        echo('Mot de passe incorrect !

');
        exit();
    } else {
       // comment j'affiche ma page ? pas assez d'explication !!! par un lien...ma page doit etre une page php ou html ????
    }
} else {
?>
    <!--
    vous avez pas une idée là parce que franchement !!!!!!
    -->
<?php
}
?>

et après ??
0
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
23 juin 2009 à 00:25
O_o

qu'est ce que tu ne comprend pas dans

// afficher le contenu de la page ici, s'il est bon !

?

et dans

    <!--
    A mettre ici le code d'un formulaire
    en xHTML simple demandant le mot de passe 'pw'
    -->

?

@ tchaOo°

l'homme est un loup pour l'homme... .. .
0
cs_darksam Messages postés 58 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 20 septembre 2012
23 juin 2009 à 01:00
Pouvez donner un exemple avec le code complet et tout svppp !!!!!!!!!!
0
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
23 juin 2009 à 01:33
Certains disent "aide toi et le ciel t'aidera" moi j'aurais tendance à dire "il faut savoir se sortir les doigts du"... .. .

donc tu remplace...

// afficher le contenu de la page ici, s'il est bon !

par un truc que tu veux afficher si le mot de pass est bon... et tu remplace...

<!--
A mettre ici le code d'un formulaire
en xHTML simple demandant le mot de passe 'pw'
-->

par un formulaire qui demande un mot de passe et dont le champs, où tu rentre le mdp, à l'attribut "name" qui vaud "pw"... .. .

@ tchaOo°
0
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
23 juin 2009 à 01:35
d'ailleur au passage...

if ($_POST['pw'] != NULL)

O_o

>> if(isset($_POST['pw']))

@ tchaOo°
0
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
23 juin 2009 à 05:55
J'ai  comme l'impression que tu n'as jamais fais de la programmation en PHP. Tu dois absolument lire les fichiers d'aide de PHP si tu veux te lancer dans cette voie. Apprendre par l'exemple, c'est très bien. Mais essayer de comprendre un code tout seul, c'est encore mieux. Toutefois, je vais décortiquer le traitement pour que tu cernes mieux le principe.

Page de Login :

   [TraitementServeurEnPHP - Renverra 'Bon' ou 'Pas Bon']
   [Si variable 'pw' existe et est affectée]
      [Si 'Bon']
         [Afficher le Contenu COMPLET de la 'Page Cible' ici]
            <html>
            etc etc ...
            </html>
      [Si 'Pas Bon']
         [Afficher message d'erreur]
         [Désaffecter la variable 'pw']
   [Si variable 'pw' n'existe pas ou est NULL]
      [Afficher le formulaire]

à toi de jouer maintenant.

Cordialement
0
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
23 juin 2009 à 05:58
Kankrelune a soulevé un point très important et je t'en remercie.

En effet, une variable peut exister en contenant la valeur NULL. Tu peux donc rajouter une condition supplémentaire pour vérifier que cette variable n'est pas nulle avant de continuer. Cela arrivera si l'utilisateur submit le formulaire en ne mettant rien dans le champ du mot de passe.

Cordialement
0
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
23 juin 2009 à 11:31
pas exactement... mais presque... .. . ;o)

Si l'utilisateur soumet le formulaire à vide la valeur de pw sera

$_POST['pw'] = '';

le truc c'est que quand tu test ton index il n'existe pas... si tu met ton error_reporting à E_ALL tu verra

Notice: Undefined index: pw in xxxxx on line y

Car l'index pw ne vaut pas null il n'existe pas ce qui n'est pas la même chose... du coup ton test marche parce que php ne trouvant pas la variable il renvois null mais ça c'est un coup de chance parce que php est gentil... .. .

Après effectivement l'utilisateur peut faire une attaque null byte mais sur ce code ça serait sans effet... par contre pour vérifier si l'utilisateur à soumis quelque chose tu peux utiliser empty()... .. .

Pour ce qui est de comprendre ce code... et bien il faut commencer par le début... aller plus vite que la musique ne sert à rien en dev...

http://fr2.php.net/manual/fr/langref.php

@ tchaOo°
0
cs_darksam Messages postés 58 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 20 septembre 2012
23 juin 2009 à 15:29
Merci beaucoup ! 
0
Rejoignez-nous