Attribution d'un mot de passe (script)

Si vous désirez restreindre l'accès à un doucment HTML, voire à un ensemble de pages, WebExpert met à votre disposition cet assistant qui va réaliser cette fonction.

Pour lancer l'assistant, cliquez sur le bouton Mot de passe (script) de l'onglet Javascript...

1. Attribution d'un mot de passe

Veuillez encoder JVTM comme mot de passe !

2. Script et éléments insérés par l'assistant

a) Dans la section <HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!-- debut du script
function checkPswd(ext) {
if ((document.pswdForm.pswd.value == null) || (document.pswdForm.pswd.value == ''))
alert('Mot de passe invalide.');
else this.location.href = document.pswdForm.pswd.value + ext;
}
// fin du script -->
</SCRIPT>

b) Endroit du curseur (corps du document)

<FORM NAME="pswdForm">
<INPUT TYPE="password" NAME="pswd" SIZE=24 MAXLENGTH=40>
<INPUT TYPE="button" VALUE="Ok" onClick="checkPswd('.html')">
</FORM>

3. Explication du script

Ce petit script est très intéressant ( l'idée du script est assez géniale) car très simple et à la fois très pratique. Son action est de restreindre l'accès à un document (voire d'autres) par l'obligation d'encoder le nom du fichier (page HTML) pour charger celle-ci.

Il faut donc veiller à ne pas donner d'accès à cette section (page HTML) de votre site par un autre moyen (lien, menu etc.). Bien sûr, le niveau de protection est minimum mais il oblige le visiteur à connaître le mot de passe, celui-ci étant constitué par le nom du fichier qui doit être chargé (encodé sans son extension dans l'input du mot de passe).

Pour l'encodage du mot de passe, on emploie un élément <INPUT> auquel on a spécifié que le contenu doit s'afficher caché (*) : cela se fait par la spécification de l'attribut TYPE : TYPE="password".

La procédure employée [checkPswd(ext)] vérifie par une instruction conditionnelle (if) si le contenu de l'<INPUT>, servant à l'encodage du mot de passe, n'est pas nul (document.pswdForm.pswd.value == null) ou vide (document.pswdForm.pswd.value == '').

Si c'est le cas, un message d'alerte est donné, par la méthode alert() de l'objet window, que nous avons déjà rencontré souvent : [alert('Mot de passe invalide.')].

Dans le cas inverse (else), le script change la propriété location de l'objet window pour charger la page HTML désirée [this.location.href = document.pswdForm.pswd.value + ext;] en prenant comme adresse URL du document la valeur encodée dans le champ de saisie du mot de passe (document.pswdForm.pswd.value) ajouté (opérateur +) de son extension (ici '.html') que l'assistant a déterminé lors du choix de la page HTML à charger. L'assistant à déterminé l'extension et la fournit en argument de la procédure checkPswd('.html').

C'est pour cette raison qu'il vous est demandé de ne pas encoder dans la saisie du mot de passe, l'extension du document (html, htm...).

Enfin, c'est par l'événement "onClick" du bouton que la fonction de vérification et de changement de location [checkPswd()] est appelée.

4. Modification des paramètres

Si vous décidez de changer la page à charger, il n'y a rien à modifier dans l'élément <FORM>, hormis l'extension, si ce document devait posséder une extension différente (par exemple ".htm"). Dans ce cas, il faut modifier l'argument indiqué dans l'appel de la procédure [checkPswd('.htm')] de l'événement onclick du bouton.

N'oubliez pas que la seule protection se situe dans la connaissance ou non du nom du document HTML à charger ! Dès que l'utisateur connaît le nom de la page, il peut y entrer (sécurité minimum). Rien ne vous empêche alors de changer le nom du document et de le fournir aux personnes ayant le droit de la consulter (éventuellement les autres dont les liens sont fournis dans le document).

5. Variante

Voici une solution qui permet de ne pas garder dans l'historique une trace de la page visionnée, et qui par ce fait, donne un peu plus de sécurité. En fait, on lance une fenêtre qui ne possède pas d'attributs modifiables, et qui charge la page désirée par le mot de passe.

Veuillez encore encoder JVTM comme mot de passe !

Voici le script de cette variante :

<SCRIPT LANGUAGE="JavaScript">
<!--
var ez123tw;
function checkPswd(ext) {
if ((document.pswdForm.pswd.value == null) || (document.pswdForm.pswd.value == ''))
alert
('Mot de passe invalide.');
else ez123tw=document.pswdForm.pswd.value + ext;
window
.open(ez123tw,"Hidden","toolbar=0,location=0,directories=0,menuBar=0,scrollbars=0,resizable=1,width=600,height=500");
}
//-->
</SCRIPT>


Pour obtenir des explications sur les paramètres de la fenêtre Fenêtres".



Cliquez sur le bouton du script pour visionner son explication...