Avatar billede wilweb Nybegynder
11. december 2002 - 12:00 Der er 6 kommentarer og
1 løsning

Hvordan gør jeg denne login validering bedre?

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("db/data.mdb")
Conn.Open DSN

strSQL = "Select * From tbl_Adresser Where strBruger='" & request.form("textname") & "'"
Set rs = Conn.Execute(strSQL)

if NOT rs.EOF Then
  if request.form("textname") = rs("strBruger") AND request.form("textpassword") = rs("strPassword") Then
    if rs("strLevel") = 1 then
    session("login") = "JA"
    Session("strBruger") = rs("strBruger")
    Session("strUserid") = rs("Id")
    response.redirect "admin.asp"
    elseif rs("strLevel") = 0 then
    session("login") = "JA"
    Session("strBruger") = rs("strBruger")
    Session("strUserid") = rs("Id")
    response.redirect "booking.asp"
    end if 
  else
    session("login") = "NEJ"
    response.redirect "loginform.asp" 
  end if
Else
    session("login") = "NEJ"
    response.redirect "loginform.asp" 
End if
'Luk database
Conn.Close
Set Conn = Nothing
%>

Jeg er sikker på at min login validering kan gøres bedre, men hvordan?
:>Gizom
Avatar billede Spotgun Seniormester
11. december 2002 - 12:04 #1
Den checker nu brugeren meget godt. Du kan dog klippe et par linier væk, da du har nogle sessions der blir sat ens, uanset hvilken level brugeren har...
Avatar billede burningice Nybegynder
11. december 2002 - 12:13 #2
gizom>> hvad sker der, hvis man logger ind som level 0, og manuelt ændrer adressen fra booking.asp til admin.asp? Som jeg ser det kan man se begge sider lige meget hvilket level man er.
Avatar billede ffse.dk Nybegynder
11. december 2002 - 12:52 #3
> strSQL = "Select * From tbl_Adresser Where strBruger='" & request.form("textname") & "'"

Du skal escape alle plinger, dvs. '-tegn med

  "'" & replace(request.form("textname"), "'", "''") & "'"

Ellers fristes man til at poste data a la

  textname=';drop table tbl_adresser; select * from tbl_adresser where strBruger='asd

Husk ALTID inputvalidering!
Avatar billede wilweb Nybegynder
11. december 2002 - 16:16 #4
spotgun:> det har du da ret i!

cyberfessor:> Det tror jeg også du har ret i!

ffse.dk:> det vil sige min strSQL skal se således ud?
strSQL = "Select * From tbl_Adresser Where strBruger='" & replace(request.form("textname"), "'", "''") & "'"
Avatar billede burningice Nybegynder
11. december 2002 - 16:23 #5
gizom>> hehe... lader til u have some work to do ;)
Avatar billede wilweb Nybegynder
12. december 2002 - 12:48 #6
cyberfessor:> Tror det er fixet. jeg ved ikke om det laves meget bedre (jeg syntes det er noget klun-dike værk, men det virker)

På alle sider hvor man skal være logget ind har jeg som det første sat en session variabel session("Psecure")
session("Psecure")= 0 er lig med at alle der er logget ind har adgang
session("Psecure")= 1 betyder at det kun er admin der har adgang.
på asp siden hvor jeg tjekker om brugeren er logget ind, har jeg denne kode:

<%
'hvis brugeren ikke er logget ind sendes han til log ind siden
if session("login") = "NEJ" Then
    response.redirect "loginform.asp"    
' sidens session("Psecure") sættes som det første på siden, for at fortælle hvem der har
'adgang til pågældende side 0=alle der er logget ind. 1 = admin
elseif session("login") = "JA" and session("Psecure") <> 0 Then
  response.redirect "loginform.asp"    
'Så kan brugeren der har fået værdien 'JA' i session("login") se siden men
'bliver redirecte til log ind siden, hvis session("Psecure") = 1 (admin)
end if
%>

hvad med piont?
Avatar billede wilweb Nybegynder
04. januar 2003 - 13:47 #7
nå men så må jeg indrømme at jeg ikke klarede det helt med mit stunt.
Jeg lukke her og åbner et nyt spm. Om hvordan man laver den bedste login for alm. bruger og admin.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester