begin process at 2010 02 10 09:00:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité

 > PROTEGER UNE PAGE PAR LOGIN/PASSWORD

PROTEGER UNE PAGE PAR LOGIN/PASSWORD


 Information sur la source

Note :
6,43 / 10 - par 7 personnes
6,43 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité Niveau :Débutant Date de création :07/05/2002 Date de mise à jour :21/03/2003 15:36:00 Vu :22 955

Auteur : phildarvador

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Il y a bcp de questions sur la protection de pages dans le forum. Voici un bout de code qui fonctionne parfaitement, à vous de l'adapter à votre sauce =)
le code contient 2 pages, une avec un formulaire et l'autre avec l'identification.
bonne prog' !  

Source

  • PAGE 1 :
  • <form name="identification" action="modules/verif.asp" method=post>
  • <table width="450" border="0" cellspacing="0" cellpadding="0" align="center">
  • <tr>
  • <td colspan="2" bgcolor="#99CCFF"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">&#149;
  • <u>Identifiez - vous</u> : </font></td>
  • </tr>
  • <tr bgcolor="#FFFFFF">
  • <td valign="bottom" width="60%">
  • <div align="right"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">Login
  • : </font></div>
  • </td>
  • <td width="40%"> <font face="Arial, Helvetica, sans-serif" size="3" color="#000000">
  • &nbsp;
  • <input type="text" name="idlog">
  • </font></td>
  • </tr>
  • <tr bgcolor="#FFFFFF">
  • <td valign="bottom" width="60%">
  • <div align="right"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">Password
  • : </font></div>
  • </td>
  • <td width="40%"> <font face="Arial, Helvetica, sans-serif" size="3" color="#000000">
  • &nbsp;
  • <input type="password" name="idpass">
  • </font></td>
  • </tr>
  • <tr bgcolor="#FFFFFF">
  • <td valign="bottom" width="60%">
  • <div align="right"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">
  • <input type="reset" name="button2" value="Effacer">
  • &nbsp;&nbsp;</font></div>
  • </td>
  • <td width="40%"> <font face="Arial, Helvetica, sans-serif" size="3" color="#000000">
  • &nbsp;&nbsp;
  • <input type="submit" name="Submit" value="Identifier">
  • </font></td>
  • </tr>
  • </table>
  • </form>
  • ---------------------------------------------------------------------------------------------
  • PAGE 2 :
  • <%
  • <%
  • 'chaine de connection avec dsn
  • Set Connection = Server.CreateObject("ADODB.Connection")
  • Connection.Open "mabase"
  • 'on recupere les champs du formulaire (method post : nom visible ds l'url, pas de querystring!!!)
  • Dim idlog
  • idlog=Request.Form("idlog")
  • Dim idpass
  • idpass=Request.Form("idpass")
  • 'on cherche si le nom est bien dans la base
  • '------------------------------------------
  • SQL = "Select User.* From User Where User.[Nomuser]= '"&idlog&"';"
  • Set RsId = Server.createObject("ADODB.Recordset")
  • RsId.Open SQL, Connection, 3
  • if RsId.RecordCount = 0 then
  • %>
  • <script language=javascript>
  • alert('Utilisateur non enregistré');
  • history.back();
  • </script>
  • <%elseif RsId("Password")= idpass then%>
  • Bienvenue&nbsp;<%=RsId("Nomuser")%>. Vous êtes bien identifié(e).<br>
  • <%Session ("Id") = RsId("Nomuser")%>
  • <a href="../mapage.asp">lien</a>
  • <%else%>
  • <script language=javascript>
  • alert('Mot de passe incorrect');
  • history.back();
  • </script>
  • <%
  • end if
  • %>
