du kan ikke gøre det meget sikre med programmering. Det kan fejle hvis en hacker kan få lagt en side op, hvor han sætter Session("Valid") = "et eller andet", eller få adgang til databasen.
Dog er det ikke sikkert hvis en bruger har været logget ind, og derefter trykker logud. Hvis man så benytter tilbage, så vil det stadig være som om brugeren er logget ind, indtil han opdatere siden.
Dog er det vigtigt at du har disse linier med i din loginchek, for hvis du ikke har det, kan man tvinge systemet til at lave en fejl, og hvis dette sker, kan man få forskellige informationer ud af fejlen.
jeg ville også ændre dette, så du ikke får alle brugere i din select...
If Request("Submit")<>"" Then strSQL = "Select login.user,login.pass,login.id from login where user="&request("user")&" and pass="&request("pass") Set rs = connection.Execute(strSQL) if not rs.eof then Session("Valid") = Request("user") Response.redirect "succes.asp" response.flush Else Error = "Forkert brugernavn eller password. Prøv igen!" End If End If
Så slipper du for at læse alle informationerne ind hver gang.. så kommer det til at se ud som:
If Request("Submit")<>"" Then strUID = Trim(Replace(Request.Form("Brugernavn"),"'","")) strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))
strSQL = "Select login.user,login.pass,login.id from login where user='"&strUID&"' and pass='"&strPWD& "'" Set rs = connection.Execute(strSQL) if not rs.eof then Session("Valid") = Request("user") Response.redirect "succes.asp" response.flush Else Error = "Forkert brugernavn eller password. Prøv igen!" End If End If
<% openConn() strSQL = "Select login.user,login.pass from login" Set rs = connection.Execute(strSQL)
Do Error = "" If Request("Submit")<>"" Then strUID = Trim(Replace(Request.Form("Brugernavn"),"'","")) strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))
strSQL = "Select login.user,login.pass,login.id from login where user='"&strUID&"' and pass='"&strPWD& "'" Set rs = connection.Execute(strSQL) if not rs.eof then Session("Valid") = Request("user") Response.redirect "succes.asp" response.flush Else Error = "Forkert brugernavn eller password. Prøv igen!" End If End If rs.MoveNext Loop While Not rs.EOF %>
If Request("Submit")<>"" Then strUID = Trim(Replace(Request.Form("Brugernavn"),"'","")) strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))
strSQL = "Select login.user,login.pass,login.id from login where user='"&strUID&"' and pass='"&strPWD& "'" Set rs = connection.Execute(strSQL) if not rs.eof then Session("Valid") = Request("user") Response.redirect "succes.asp" response.flush Else Error = "Forkert brugernavn eller password. Prøv igen!" End If End If %>
strSQL = "SELECT UserID FROM Users"&_ " WHERE (Username = '" & strUID & "')"&_ " AND (Password = '" & strPWD & "')"
Set rs = connection.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then
intUID = rs("UserID") Else strERR = "Du blev ikke godkendt af systemet" End If
closeConn()
If Len(intUID) Then Session("UserID") = intUID Response.Redirect("beskyttet.asp") End If Else strErr = "Du skal skrive både brugernavn og adgangskode" End If
If Len(strErr) > 0 Then strErr = "<font color=red>" & strErr & "</font>" End If End If %> <html> <head> <title>Login script</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <form method="POST" action="login.asp"> <h1>Angiv brugernavn og adgangskode</h2> <table border="0"> <tr> <td width="75">Brugernavn:</td> <td><input type="text" name="Username" size="20" class="input"></td> </tr> <tr> <td width="75">Adgangskode:</td> <td><input type="password" name="Password" size="20" class="input"></td> </tr> <tr> <td colspan="2" align="right"><input type="submit" value="Login" name="Action" class="knap"></td> </tr> </table> <p><%=strErr%></p> </form> </body> </html>
Ok jeg venter spændt :o) Det er jo rart at se hvis det er dig muligt for vil jeg da ikke linke til artiklen fremover indtil evt. bugs er rettet i den :o)
Det har jeg ikke - men som sagt 08/03-2004 09:31:12, så giver jeg mig. Den er ok. (Utroligt hvad et par paranteser i en where clause kan udrette :-))
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.