Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
Bonjour !
Voila j'ai trouvé sur internet un petit script en asp pour protéger une page par mot de passe qui ne marche pas. Bien sûr par la suite la protégerais la page pour qu'on ne puisse acceder au mot de passe et login. Bref, j'aimerais savoir qu'est-ce qui cloche là dedans car quoique l'on mette dans le champ login et mot de passe (on peut même ne rien mettre) on a acces à la page sécurisée !
(en démo sur http://chipmania.free.fr/repro.php) la page indentification.asp c'est celle qui contient le code asp :
'nécessaire pour la redirection'
<%response.buffer=true%>
<%'-------------Récupération des données du formulaire----------------%>
<%ID=Request.Form("ID")
mdp=Request.Form("mdp")%>
'si ID=vide et mdp=autre chose que vide alors le formulaire est incomplet'
<%if ID="" and mdp<>"" then etat="formulaire_incomplet" end if%>
'si ID=autre chose que vide et mdp= vide alors le formulaire est incomplet'
<%if ID<>"" and mdp="" then etat="formulaire_incomplet" end if%>
<%if etat<>"formulaire_incomplet" then%>
<%'------------------si on a saisi quelque chose dans le formulaire-----------%>
<%if ID="asp" then%>
'si ID=asp et mdp=fraise l'accès est autorisé'
<%if mdp="fraise" then qui="asp_ok" end if%>
'si ID=asp et mdp=pas_fraise l'accès est refusé'
<%if mdp<>"fraise" then qui="asp_pasok" end if%>
<%end if%>
'si ID=pas_asp et ID non_vide l'accès est refusé'
<%if ID<>"asp" and ID<>"" then qui="intrusion" end if%>
<%end if%>
<%'-----------------BONNE IDENTIFICATION !!!!------------------%>
'si ID et mdp sont corrects alors il y'a redirection vers la page protégée'
<%if qui="asp_ok" then%>
'Vous pouvez ajouter dans cette page un commentaire "Accès activée" par exemple '
<%URL="page.asp"%>
<%Response.Redirect URL%>
<%end if%>la page repro.php c'est celle qui contient le formulaire :
<%'--------------------INTRUSION-------------------------%> 'si ID et mdp sont remplis mais ne sont pas bons alors il y'a tentative d' intrusion' <%if qui="intrusion" then%> <font face="Arial" size="2"><font color="#000080">Attention, ceci est une page sécurisée et vous n'êtes pas autorisé à y entrer.</font><br> <%end if%> 'si ID=vide ou mdp=vide alors il faut recommencer' <%if etat="formulaire_incomplet" then%> <font size="2" face="Arial" color="#000080"><b>Le formulaire est incomplet!</b></font><br> <font size="2" face="Arial" color="#000080">Vous n'avez pas saisi tous les champs, recommencez!</font><br> <%end if%> 'si ID=ok mais mdp=pas_ok alors la tentative échoue' <%if qui="asp_pasok" then%> <font size="2" face="Arial" color="#000080"><b>Y'a comme un truc qui cloche!</b></font><br> <font size="2" face="Arial" color="#000080">Ce n'est pas parce qu'on connait le nom des Webmasters que l'on peut entrer! Recommencez!</font> <%end if%> <%'-------------------LE FORMULAIRE------------------%> <form method="POST" target="_self" action="repro2.php" name="identification"> <font face="Arial" size="2">Votre identifiant</font> <input type="text" name="ID" size="20"> <font face="Arial" size="2">Votre mot de passe</font> <input type="text" name="mdp" size="20"> <input type="submit" value="C'est parti !" name="action"> </form>
et la page repro2.php est la page sécurisée.
Merci de votre réponse.
Dernière modification par Tiffen (05-03-2006 10:28:22)
Hors ligne
Ok pas grave. Dans ce cas est-il possible de faire une protection par mot de passe d'une page autre qu'en asp ? Si oui comment ? Merci.
Hors ligne
il existe des solutions dans tous les langages axés serveur.
tu peut opter pour deux solutions :
le protocole http
ou bien, en créant un espace membre
Hors ligne
Voilà j'ai mis ça :
<?php if (!(($PHP_AUTH_USER == "demo") && ($PHP_AUTH_PW == "demo2"))) {
header('status: 401 Unauthorized', false, 401);
header('WWW-authenticate: Basic realm="Acces securisé"');
return 0:
}
?>Mais il me dit que j'ai une erreur sur return 0:
Hors ligne
tu a également oublié de respecter les règles de débugguage ![]()
Hors ligne
Désolé de ne pas avoir respecté les règles de débuggage.
Voilà, à présent j'ai remplacé le : par un ; mais voilà qu'il m'affiche de nouveau 2 erreurs (désolé je ne peux pas les copier puis coller ici j'ai mis u nscript sur mon site qui empeche la selection de texte) http://chipmania.free.fr/repro.php
ligne 55 c'est :
header('status: 401 Unauthorized', false, 401);et ligne 56 :
header('WWW-authenticate: Basic realm="Acces securisé"');Merci encore une fois pour votre aide ![]()
Hors ligne
hop, un petit tour dans la faq, erreurs php, headers already sent :
erreur headers already sent
Hors ligne