PAGE 1 :
<form name="identification" action="modules/verif.asp" method=post>
  <table width="450" border="0" cellspacing="0" cellpadding="0" align="center">
    <tr> 
      <td colspan="2" bgcolor="#99CCFF"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">&#149; 
        <u>Identifiez - vous</u> : </font></td>
    </tr>
    <tr bgcolor="#FFFFFF"> 
      <td valign="bottom" width="60%"> 
        <div align="right"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">Login 
          : </font></div>
      </td>
      <td width="40%"> <font face="Arial, Helvetica, sans-serif" size="3" color="#000000"> 
        &nbsp; 
        <input type="text" name="idlog">
        </font></td>
    </tr>
    <tr bgcolor="#FFFFFF"> 
      <td valign="bottom" width="60%"> 
        <div align="right"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">Password 
          : </font></div>
      </td>
      <td width="40%"> <font face="Arial, Helvetica, sans-serif" size="3" color="#000000"> 
        &nbsp; 
        <input type="password" name="idpass">
        </font></td>
    </tr>
    <tr bgcolor="#FFFFFF"> 
      <td valign="bottom" width="60%"> 
        <div align="right"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000"> 
          <input type="reset" name="button2" value="Effacer">
          &nbsp;&nbsp;</font></div>
      </td>
      <td width="40%"> <font face="Arial, Helvetica, sans-serif" size="3" color="#000000"> 
        &nbsp;&nbsp; 
        <input type="submit" name="Submit" value="Identifier">
        </font></td>
    </tr>
  </table>
</form>


---------------------------------------------------------------------------------------------
PAGE 2 :

<%
<%
'chaine de connection avec dsn
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "mabase"

'on recupere les champs du formulaire (method post : nom visible ds l'url, pas de querystring!!!)
Dim idlog
idlog=Request.Form("idlog")
Dim idpass
idpass=Request.Form("idpass")

'on cherche si le nom est bien dans la base
'------------------------------------------
SQL = "Select User.* From User Where User.[Nomuser]= '"&idlog&"';"

Set RsId = Server.createObject("ADODB.Recordset")
RsId.Open SQL, Connection, 3

if RsId.RecordCount = 0 then
%>
<script language=javascript>
alert('Utilisateur non enregistré');
history.back();
</script>
<%elseif RsId("Password")= idpass then%>
Bienvenue&nbsp;<%=RsId("Nomuser")%>. Vous êtes bien identifié(e).<br>

<%Session ("Id") = RsId("Nomuser")%>

<a href="../mapage.asp">lien</a>
<%else%>
<script language=javascript>
alert('Mot de passe incorrect');
history.back();
</script>
<%
end if
%>  

 Conclusion

pour proteger d'autres pages, faites un test sur la session, si elle est vide, pas de page, sinon affichage normal...

Si vous avez des erreurs, faites attention à vos requetes et à vos variables!  

***** IMPORTANT MAJ 21/03/2003: *****
Somei m'a informé que cette source comportait un pb de sécurité : qqn de mal intentionné peut passer outre cette vérification. Pour l'en empecher dans la plupart des cas, il suffit de faire appel à une procédure qui enlevera tous les caracteres spéciaux de vos input text avant le test avec la base de données.
Merci à lui et bonne prog' ;o)


 Sources du même auteur

Source .NET (Dotnet) LIVRE D'OR EN ASP.NET ET XML

 Sources de la même categorie

Source avec Zip Source avec une capture UN CHAP LOGIN STYLÉ EN ASP3, AVEC UNE BDD EN MYSQL ET QUI SU... par ghuysmans99
BANNIR DES IP AVEC GLOBAL.ASA par Papillonvole
Source avec Zip SÉCURITÉ WEB, MD5 par Warning
Source avec Zip PROTEGER DES PAGES ASP AVEC VARIABLES SESSION + BDD par LleWellA
Source avec Zip VALIDATION CARTE DE CRÉDIT (NUMÉRO ET DATE) par Jackboy

Commentaires et avis

Commentaire de carniraz le 12/07/2003 04:15:32

Pas mal le script j a ijuste changer un petit truc je le met pour que ce soit nickel
If RsId.BOF = true Then
%&gt;
&lt;script language=javascript&gt;
alert('Utilisateur non enregistré');
history.back();
&lt;/script&gt;

Commentaire de Jackboy le 07/06/2004 17:40:58

Peut etre ajouter ceci car tu entre n'importe quoi dans ton psw et sa fonctionne donc....

&lt;%elseif RsId("Password")= idpass and RsId("Nomuser")= idlog then%&gt;

Commentaire de TARIK395 le 05/08/2004 15:31:08

c bon merci,::) genial continue

Commentaire de mystery711 le 04/08/2005 11:39:38

bravo c'est super le code ;)
par contre quel est le login et le mot de passe ?
faut il le définir? comment?
merci!!!

Commentaire de MopX le 05/08/2006 00:28:25

n'oublie pas de détruire tes objets de connection :

'fermeture & destruction du recordset
RsId.close
Set RsId=nothing

'fermeture & destruction d la connection
Connection.close
set connection=nothing

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales