Contrôle d’accès

Un contrôle des accès vous permet de protéger une partie ou la totalité de votre site. Tous les concepteurs de site devraient protéger la première page ou utiliser la page de login comme page d’entrée. Les autres pages ne sont souvent pas protégée ni contrôlées. Ce qui implique qu'une personne ayant noté le lien de la seconde page peut accéder à la partie protégée sans s’annoncer et sans contrôle. Il peut entrer sur votre site en tapant le chemin de la seconde page dans sa barre d’adresse.

Nous vous proposons 4 fichiers importants qui vous permettront de protéger toutes les pages de votre site par un simple include.

Voici le principe de fonctionnement. Commencer par inclure le fichier ctrl.asp en début des pages à contrôler. Lorsque la page est demandée par un visiteur, le fichier ctrl.asp contrôle si la variable session a été initialisée. Si c’est le cas, la page est envoyée. Dans le cas contraire, cela signifie que le visiteur ne s’est pas annoncé. C’est donc la page de login qui est envoyée à la place de la page demandée. Si le login et le mot de passe entré par le visiteur est correcte, la page demandée est envoyée.

Les fichiers 

Le fichier ctrl.asp

<%
if session("login")<>"ok" then
  session("origine")=Request.ServerVariables("PATH_INFO")
  response.redirect("ctrl_page/login.asp")
end if
%>

La variable session "login" est contrôlée. Si sa valeur est différente de « ok », cela signifie que la page login n'a pas été utilisée ou que la durée de la session est dépassée. Le fichier va dans ce cas, faire les opérations suivantes :
La page d’origine est mémorisée
La page de login est lancée à la place de la page demandée.
Si la variable session "login" a la valeur ok, rien ne se passe et la page demandée est envoyée.

Le fichier login.asp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Login</title>
</head>
<body>
<form method="post" action="gestion.asp" name="controle">
  <table border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td>Login:</td>
      <td><input name="Nom" type="text" size="15"></td>
    </tr>
    <tr>
      <td nowrap>Mot de passe:&nbsp;&nbsp;&nbsp; </td>
      <td><input name="Code" type="password" size="15"></td>
    </tr>
    <tr>
      <td nowrap>&nbsp;</td>
      <td><input name="submit" type='submit' value='Envoyer'></td>
    </tr>
  </table>
</form>
</body>
</html>

Le fichier demande le login et le mot de passe avant de les transmettre au fichier gestion.asp

Le fichier gestion.asp

<%
login = "login"
passe = "passe"

session("login")=""
if (request("Nom")= login) then
  if (request("Code")= passe) then
    session("login")="ok"
    response.redirect(session("origine"))
  end if
end if
response.redirect("faux.htm")
%>

Remarquez ici que le login et le mot de passe sont les mêmes pour tous les visiteurs.
Le login est d' abord contrôlé. S’il est correct, c’est le mot de passe qui est ensuite  contrôlé. Si tout est correct, la valeur de la variable session est mise à "ok" pour que les autres pages ne redemandent pas le login.

Le programme renvoi au visiteur la page qui avait été demandée et qui avait été mémorisée dans la variable session "origine".
Si le mot de passe ou le login est faux, c’est la page faux.htm qui est envoyée.

Le fichier faux.htm

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <title>FAUX</title>
</head>
<body>
  <div align="center">
    <br>
    Accès Interdit<br>
    <br>
    <a href="login.asp">Retour</a>
  </div>
</body>
</html>

Pour finir, une personnalisation des login et mot de passe est recommandée en changeant les deux premières lignes du fichier gestion.asp.